From 14f2d95fd06d208aff2f51bbcab572ebd3c6186a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 09:48:47 +0200 Subject: [PATCH 001/183] Update dependency elastic-apm-node to ^4.5.2 (main) (#181241) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [elastic-apm-node](https://togithub.com/elastic/apm-agent-nodejs) | [`^4.5.0` -> `^4.5.2`](https://renovatebot.com/diffs/npm/elastic-apm-node/4.5.0/4.5.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/elastic-apm-node/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/elastic-apm-node/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/elastic-apm-node/4.5.0/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/elastic-apm-node/4.5.0/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
elastic/apm-agent-nodejs (elastic-apm-node) ### [`v4.5.2`](https://togithub.com/elastic/apm-agent-nodejs/releases/tag/v4.5.2) [Compare Source](https://togithub.com/elastic/apm-agent-nodejs/compare/v4.5.0...v4.5.2) For more information, please see the [changelog](https://www.elastic.co/guide/en/apm/agent/nodejs/current/release-notes-4.x.html#release-notes-4.5.2). ##### Elastic APM Node.js agent layer ARNs |Region|ARN| |------|---| |af-south-1|arn:aws:lambda:af-south-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-east-1|arn:aws:lambda:ap-east-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-northeast-1|arn:aws:lambda:ap-northeast-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-northeast-2|arn:aws:lambda:ap-northeast-2:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-northeast-3|arn:aws:lambda:ap-northeast-3:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-south-1|arn:aws:lambda:ap-south-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-southeast-1|arn:aws:lambda:ap-southeast-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-southeast-2|arn:aws:lambda:ap-southeast-2:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ap-southeast-3|arn:aws:lambda:ap-southeast-3:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |ca-central-1|arn:aws:lambda:ca-central-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |eu-central-1|arn:aws:lambda:eu-central-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |eu-north-1|arn:aws:lambda:eu-north-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |eu-south-1|arn:aws:lambda:eu-south-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |eu-west-1|arn:aws:lambda:eu-west-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |eu-west-2|arn:aws:lambda:eu-west-2:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |eu-west-3|arn:aws:lambda:eu-west-3:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |me-south-1|arn:aws:lambda:me-south-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |sa-east-1|arn:aws:lambda:sa-east-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |us-east-1|arn:aws:lambda:us-east-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |us-east-2|arn:aws:lambda:us-east-2:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |us-west-1|arn:aws:lambda:us-west-1:267093732750:layer:elastic-apm-node-ver-4-5-2:1| |us-west-2|arn:aws:lambda:us-west-2:267093732750:layer:elastic-apm-node-ver-4-5-2:1|
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/elastic/kibana). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 50926c34539d4..06040e5681c0b 100644 --- a/package.json +++ b/package.json @@ -983,7 +983,7 @@ "deepmerge": "^4.2.2", "del": "^6.1.0", "diff": "^5.1.0", - "elastic-apm-node": "^4.5.0", + "elastic-apm-node": "^4.5.2", "email-addresses": "^5.0.0", "eventsource-parser": "^1.1.1", "execa": "^5.1.1", diff --git a/yarn.lock b/yarn.lock index 290f304922ce1..8cc252b3258d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15923,10 +15923,10 @@ elastic-apm-node@3.46.0: traverse "^0.6.6" unicode-byte-truncate "^1.0.0" -elastic-apm-node@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/elastic-apm-node/-/elastic-apm-node-4.5.0.tgz#9ee75189ac4bd919d432c6c1457c8cb2ef0b3903" - integrity sha512-doIe7VPdCRgbFjEdswQvHj1Puem8L2pDFEdeUuT7CX3Xr3+gbOvgQGV7s742dJWgO2l0nSekvdgc7UBaPvOb6A== +elastic-apm-node@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/elastic-apm-node/-/elastic-apm-node-4.5.2.tgz#7c4a9d77a891302f16e988a6ff4ade5563e805ec" + integrity sha512-m4hvI/1MpVlR5B8k6BOU7WzdFOXjYux/iRso6av6qqJhYKSbHKhF93ncatw4nXU1q88tu31gwB9CzA2/6F4hFQ== dependencies: "@elastic/ecs-pino-format" "^1.5.0" "@opentelemetry/api" "^1.4.1" From be1248ac98c154fee230d621d22d5af36df20318 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Mon, 22 Apr 2024 09:49:57 +0200 Subject: [PATCH 002/183] [ML] Enable transform health rule API tests (#181147) ## Summary Closes https://github.com/elastic/kibana/issues/177215 ### 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 - [x] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed --- .../transform_rule_types/transform_health/rule.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group2/transform_rule_types/transform_health/rule.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group2/transform_rule_types/transform_health/rule.ts index 76b3a37e7b7ab..a46360b40259b 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group2/transform_rule_types/transform_health/rule.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group2/transform_rule_types/transform_health/rule.ts @@ -80,8 +80,7 @@ export default function ruleTests({ getService }: FtrProviderContext) { `.internal.alerts-transform.health.alerts-default-000001` ); - // FLAKY: https://github.com/elastic/kibana/issues/177215 - describe.skip('rule', async () => { + describe('rule', async () => { const objectRemover = new ObjectRemover(supertest); let connectorId: string; const transformId = 'test_transform_01'; @@ -134,9 +133,12 @@ export default function ruleTests({ getService }: FtrProviderContext) { const aadDocs = await getAllAADDocs(1); const alertDoc = aadDocs.body.hits.hits[0]._source; expect(alertDoc[ALERT_REASON]).to.be(`Transform test_transform_01 is not started.`); - expect(alertDoc[TRANSFORM_HEALTH_RESULTS]).to.eql([ - { transform_id: 'test_transform_01', transform_state: 'stopped', health_status: 'green' }, - ]); + + const transformHealthResult = alertDoc[TRANSFORM_HEALTH_RESULTS][0]; + expect(transformHealthResult.transform_id).to.be('test_transform_01'); + expect(transformHealthResult.transform_state).to.match(/stopped|stopping/); + expect(transformHealthResult.health_status).to.be('green'); + expect(alertDoc[ALERT_RULE_CATEGORY]).to.be(`Transform health`); expect(alertDoc[ALERT_RULE_NAME]).to.be(`Test all transforms`); expect(alertDoc[ALERT_RULE_TYPE_ID]).to.be(`transform_health`); From 0682fd3ef4b1bd62d1dbb660b91a6d0b282042c6 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Mon, 22 Apr 2024 10:16:52 +0200 Subject: [PATCH 003/183] [DOCS] Create stub page for Playground (#181266) This PR creates a hidden page for use in the Kibana doc link service. The URL can subsequently be turned into a full page. --- docs/redirects.asciidoc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/redirects.asciidoc b/docs/redirects.asciidoc index be017fbd1c94e..007a9d9f48cfc 100644 --- a/docs/redirects.asciidoc +++ b/docs/redirects.asciidoc @@ -432,4 +432,9 @@ 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. \ 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. + +[role="exclude",id="playground"] +== Playground + +Coming in 8.14.0. \ No newline at end of file From d5c1335f78a0b578092d5e435308f028d4a7feed Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Mon, 22 Apr 2024 12:21:00 +0300 Subject: [PATCH 004/183] [Cases] Fix `useGetCases` flaky test (#181254) ## Summary Following @JiaweiWu advice I replaced `waitForNextUpdate` with `waitFor`. Fix: https://github.com/elastic/kibana/issues/178163 ### Checklist Delete any items that are not applicable to this PR. - [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 ### For maintainers - [x] 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) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../public/containers/use_get_cases.test.tsx | 48 +++++++++++-------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx b/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx index dd3ee856ba50c..53900a6920f20 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx @@ -17,8 +17,7 @@ import { OWNERS } from '../../common/constants'; jest.mock('./api'); jest.mock('../common/lib/kibana/hooks'); -// FLAKY: https://github.com/elastic/kibana/issues/178163 -describe.skip('useGetCases', () => { +describe('useGetCases', () => { const abortCtrl = new AbortController(); const addSuccess = jest.fn(); (useToasts as jest.Mock).mockReturnValue({ addSuccess, addError: jest.fn() }); @@ -32,11 +31,14 @@ describe.skip('useGetCases', () => { it('calls getCases with correct arguments', async () => { const spyOnGetCases = jest.spyOn(api, 'getCases'); - const { waitForNextUpdate } = renderHook(() => useGetCases(), { + const { waitFor } = renderHook(() => useGetCases(), { wrapper: appMockRender.AppWrapper, }); - await waitForNextUpdate(); + await waitFor(() => { + expect(spyOnGetCases).toBeCalled(); + }); + expect(spyOnGetCases).toBeCalledWith({ filterOptions: { ...DEFAULT_FILTER_OPTIONS, owner: ['securitySolution'] }, queryParams: DEFAULT_QUERY_PARAMS, @@ -53,12 +55,13 @@ describe.skip('useGetCases', () => { const addError = jest.fn(); (useToasts as jest.Mock).mockReturnValue({ addSuccess, addError }); - const { waitForNextUpdate } = renderHook(() => useGetCases(), { + const { waitFor } = renderHook(() => useGetCases(), { wrapper: appMockRender.AppWrapper, }); - await waitForNextUpdate(); - expect(addError).toHaveBeenCalled(); + await waitFor(() => { + expect(addError).toHaveBeenCalled(); + }); }); it('should set all owners when no owner is provided', async () => { @@ -87,11 +90,13 @@ describe.skip('useGetCases', () => { }; const spyOnGetCases = jest.spyOn(api, 'getCases'); - const { waitForNextUpdate } = renderHook(() => useGetCases(), { + const { waitFor } = renderHook(() => useGetCases(), { wrapper: appMockRender.AppWrapper, }); - await waitForNextUpdate(); + await waitFor(() => { + expect(spyOnGetCases).toHaveBeenCalled(); + }); expect(spyOnGetCases).toBeCalledWith({ filterOptions: { ...DEFAULT_FILTER_OPTIONS, owner: [...OWNERS] }, @@ -104,11 +109,13 @@ describe.skip('useGetCases', () => { appMockRender = createAppMockRenderer({ owner: [] }); const spyOnGetCases = jest.spyOn(api, 'getCases'); - const { waitForNextUpdate } = renderHook(() => useGetCases(), { + const { waitFor } = renderHook(() => useGetCases(), { wrapper: appMockRender.AppWrapper, }); - await waitForNextUpdate(); + await waitFor(() => { + expect(spyOnGetCases).toHaveBeenCalled(); + }); expect(spyOnGetCases).toBeCalledWith({ filterOptions: { ...DEFAULT_FILTER_OPTIONS, owner: ['cases'] }, @@ -121,11 +128,13 @@ describe.skip('useGetCases', () => { appMockRender = createAppMockRenderer({ owner: ['observability'] }); const spyOnGetCases = jest.spyOn(api, 'getCases'); - const { waitForNextUpdate } = renderHook(() => useGetCases(), { + const { waitFor } = renderHook(() => useGetCases(), { wrapper: appMockRender.AppWrapper, }); - await waitForNextUpdate(); + await waitFor(() => { + expect(spyOnGetCases).toHaveBeenCalled(); + }); expect(spyOnGetCases).toBeCalledWith({ filterOptions: { ...DEFAULT_FILTER_OPTIONS, owner: ['observability'] }, @@ -138,14 +147,13 @@ describe.skip('useGetCases', () => { appMockRender = createAppMockRenderer({ owner: ['observability'] }); const spyOnGetCases = jest.spyOn(api, 'getCases'); - const { waitForNextUpdate } = renderHook( - () => useGetCases({ filterOptions: { owner: ['my-owner'] } }), - { - wrapper: appMockRender.AppWrapper, - } - ); + const { waitFor } = renderHook(() => useGetCases({ filterOptions: { owner: ['my-owner'] } }), { + wrapper: appMockRender.AppWrapper, + }); - await waitForNextUpdate(); + await waitFor(() => { + expect(spyOnGetCases).toHaveBeenCalled(); + }); expect(spyOnGetCases).toBeCalledWith({ filterOptions: { ...DEFAULT_FILTER_OPTIONS, owner: ['my-owner'] }, From dd6483732de454d0940506f969a7aedb3ee4520c Mon Sep 17 00:00:00 2001 From: Antonio Date: Mon, 22 Apr 2024 11:44:54 +0200 Subject: [PATCH 005/183] [Cases] Fix failing tests: `SuggestUsersPopover` (#181051) Fixes #171600 Fixes #171601 ## Summary I refactored the tests to follow a few best practices: - Replaced all occurrences of `waitFor(() => screen.getBy...` with `await screen.findBy`. - Replaces `fireEvent` with `userEvent`. - Refactored multiple instances where we did the same query multiple times in the same test. This at least made the warnings go away from the test suite. There is still a `for` loop around the tests to check for flakiness. --- .../components/suggest_users_popover.test.tsx | 97 ++++++++----------- 1 file changed, 38 insertions(+), 59 deletions(-) diff --git a/x-pack/plugins/cases/public/components/case_view/components/suggest_users_popover.test.tsx b/x-pack/plugins/cases/public/components/case_view/components/suggest_users_popover.test.tsx index d84675d8e7883..147aeddbfe53d 100644 --- a/x-pack/plugins/cases/public/components/case_view/components/suggest_users_popover.test.tsx +++ b/x-pack/plugins/cases/public/components/case_view/components/suggest_users_popover.test.tsx @@ -8,7 +8,9 @@ import React from 'react'; import type { AppMockRenderer } from '../../../common/mock'; import { createAppMockRenderer } from '../../../common/mock'; -import { screen, fireEvent, waitFor } from '@testing-library/react'; +import { screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + import type { SuggestUsersPopoverProps } from './suggest_users_popover'; import { SuggestUsersPopover } from './suggest_users_popover'; import { userProfiles } from '../../../containers/user_profiles/api.mock'; @@ -18,24 +20,25 @@ import type { AssigneeWithProfile } from '../../user_profiles/types'; jest.mock('../../../containers/user_profiles/api'); -// FLAKY: https://github.com/elastic/kibana/issues/171600 -// FLAKY: https://github.com/elastic/kibana/issues/171601 -describe.skip('SuggestUsersPopover', () => { +const asAssignee = (profile: UserProfileWithAvatar): AssigneeWithProfile => ({ + uid: profile.uid, + profile, +}); + +describe('SuggestUsersPopover', () => { let appMockRender: AppMockRenderer; - let defaultProps: SuggestUsersPopoverProps; + const defaultProps: SuggestUsersPopoverProps = { + isLoading: false, + assignedUsersWithProfiles: [], + isPopoverOpen: true, + onUsersChange: jest.fn(), + togglePopover: jest.fn(), + onClosePopover: jest.fn(), + currentUserProfile: undefined, + }; beforeEach(() => { appMockRender = createAppMockRenderer(); - - defaultProps = { - isLoading: false, - assignedUsersWithProfiles: [], - isPopoverOpen: true, - onUsersChange: jest.fn(), - togglePopover: jest.fn(), - onClosePopover: jest.fn(), - currentUserProfile: undefined, - }; }); it('calls onUsersChange when 1 user is selected', async () => { @@ -45,13 +48,8 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); - fireEvent.change(screen.getByPlaceholderText('Search users'), { target: { value: 'dingo' } }); - - await waitFor(() => { - expect(screen.getByText('WD')).toBeInTheDocument(); - }); - - fireEvent.click(screen.getByText('WD')); + userEvent.paste(await screen.findByPlaceholderText('Search users'), 'dingo'); + userEvent.click(await screen.findByText('WD')); expect(onUsersChange.mock.calls[0][0]).toMatchInlineSnapshot(` Array [ @@ -76,15 +74,9 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); - fireEvent.change(screen.getByPlaceholderText('Search users'), { target: { value: 'elastic' } }); - - await waitFor(() => { - expect(screen.getByText('WD')).toBeInTheDocument(); - expect(screen.getByText('DR')).toBeInTheDocument(); - }); - - fireEvent.click(screen.getByText('WD')); - fireEvent.click(screen.getByText('DR')); + userEvent.paste(await screen.findByPlaceholderText('Search users'), 'elastic'); + userEvent.click(await screen.findByText('WD')); + userEvent.click(await screen.findByText('DR')); expect(onUsersChange.mock.calls[1][0]).toMatchInlineSnapshot(` Array [ @@ -124,13 +116,8 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); - fireEvent.change(screen.getByPlaceholderText('Search users'), { target: { value: 'elastic' } }); - - await waitFor(() => { - expect(screen.getByText('WD')).toBeInTheDocument(); - }); - - fireEvent.click(screen.getByText('WD')); + userEvent.paste(await screen.findByPlaceholderText('Search users'), 'elastic'); + userEvent.click(await screen.findByText('WD')); expect(onUsersChange.mock.calls[0][0]).toMatchInlineSnapshot(` Array [ @@ -174,14 +161,11 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); expect(screen.queryByText('assigned')).not.toBeInTheDocument(); - fireEvent.change(screen.getByPlaceholderText('Search users'), { target: { value: 'dingo' } }); - await waitFor(() => { - expect(screen.getByText('WD')).toBeInTheDocument(); - }); + userEvent.paste(await screen.findByPlaceholderText('Search users'), 'dingo'); + userEvent.click(await screen.findByText('WD')); - fireEvent.click(screen.getByText('WD')); - expect(screen.getByText('1 assigned')).toBeInTheDocument(); + expect(await screen.findByText('1 assigned')).toBeInTheDocument(); }); it('shows the 1 assigned total after clicking on a user', async () => { @@ -190,9 +174,11 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); expect(screen.queryByText('assigned')).not.toBeInTheDocument(); - fireEvent.change(screen.getByPlaceholderText('Search users'), { target: { value: 'dingo' } }); - fireEvent.click(screen.getByText('WD')); - expect(screen.getByText('1 assigned')).toBeInTheDocument(); + + userEvent.paste(await screen.findByPlaceholderText('Search users'), 'dingo'); + userEvent.click(await screen.findByText('WD')); + + expect(await screen.findByText('1 assigned')).toBeInTheDocument(); }); it('shows the 1 assigned total when the users are passed in', async () => { @@ -204,8 +190,8 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); - expect(screen.getByText('1 assigned')).toBeInTheDocument(); - expect(screen.getByText('Damaged Raccoon')).toBeInTheDocument(); + expect(await screen.findByText('1 assigned')).toBeInTheDocument(); + expect(await screen.findByText('Damaged Raccoon')).toBeInTheDocument(); }); it('calls onTogglePopover when clicking the edit button after the popover is already open', async () => { @@ -218,11 +204,9 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); - await waitFor(() => { - expect(screen.getByTestId('case-view-assignees-edit-button')).not.toBeDisabled(); - }); + expect(await screen.findByTestId('case-view-assignees-edit-button')).not.toBeDisabled(); - fireEvent.click(screen.getByTestId('case-view-assignees-edit-button')); + userEvent.click(await screen.findByTestId('case-view-assignees-edit-button')); expect(togglePopover).toBeCalled(); }); @@ -232,11 +216,6 @@ describe.skip('SuggestUsersPopover', () => { await waitForEuiPopoverOpen(); - await waitFor(() => expect(screen.getByText('Damaged Raccoon')).toBeInTheDocument()); + expect(await screen.findByText('Damaged Raccoon')).toBeInTheDocument(); }); }); - -const asAssignee = (profile: UserProfileWithAvatar): AssigneeWithProfile => ({ - uid: profile.uid, - profile, -}); From 5b40e10120cadfb50cccc3532d41ab300bc661d6 Mon Sep 17 00:00:00 2001 From: Ash <1849116+ashokaditya@users.noreply.github.com> Date: Mon, 22 Apr 2024 11:52:09 +0200 Subject: [PATCH 006/183] [8.14][Security Solutions][Endpoint] Update test dependencies after beats consolidation in 8.14 (#181265) ## Summary As of 8.14 auditbeat, filebeat, heartbeat, metricbeat, osquerybeat, and packetbeat have been combined into a single agentbeat. The test that depended on filebeat earlier now uses this new beats filename. closes elastic/kibana/issues/170370 ### 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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed --- .../response_console/process_operations.cy.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts index c7120ded692b9..f7c70ebf8c7e9 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts @@ -24,6 +24,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; +const AGENT_BEAT_FILE_PATH_SUFFIX = '/components/agentbeat'; + describe('Response console', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { login(); @@ -80,7 +82,7 @@ describe('Response console', { tags: ['@ess', '@serverless'] }, () => { }); cy.get('tbody > tr').should('have.length.greaterThan', 0); - cy.get('tbody > tr > td').should('contain', '/components/filebeat'); + cy.get('tbody > tr > td').should('contain', AGENT_BEAT_FILE_PATH_SUFFIX); }); }); @@ -89,7 +91,7 @@ describe('Response console', { tags: ['@ess', '@serverless'] }, () => { openResponseConsoleFromEndpointList(); // get running processes - getRunningProcesses('/components/filebeat').then((pid) => { + getRunningProcesses(AGENT_BEAT_FILE_PATH_SUFFIX).then((pid) => { // kill the process using PID inputConsoleCommand(`kill-process --pid ${pid}`); submitCommand(); @@ -102,7 +104,7 @@ describe('Response console', { tags: ['@ess', '@serverless'] }, () => { openResponseConsoleFromEndpointList(); // get running processes - getRunningProcesses('/components/filebeat').then((pid) => { + getRunningProcesses(AGENT_BEAT_FILE_PATH_SUFFIX).then((pid) => { // suspend the process using PID inputConsoleCommand(`suspend-process --pid ${pid}`); submitCommand(); From f91f86b28cc1acbfc01aa7ae9d94348964022d59 Mon Sep 17 00:00:00 2001 From: elena-shostak <165678770+elena-shostak@users.noreply.github.com> Date: Mon, 22 Apr 2024 12:11:50 +0200 Subject: [PATCH 007/183] Space arbitrary destination support (#180872) ## Summary 1. Moved `parseNextURL ` and `isInternalURL` to `@kbn/std` package. 2. Added optional `next` query parameter for enter space endpoint to navigate to specified destination. 3. If `next` query parameter is malformed, we fall back to space `defaultRoute`. ### Checklist - [x] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [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 - [x] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed ### For maintainers - [x] 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) __Fixes: https://github.com/elastic/kibana/issues/180711__ --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- packages/kbn-std/index.ts | 2 + .../kbn-std/src}/is_internal_url.test.ts | 5 +- .../kbn-std/src}/is_internal_url.ts | 13 +- .../kbn-std/src/parse_next_url.test.ts | 57 +++-- .../kbn-std/src/parse_next_url.ts | 22 +- .../access_agreement_page.tsx | 4 +- .../capture_url/capture_url_app.ts | 4 +- .../logged_out/logged_out_page.tsx | 4 +- .../overwritten_session_page.tsx | 4 +- .../server/authentication/providers/saml.ts | 2 +- .../server/routes/authentication/common.ts | 4 +- .../security/server/routes/views/login.ts | 4 +- .../spaces/server/routes/views/index.test.ts | 240 ++++++++++++++++++ .../spaces/server/routes/views/index.ts | 20 +- x-pack/plugins/spaces/tsconfig.json | 1 + .../functional/apps/spaces/enter_space.ts | 54 ++++ .../page_objects/space_selector_page.ts | 12 + 17 files changed, 395 insertions(+), 57 deletions(-) rename {x-pack/plugins/security/common => packages/kbn-std/src}/is_internal_url.test.ts (94%) rename {x-pack/plugins/security/common => packages/kbn-std/src}/is_internal_url.ts (80%) rename x-pack/plugins/security/common/parse_next.test.ts => packages/kbn-std/src/parse_next_url.test.ts (78%) rename x-pack/plugins/security/common/parse_next.ts => packages/kbn-std/src/parse_next_url.ts (56%) create mode 100644 x-pack/plugins/spaces/server/routes/views/index.test.ts diff --git a/packages/kbn-std/index.ts b/packages/kbn-std/index.ts index 3ee605cbf98fa..ae45bb099e508 100644 --- a/packages/kbn-std/index.ts +++ b/packages/kbn-std/index.ts @@ -16,6 +16,8 @@ export { pick } from './src/pick'; export { withTimeout, isPromise } from './src/promise'; export type { URLMeaningfulParts } from './src/url'; export { isRelativeUrl, modifyUrl, getUrlOrigin } from './src/url'; +export { isInternalURL } from './src/is_internal_url'; +export { parseNextURL } from './src/parse_next_url'; export { unset } from './src/unset'; export { getFlattenedObject } from './src/get_flattened_object'; export { ensureNoUnsafeProperties } from './src/ensure_no_unsafe_properties'; diff --git a/x-pack/plugins/security/common/is_internal_url.test.ts b/packages/kbn-std/src/is_internal_url.test.ts similarity index 94% rename from x-pack/plugins/security/common/is_internal_url.test.ts rename to packages/kbn-std/src/is_internal_url.test.ts index d6fe64c0b33ce..cc1f5a32d7db4 100644 --- a/x-pack/plugins/security/common/is_internal_url.test.ts +++ b/packages/kbn-std/src/is_internal_url.test.ts @@ -1,8 +1,9 @@ /* * 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. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { isInternalURL } from './is_internal_url'; diff --git a/x-pack/plugins/security/common/is_internal_url.ts b/packages/kbn-std/src/is_internal_url.ts similarity index 80% rename from x-pack/plugins/security/common/is_internal_url.ts rename to packages/kbn-std/src/is_internal_url.ts index ea121aeb7cbf8..434fa6eaf7c27 100644 --- a/x-pack/plugins/security/common/is_internal_url.ts +++ b/packages/kbn-std/src/is_internal_url.ts @@ -1,14 +1,18 @@ /* * 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. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ -import { parse } from 'url'; +import { parse as parseUrl } from 'url'; +/** + * Determine if url is outside of this Kibana install. + */ export function isInternalURL(url: string, basePath = '') { - const { protocol, hostname, port, pathname } = parse( + const { protocol, hostname, port, pathname } = parseUrl( url, false /* parseQueryString */, true /* slashesDenoteHost */ @@ -27,6 +31,7 @@ export function isInternalURL(url: string, basePath = '') { // Now we need to normalize URL to make sure any relative path segments (`..`) cannot escape expected // base path. We can rely on `URL` with a localhost to automatically "normalize" the URL. const normalizedPathname = new URL(String(pathname), 'https://localhost').pathname; + return ( // Normalized pathname can add a leading slash, but we should also make sure it's included in // the original URL too diff --git a/x-pack/plugins/security/common/parse_next.test.ts b/packages/kbn-std/src/parse_next_url.test.ts similarity index 78% rename from x-pack/plugins/security/common/parse_next.test.ts rename to packages/kbn-std/src/parse_next_url.test.ts index 49c4fdcd8e80b..2d56ae0e92b8a 100644 --- a/x-pack/plugins/security/common/parse_next.test.ts +++ b/packages/kbn-std/src/parse_next_url.test.ts @@ -1,15 +1,16 @@ /* * 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. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ -import { parseNext } from './parse_next'; +import { parseNextURL } from './parse_next_url'; -describe('parseNext', () => { +describe('parseNextURL', () => { it('should return a function', () => { - expect(parseNext).toBeInstanceOf(Function); + expect(parseNextURL).toBeInstanceOf(Function); }); describe('with basePath defined', () => { @@ -17,14 +18,14 @@ describe('parseNext', () => { it('should return basePath with a trailing slash when next is not specified', () => { const basePath = '/iqf'; const href = `${basePath}/login`; - expect(parseNext(href, basePath)).toEqual(`${basePath}/`); + expect(parseNextURL(href, basePath)).toEqual(`${basePath}/`); }); it('should properly handle next without hash', () => { const basePath = '/iqf'; const next = `${basePath}/app/kibana`; const href = `${basePath}/login?next=${next}`; - expect(parseNext(href, basePath)).toEqual(next); + expect(parseNextURL(href, basePath)).toEqual(next); }); it('should properly handle next with hash', () => { @@ -32,7 +33,7 @@ describe('parseNext', () => { const next = `${basePath}/app/kibana`; const hash = '/discover/New-Saved-Search'; const href = `${basePath}/login?next=${next}#${hash}`; - expect(parseNext(href, basePath)).toEqual(`${next}#${hash}`); + expect(parseNextURL(href, basePath)).toEqual(`${next}#${hash}`); }); it('should properly handle multiple next with hash', () => { @@ -41,7 +42,7 @@ describe('parseNext', () => { const next2 = `${basePath}/app/ml`; const hash = '/discover/New-Saved-Search'; const href = `${basePath}/login?next=${next1}&next=${next2}#${hash}`; - expect(parseNext(href, basePath)).toEqual(`${next1}#${hash}`); + expect(parseNextURL(href, basePath)).toEqual(`${next1}#${hash}`); }); it('should properly decode special characters', () => { @@ -49,7 +50,7 @@ describe('parseNext', () => { const next = `${encodeURIComponent(basePath)}%2Fapp%2Fkibana`; const hash = '/discover/New-Saved-Search'; const href = `${basePath}/login?next=${next}#${hash}`; - expect(parseNext(href, basePath)).toEqual(decodeURIComponent(`${next}#${hash}`)); + expect(parseNextURL(href, basePath)).toEqual(decodeURIComponent(`${next}#${hash}`)); }); // to help prevent open redirect to a different url @@ -57,7 +58,7 @@ describe('parseNext', () => { const basePath = '/iqf'; const next = `https://example.com${basePath}/app/kibana`; const href = `${basePath}/login?next=${next}`; - expect(parseNext(href, basePath)).toEqual(`${basePath}/`); + expect(parseNextURL(href, basePath)).toEqual(`${basePath}/`); }); // to help prevent open redirect to a different url by abusing encodings @@ -67,7 +68,7 @@ describe('parseNext', () => { const next = `${encodeURIComponent(baseUrl)}%2Fapp%2Fkibana`; const hash = '/discover/New-Saved-Search'; const href = `${basePath}/login?next=${next}#${hash}`; - expect(parseNext(href, basePath)).toEqual(`${basePath}/`); + expect(parseNextURL(href, basePath)).toEqual(`${basePath}/`); }); // to help prevent open redirect to a different port @@ -75,7 +76,7 @@ describe('parseNext', () => { const basePath = '/iqf'; const next = `http://localhost:5601${basePath}/app/kibana`; const href = `${basePath}/login?next=${next}`; - expect(parseNext(href, basePath)).toEqual(`${basePath}/`); + expect(parseNextURL(href, basePath)).toEqual(`${basePath}/`); }); // to help prevent open redirect to a different port by abusing encodings @@ -85,7 +86,7 @@ describe('parseNext', () => { const next = `${encodeURIComponent(baseUrl)}%2Fapp%2Fkibana`; const hash = '/discover/New-Saved-Search'; const href = `${basePath}/login?next=${next}#${hash}`; - expect(parseNext(href, basePath)).toEqual(`${basePath}/`); + expect(parseNextURL(href, basePath)).toEqual(`${basePath}/`); }); // to help prevent open redirect to a different base path @@ -93,18 +94,18 @@ describe('parseNext', () => { const basePath = '/iqf'; const next = '/notbasepath/app/kibana'; const href = `${basePath}/login?next=${next}`; - expect(parseNext(href, basePath)).toEqual(`${basePath}/`); + expect(parseNextURL(href, basePath)).toEqual(`${basePath}/`); }); // disallow network-path references it('should return / if next is url without protocol', () => { const nextWithTwoSlashes = '//example.com'; const hrefWithTwoSlashes = `/login?next=${nextWithTwoSlashes}`; - expect(parseNext(hrefWithTwoSlashes)).toEqual('/'); + expect(parseNextURL(hrefWithTwoSlashes)).toEqual('/'); const nextWithThreeSlashes = '///example.com'; const hrefWithThreeSlashes = `/login?next=${nextWithThreeSlashes}`; - expect(parseNext(hrefWithThreeSlashes)).toEqual('/'); + expect(parseNextURL(hrefWithThreeSlashes)).toEqual('/'); }); }); @@ -112,20 +113,20 @@ describe('parseNext', () => { // trailing slash is important since it must match the cookie path exactly it('should return / with a trailing slash when next is not specified', () => { const href = '/login'; - expect(parseNext(href)).toEqual('/'); + expect(parseNextURL(href)).toEqual('/'); }); it('should properly handle next without hash', () => { const next = '/app/kibana'; const href = `/login?next=${next}`; - expect(parseNext(href)).toEqual(next); + expect(parseNextURL(href)).toEqual(next); }); it('should properly handle next with hash', () => { const next = '/app/kibana'; const hash = '/discover/New-Saved-Search'; const href = `/login?next=${next}#${hash}`; - expect(parseNext(href)).toEqual(`${next}#${hash}`); + expect(parseNextURL(href)).toEqual(`${next}#${hash}`); }); it('should properly handle multiple next with hash', () => { @@ -133,21 +134,21 @@ describe('parseNext', () => { const next2 = '/app/ml'; const hash = '/discover/New-Saved-Search'; const href = `/login?next=${next1}&next=${next2}#${hash}`; - expect(parseNext(href)).toEqual(`${next1}#${hash}`); + expect(parseNextURL(href)).toEqual(`${next1}#${hash}`); }); it('should properly decode special characters', () => { const next = '%2Fapp%2Fkibana'; const hash = '/discover/New-Saved-Search'; const href = `/login?next=${next}#${hash}`; - expect(parseNext(href)).toEqual(decodeURIComponent(`${next}#${hash}`)); + expect(parseNextURL(href)).toEqual(decodeURIComponent(`${next}#${hash}`)); }); // to help prevent open redirect to a different url it('should return / if next includes a protocol/hostname', () => { const next = 'https://example.com/app/kibana'; const href = `/login?next=${next}`; - expect(parseNext(href)).toEqual('/'); + expect(parseNextURL(href)).toEqual('/'); }); // to help prevent open redirect to a different url by abusing encodings @@ -156,14 +157,14 @@ describe('parseNext', () => { const next = `${encodeURIComponent(baseUrl)}%2Fapp%2Fkibana`; const hash = '/discover/New-Saved-Search'; const href = `/login?next=${next}#${hash}`; - expect(parseNext(href)).toEqual('/'); + expect(parseNextURL(href)).toEqual('/'); }); // to help prevent open redirect to a different port it('should return / if next includes a port', () => { const next = 'http://localhost:5601/app/kibana'; const href = `/login?next=${next}`; - expect(parseNext(href)).toEqual('/'); + expect(parseNextURL(href)).toEqual('/'); }); // to help prevent open redirect to a different port by abusing encodings @@ -172,18 +173,18 @@ describe('parseNext', () => { const next = `${encodeURIComponent(baseUrl)}%2Fapp%2Fkibana`; const hash = '/discover/New-Saved-Search'; const href = `/login?next=${next}#${hash}`; - expect(parseNext(href)).toEqual('/'); + expect(parseNextURL(href)).toEqual('/'); }); // disallow network-path references it('should return / if next is url without protocol', () => { const nextWithTwoSlashes = '//example.com'; const hrefWithTwoSlashes = `/login?next=${nextWithTwoSlashes}`; - expect(parseNext(hrefWithTwoSlashes)).toEqual('/'); + expect(parseNextURL(hrefWithTwoSlashes)).toEqual('/'); const nextWithThreeSlashes = '///example.com'; const hrefWithThreeSlashes = `/login?next=${nextWithThreeSlashes}`; - expect(parseNext(hrefWithThreeSlashes)).toEqual('/'); + expect(parseNextURL(hrefWithThreeSlashes)).toEqual('/'); }); }); }); diff --git a/x-pack/plugins/security/common/parse_next.ts b/packages/kbn-std/src/parse_next_url.ts similarity index 56% rename from x-pack/plugins/security/common/parse_next.ts rename to packages/kbn-std/src/parse_next_url.ts index bf7bb3b070736..1b54e02d581a0 100644 --- a/x-pack/plugins/security/common/parse_next.ts +++ b/packages/kbn-std/src/parse_next_url.ts @@ -1,19 +1,29 @@ /* * 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. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { parse } from 'url'; - -import { NEXT_URL_QUERY_STRING_PARAMETER } from './constants'; import { isInternalURL } from './is_internal_url'; -export function parseNext(href: string, basePath = '') { +const DEFAULT_NEXT_URL_QUERY_STRING_PARAMETER = 'next'; + +/** + * Parse the url value from query param. By default + * + * By default query param is set to next. + */ +export function parseNextURL( + href: string, + basePath = '', + nextUrlQueryParam = DEFAULT_NEXT_URL_QUERY_STRING_PARAMETER +) { const { query, hash } = parse(href, true); - let next = query[NEXT_URL_QUERY_STRING_PARAMETER]; + let next = query[nextUrlQueryParam]; if (!next) { return `${basePath}/`; } diff --git a/x-pack/plugins/security/public/authentication/access_agreement/access_agreement_page.tsx b/x-pack/plugins/security/public/authentication/access_agreement/access_agreement_page.tsx index c4c3c51d94d6f..23cdb93b460ef 100644 --- a/x-pack/plugins/security/public/authentication/access_agreement/access_agreement_page.tsx +++ b/x-pack/plugins/security/public/authentication/access_agreement/access_agreement_page.tsx @@ -30,9 +30,9 @@ import type { import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; +import { parseNextURL } from '@kbn/std'; import type { StartServices } from '../..'; -import { parseNext } from '../../../common/parse_next'; import { AuthenticationStatePage } from '../components'; interface Props { @@ -59,7 +59,7 @@ export function AccessAgreementPage({ http, fatalErrors, notifications }: Props) try { setIsLoading(true); await http.post('/internal/security/access_agreement/acknowledge'); - window.location.href = parseNext(window.location.href, http.basePath.serverBasePath); + window.location.href = parseNextURL(window.location.href, http.basePath.serverBasePath); } catch (err) { notifications.toasts.addError(err, { title: i18n.translate('xpack.security.accessAgreement.acknowledgeErrorMessage', { diff --git a/x-pack/plugins/security/public/authentication/capture_url/capture_url_app.ts b/x-pack/plugins/security/public/authentication/capture_url/capture_url_app.ts index f27d5ea7b5466..cb96bdae01ae3 100644 --- a/x-pack/plugins/security/public/authentication/capture_url/capture_url_app.ts +++ b/x-pack/plugins/security/public/authentication/capture_url/capture_url_app.ts @@ -47,9 +47,9 @@ export const captureURLApp = Object.freeze({ try { // This is an async import because it requires `url`, which is a sizable dependency. // Otherwise this becomes part of the "page load bundle". - const { parseNext } = await import('../../../common/parse_next'); + const { parseNextURL } = await import('@kbn/std'); const url = new URL( - parseNext(window.location.href, http.basePath.serverBasePath), + parseNextURL(window.location.href, http.basePath.serverBasePath), window.location.origin ); url.searchParams.append(AUTH_URL_HASH_QUERY_STRING_PARAMETER, window.location.hash); diff --git a/x-pack/plugins/security/public/authentication/logged_out/logged_out_page.tsx b/x-pack/plugins/security/public/authentication/logged_out/logged_out_page.tsx index c380bfa11c2b9..b42014d828c10 100644 --- a/x-pack/plugins/security/public/authentication/logged_out/logged_out_page.tsx +++ b/x-pack/plugins/security/public/authentication/logged_out/logged_out_page.tsx @@ -13,9 +13,9 @@ import useObservable from 'react-use/lib/useObservable'; import type { AppMountParameters, CustomBrandingStart, IBasePath } from '@kbn/core/public'; import { FormattedMessage } from '@kbn/i18n-react'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; +import { parseNextURL } from '@kbn/std'; import type { StartServices } from '../..'; -import { parseNext } from '../../../common/parse_next'; import { AuthenticationStatePage } from '../components'; interface Props { @@ -35,7 +35,7 @@ export function LoggedOutPage({ basePath, customBranding }: Props) { } logo={customBrandingValue?.logo} > - + diff --git a/x-pack/plugins/security/public/authentication/overwritten_session/overwritten_session_page.tsx b/x-pack/plugins/security/public/authentication/overwritten_session/overwritten_session_page.tsx index 42ef361bc1fd9..98a28f8919d0f 100644 --- a/x-pack/plugins/security/public/authentication/overwritten_session/overwritten_session_page.tsx +++ b/x-pack/plugins/security/public/authentication/overwritten_session/overwritten_session_page.tsx @@ -13,9 +13,9 @@ import type { AppMountParameters, IBasePath } from '@kbn/core/public'; import { FormattedMessage } from '@kbn/i18n-react'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; import type { AuthenticationServiceSetup } from '@kbn/security-plugin-types-public'; +import { parseNextURL } from '@kbn/std'; import type { StartServices } from '../..'; -import { parseNext } from '../../../common/parse_next'; import { AuthenticationStatePage } from '../components'; interface Props { @@ -42,7 +42,7 @@ export function OverwrittenSessionPage({ authc, basePath }: Props) { /> } > - + { const { providerType, providerName, currentURL, params } = request.body; - const redirectURL = parseNext(currentURL, basePath.serverBasePath); + const redirectURL = parseNextURL(currentURL, basePath.serverBasePath); const authenticationResult = await getAuthenticationService().login(request, { provider: { name: providerName }, redirectURL, diff --git a/x-pack/plugins/security/server/routes/views/login.ts b/x-pack/plugins/security/server/routes/views/login.ts index 9a7145b0e09df..5d4468fcbba57 100644 --- a/x-pack/plugins/security/server/routes/views/login.ts +++ b/x-pack/plugins/security/server/routes/views/login.ts @@ -6,6 +6,7 @@ */ import { schema } from '@kbn/config-schema'; +import { parseNextURL } from '@kbn/std'; import type { RouteDefinitionParams } from '..'; import { @@ -14,7 +15,6 @@ import { } from '../../../common/constants'; import type { LoginState } from '../../../common/login_state'; import { shouldProviderUseLoginForm } from '../../../common/model'; -import { parseNext } from '../../../common/parse_next'; /** * Defines routes required for the Login view. @@ -48,7 +48,7 @@ export function defineLoginRoutes({ if (isUserAlreadyLoggedIn || !shouldShowLogin) { logger.debug('User is already authenticated, redirecting...'); return response.redirected({ - headers: { location: parseNext(request.url?.href ?? '', basePath.serverBasePath) }, + headers: { location: parseNextURL(request.url?.href ?? '', basePath.serverBasePath) }, }); } diff --git a/x-pack/plugins/spaces/server/routes/views/index.test.ts b/x-pack/plugins/spaces/server/routes/views/index.test.ts new file mode 100644 index 0000000000000..6c035a5694fe4 --- /dev/null +++ b/x-pack/plugins/spaces/server/routes/views/index.test.ts @@ -0,0 +1,240 @@ +/* + * 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 { Type } from '@kbn/config-schema'; +import type { + HttpResources, + HttpResourcesRequestHandler, + RequestHandlerContext, + RouteConfig, +} from '@kbn/core/server'; +import { + coreMock, + httpResourcesMock, + httpServerMock, + httpServiceMock, + loggingSystemMock, + uiSettingsServiceMock, +} from '@kbn/core/server/mocks'; +import type { DeeplyMockedKeys } from '@kbn/utility-types-jest'; + +import type { ViewRouteDeps } from '.'; +import { initSpacesViewsRoutes } from '.'; +import { ENTER_SPACE_PATH } from '../../../common'; + +const routeDefinitionParamsMock = { + create: () => { + uiSettingsServiceMock.createStartContract(); + + return { + basePath: httpServiceMock.createBasePath(), + logger: loggingSystemMock.create().get(), + httpResources: httpResourcesMock.createRegistrar(), + } as unknown as DeeplyMockedKeys; + }, +}; + +describe('Space Selector view routes', () => { + let httpResources: jest.Mocked; + beforeEach(() => { + const routeParamsMock = routeDefinitionParamsMock.create(); + httpResources = routeParamsMock.httpResources; + + initSpacesViewsRoutes(routeParamsMock); + }); + + let routeHandler: HttpResourcesRequestHandler; + let routeConfig: RouteConfig; + beforeEach(() => { + const [viewRouteConfig, viewRouteHandler] = httpResources.register.mock.calls.find( + ([{ path }]) => path === '/spaces/space_selector' + )!; + + routeConfig = viewRouteConfig; + routeHandler = viewRouteHandler; + }); + + it('correctly defines route.', () => { + expect(routeConfig.options).toBeUndefined(); + expect(routeConfig.validate).toBe(false); + }); + + it('renders view.', async () => { + const request = httpServerMock.createKibanaRequest(); + const responseFactory = httpResourcesMock.createResponseFactory(); + + await routeHandler({} as unknown as RequestHandlerContext, request, responseFactory); + + expect(responseFactory.renderCoreApp).toHaveBeenCalledWith(); + }); +}); + +describe('Enter Space view routes', () => { + let httpResources: jest.Mocked; + beforeEach(() => { + const routeParamsMock = routeDefinitionParamsMock.create(); + httpResources = routeParamsMock.httpResources; + + initSpacesViewsRoutes(routeParamsMock); + }); + + let routeHandler: HttpResourcesRequestHandler; + let routeConfig: RouteConfig; + beforeEach(() => { + const [viewRouteConfig, viewRouteHandler] = httpResources.register.mock.calls.find( + ([{ path }]) => path === ENTER_SPACE_PATH + )!; + + routeConfig = viewRouteConfig; + routeHandler = viewRouteHandler; + }); + + it('correctly defines route.', () => { + expect(routeConfig.validate).toEqual({ + body: undefined, + query: expect.any(Type), + params: undefined, + }); + + const queryValidator = (routeConfig.validate as any).query as Type; + expect(queryValidator.validate({})).toEqual({}); + expect(queryValidator.validate({ next: '/some-url', something: 'something' })).toEqual({ + next: '/some-url', + }); + }); + + it('correctly enters space default route.', async () => { + const request = httpServerMock.createKibanaRequest(); + const responseFactory = httpResourcesMock.createResponseFactory(); + const contextMock = coreMock.createRequestHandlerContext(); + + contextMock.uiSettings.client.get.mockResolvedValue('/home'); + + await routeHandler( + { core: contextMock } as unknown as RequestHandlerContext, + request, + responseFactory + ); + + expect(responseFactory.redirected).toHaveBeenCalledWith({ + headers: { location: '/mock-server-basepath/home' }, + }); + }); + + it('correctly enters space with specified route.', async () => { + const nextRoute = '/app/management/kibana/objects'; + const request = httpServerMock.createKibanaRequest({ + query: { + next: nextRoute, + }, + }); + + const responseFactory = httpResourcesMock.createResponseFactory(); + const contextMock = coreMock.createRequestHandlerContext(); + + await routeHandler( + { core: contextMock } as unknown as RequestHandlerContext, + request, + responseFactory + ); + + expect(responseFactory.redirected).toHaveBeenCalledWith({ + headers: { location: `/mock-server-basepath${nextRoute}` }, + }); + }); + + it('correctly enters space with specified route without leading slash.', async () => { + const nextRoute = 'app/management/kibana/objects'; + const request = httpServerMock.createKibanaRequest({ + query: { + next: nextRoute, + }, + }); + + const responseFactory = httpResourcesMock.createResponseFactory(); + const contextMock = coreMock.createRequestHandlerContext(); + + await routeHandler( + { core: contextMock } as unknown as RequestHandlerContext, + request, + responseFactory + ); + + expect(responseFactory.redirected).toHaveBeenCalledWith({ + headers: { location: `/mock-server-basepath/${nextRoute}` }, + }); + }); + + it('correctly enters space and normalizes specified route.', async () => { + const responseFactory = httpResourcesMock.createResponseFactory(); + const contextMock = coreMock.createRequestHandlerContext(); + + for (const { query, expectedLocation } of [ + { + query: { + next: '/app/../app/management/kibana/objects', + }, + expectedLocation: '/mock-server-basepath/app/management/kibana/objects', + }, + { + query: { + next: '../../app/../app/management/kibana/objects', + }, + expectedLocation: '/mock-server-basepath/app/management/kibana/objects', + }, + { + query: { + next: '/../../app/home', + }, + expectedLocation: '/mock-server-basepath/app/home', + }, + { + query: { + next: '/app/management/kibana/objects/../../kibana/home', + }, + expectedLocation: '/mock-server-basepath/app/management/kibana/home', + }, + ]) { + const request = httpServerMock.createKibanaRequest({ + query, + }); + await routeHandler( + { core: contextMock } as unknown as RequestHandlerContext, + request, + responseFactory + ); + + expect(responseFactory.redirected).toHaveBeenCalledWith({ + headers: { location: expectedLocation }, + }); + + responseFactory.redirected.mockClear(); + } + }); + + it('correctly enters space with default route if specificed route is not relative.', async () => { + const request = httpServerMock.createKibanaRequest({ + query: { + next: 'http://evil.com/mock-server-basepath/app/kibana', + }, + }); + + const responseFactory = httpResourcesMock.createResponseFactory(); + const contextMock = coreMock.createRequestHandlerContext(); + contextMock.uiSettings.client.get.mockResolvedValue('/home'); + + await routeHandler( + { core: contextMock } as unknown as RequestHandlerContext, + request, + responseFactory + ); + + expect(responseFactory.redirected).toHaveBeenCalledWith({ + headers: { location: '/mock-server-basepath/home' }, + }); + }); +}); diff --git a/x-pack/plugins/spaces/server/routes/views/index.ts b/x-pack/plugins/spaces/server/routes/views/index.ts index d0cff27e85433..73fa47338dd76 100644 --- a/x-pack/plugins/spaces/server/routes/views/index.ts +++ b/x-pack/plugins/spaces/server/routes/views/index.ts @@ -5,7 +5,9 @@ * 2.0. */ +import { schema } from '@kbn/config-schema'; import type { HttpResources, IBasePath, Logger } from '@kbn/core/server'; +import { parseNextURL } from '@kbn/std'; import { ENTER_SPACE_PATH } from '../../../common'; import { wrapError } from '../../lib/errors'; @@ -23,18 +25,28 @@ export function initSpacesViewsRoutes(deps: ViewRouteDeps) { ); deps.httpResources.register( - { path: ENTER_SPACE_PATH, validate: false }, + { + path: ENTER_SPACE_PATH, + validate: { + query: schema.maybe( + schema.object({ next: schema.maybe(schema.string()) }, { unknowns: 'ignore' }) + ), + }, + }, async (context, request, response) => { try { const { uiSettings } = await context.core; const defaultRoute = await uiSettings.client.get('defaultRoute'); - const basePath = deps.basePath.get(request); - const url = `${basePath}${defaultRoute}`; + const nextCandidateRoute = parseNextURL(request.url.href); + + const route = nextCandidateRoute === '/' ? defaultRoute : nextCandidateRoute; + // need to get reed of ../../ to make sure we will not be out of space basePath + const normalizedRoute = new URL(route, 'https://localhost').pathname; return response.redirected({ headers: { - location: url, + location: `${basePath}${normalizedRoute}`, }, }); } catch (e) { diff --git a/x-pack/plugins/spaces/tsconfig.json b/x-pack/plugins/spaces/tsconfig.json index 863027b382510..f912a1231e608 100644 --- a/x-pack/plugins/spaces/tsconfig.json +++ b/x-pack/plugins/spaces/tsconfig.json @@ -34,6 +34,7 @@ "@kbn/shared-ux-avatar-solution", "@kbn/core-http-server", "@kbn/react-kibana-context-render", + "@kbn/utility-types-jest", ], "exclude": [ "target/**/*", diff --git a/x-pack/test/functional/apps/spaces/enter_space.ts b/x-pack/test/functional/apps/spaces/enter_space.ts index caae7bad10b0f..f070d8dfcad93 100644 --- a/x-pack/test/functional/apps/spaces/enter_space.ts +++ b/x-pack/test/functional/apps/spaces/enter_space.ts @@ -15,6 +15,7 @@ export default function enterSpaceFunctionalTests({ const kibanaServer = getService('kibanaServer'); const PageObjects = getPageObjects(['security', 'spaceSelector']); const spacesService = getService('spaces'); + const browser = getService('browser'); describe('Enter Space', function () { this.tags('includeFirefox'); @@ -81,5 +82,58 @@ export default function enterSpaceFunctionalTests({ await PageObjects.spaceSelector.clickSpaceAvatar(newSpaceId); await PageObjects.spaceSelector.expectHomePage(newSpaceId); }); + + it('allows user to navigate to different space with provided next route', async () => { + const spaceId = 'another-space'; + + await PageObjects.security.login(undefined, undefined, { + expectSpaceSelector: true, + }); + + const anchorElement = await PageObjects.spaceSelector.getSpaceCardAnchor(spaceId); + const path = await anchorElement.getAttribute('href'); + + const pathWithNextRoute = `${path}?next=/app/management/kibana/objects`; + + await browser.navigateTo(pathWithNextRoute); + + await PageObjects.spaceSelector.expectRoute(spaceId, '/app/management/kibana/objects'); + }); + + it('allows user to navigate to different space with provided next route, route is normalized', async () => { + const spaceId = 'another-space'; + + await PageObjects.security.login(undefined, undefined, { + expectSpaceSelector: true, + }); + + const anchorElement = await PageObjects.spaceSelector.getSpaceCardAnchor(spaceId); + const path = await anchorElement.getAttribute('href'); + + const pathWithNextRoute = `${path}?next=${encodeURIComponent( + '/../../../app/management/kibana/objects' + )}`; + + await browser.navigateTo(pathWithNextRoute); + + await PageObjects.spaceSelector.expectRoute(spaceId, '/app/management/kibana/objects'); + }); + + it('falls back to the default home page if provided next route is malformed', async () => { + const spaceId = 'another-space'; + + await PageObjects.security.login(undefined, undefined, { + expectSpaceSelector: true, + }); + + const anchorElement = await PageObjects.spaceSelector.getSpaceCardAnchor(spaceId); + const path = await anchorElement.getAttribute('href'); + + const pathWithNextRoute = `${path}?next=http://example.com/evil`; + + await browser.navigateTo(pathWithNextRoute); + + await PageObjects.spaceSelector.expectRoute(spaceId, '/app/canvas'); + }); }); } diff --git a/x-pack/test/functional/page_objects/space_selector_page.ts b/x-pack/test/functional/page_objects/space_selector_page.ts index 211193f6cf88a..8c56dee81f435 100644 --- a/x-pack/test/functional/page_objects/space_selector_page.ts +++ b/x-pack/test/functional/page_objects/space_selector_page.ts @@ -29,6 +29,18 @@ export class SpaceSelectorPageObject extends FtrService { }); } + async getSpaceCardAnchor(spaceId: string) { + return await this.retry.try(async () => { + this.log.info(`SpaceSelectorPage:getSpaceCardAnchor(${spaceId})`); + const testSubjId = `space-card-${spaceId}`; + const anchorElement = await this.find.byCssSelector( + `[data-test-subj="${testSubjId}"] .euiCard__titleAnchor` + ); + + return anchorElement; + }); + } + async expectHomePage(spaceId: string) { return await this.expectRoute(spaceId, `/app/home#/`); } From 918f43ce932110cc3a7c8c811ae0fdf7228db2fa Mon Sep 17 00:00:00 2001 From: jennypavlova Date: Mon, 22 Apr 2024 12:28:19 +0200 Subject: [PATCH 008/183] [Infra] Inform users about filters applied in the Dashboards tab (#181175) Closes #175552 ## Summary This PR adds a callout to explain when the linked dashboard is filtered by asset id. ## Testing The callout messages and mockups are added in the [issue description](https://github.com/elastic/kibana/issues/175552#issue-2100558349). - Go to asset details flyout or page dashboards tab - Link a dashboard (leave the default filter option) - Info callout content and tooltip: ![image](https://github.com/elastic/kibana/assets/14139027/a1aebda2-d67f-4beb-b882-2e3a03320b83) - Link a dashboard (deselect the default filter option) - Info callout content and tooltip: image --- .../tabs/dashboards/dashboards.tsx | 9 +++ .../dashboards/filter_explanation_callout.tsx | 76 +++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/filter_explanation_callout.tsx diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx index 495cc306f02b8..5ca216a5734c9 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx @@ -41,6 +41,7 @@ import { useDataViewsContext } from '../../hooks/use_data_views'; import { DashboardSelector } from './dashboard_selector'; import { ContextMenu } from './context_menu'; import { useAssetDetailsUrlState } from '../../hooks/use_asset_details_url_state'; +import { FilterExplanationCallout } from './filter_explanation_callout'; export function Dashboards() { const { dateRange } = useDatePickerContext(); @@ -182,6 +183,14 @@ export function Dashboards() { )} + {currentDashboard && ( + <> + + + + )} {urlState?.dashboardId && ( diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/filter_explanation_callout.tsx b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/filter_explanation_callout.tsx new file mode 100644 index 0000000000000..b2d36815f05d3 --- /dev/null +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/filter_explanation_callout.tsx @@ -0,0 +1,76 @@ +/* + * 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 React from 'react'; + +import { i18n } from '@kbn/i18n'; +import { EuiCallOut, EuiFlexGroup, EuiFlexItem, EuiToolTip, EuiIcon, EuiCode } from '@elastic/eui'; + +import { findInventoryFields } from '@kbn/metrics-data-access-plugin/common'; +import { css } from '@emotion/react'; +import { useAssetDetailsRenderPropsContext } from '../../hooks/use_asset_details_render_props'; + +interface Props { + dashboardFilterAssetIdEnabled: boolean; +} +export const FilterExplanationCallout = ({ dashboardFilterAssetIdEnabled }: Props) => { + const { asset } = useAssetDetailsRenderPropsContext(); + + return ( + + + + {i18n.translate( + 'xpack.infra.customDashboards.filteredByCurrentAssetExplanation.tooltip', + { + defaultMessage: 'Filtered by', + } + )} + {`${findInventoryFields(asset.type).id}: ${asset.id}`} + + ) : ( + i18n.translate('xpack.infra.customDashboards.notFilteredExplanation.tooltip', { + defaultMessage: + 'You can change this dashboard to filter by the {assetType} by editing the link for it', + values: { assetType: asset.type }, + }) + ) + } + > + + + + + {dashboardFilterAssetIdEnabled + ? i18n.translate( + 'xpack.infra.customDashboards.filteredByCurrentAssetExplanation.message', + { + defaultMessage: 'This dashboard is filtered by the current {assetType}', + values: { assetType: asset.type }, + } + ) + : i18n.translate('xpack.infra.customDashboards.notFilteredExplanation.message', { + defaultMessage: + 'This dashboard is not filtered by the {assetType} you are viewing', + values: { assetType: asset.type }, + })} + + + } + /> + ); +}; From 703307682cf14bdf8edea30b12af508af03bcddd Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Mon, 22 Apr 2024 12:30:34 +0200 Subject: [PATCH 009/183] [Observability Onboarding] Add footer (#180720) ## Summary Fixes https://github.com/elastic/kibana/issues/179793 by adding the real links and so on to the footer of the landing page --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../public/application/footer/footer.tsx | 85 +++- .../application/footer/integrations_icon.svg | 417 ------------------ .../application/footer/support_icon.svg | 377 ++++++++++++++++ .../observability_onboarding/public/index.ts | 4 + .../observability_onboarding/tsconfig.json | 1 + 5 files changed, 449 insertions(+), 435 deletions(-) delete mode 100644 x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/integrations_icon.svg create mode 100644 x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/support_icon.svg diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/footer.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/footer.tsx index bdce8e98e198a..7cb5979ad0b4b 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/footer.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/footer.tsx @@ -9,44 +9,94 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import type { FunctionComponent } from 'react'; import { EuiSpacer, EuiFlexGroup, EuiFlexItem, EuiAvatar, EuiText, EuiLink } from '@elastic/eui'; -import integrationsIconUrl from './integrations_icon.svg'; +import { URL_DEMO_ENV } from '@kbn/home-sample-data-tab/src/constants'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import useObservable from 'react-use/lib/useObservable'; +import supportIconUrl from './support_icon.svg'; import demoIconUrl from './demo_icon.svg'; import docsIconUrl from './docs_icon.svg'; import forumIconUrl from './forum_icon.svg'; +import { ObservabilityOnboardingAppServices } from '../..'; + +const URL_FORUM = 'https://discuss.elastic.co/'; export const Footer: FunctionComponent = () => { + const { + services: { docLinks, chrome }, + } = useKibana(); + const helpSupportUrl = useObservable(chrome.getHelpSupportUrl$()); const sections = [ - { - iconUrl: integrationsIconUrl, - title: i18n.translate( - 'xpack.observability_onboarding.experimentalOnboardingFlow.dataSourcesFlexItemLabel', - { defaultMessage: 'Data sources' } - ), - description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod', - }, { iconUrl: demoIconUrl, title: i18n.translate( 'xpack.observability_onboarding.experimentalOnboardingFlow.demoEnvironmentFlexItemLabel', { defaultMessage: 'Demo environment' } ), - description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod', + description: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.demoEnvironmentFlexItemDescription', + { + defaultMessage: 'Explore our live demo environment', + } + ), + linkLabel: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.demoEnvironmentFlexItemLinkLabel', + { defaultMessage: 'Explore demo' } + ), + link: URL_DEMO_ENV, }, { - iconUrl: docsIconUrl, + iconUrl: forumIconUrl, title: i18n.translate( 'xpack.observability_onboarding.experimentalOnboardingFlow.exploreForumFlexItemLabel', { defaultMessage: 'Explore forum' } ), - description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod', + description: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.exploreForumFlexItemDescription', + { + defaultMessage: 'Exchange thoughts about Elastic', + } + ), + linkLabel: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.exploreForumFlexItemLinkLabel', + { defaultMessage: 'Discuss forum' } + ), + link: URL_FORUM, }, { - iconUrl: forumIconUrl, + iconUrl: docsIconUrl, title: i18n.translate( 'xpack.observability_onboarding.experimentalOnboardingFlow.browseDocumentationFlexItemLabel', { defaultMessage: 'Browse documentation' } ), - description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod', + description: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.browseDocumentationFlexItemDescription', + { + defaultMessage: 'In-depth guides on all Elastic features', + } + ), + linkLabel: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.browseDocumentationFlexItemLinkLabel', + { defaultMessage: 'Learn more' } + ), + link: docLinks.links.observability.guide, + }, + { + iconUrl: supportIconUrl, + title: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.supportHubFlexItemLabel', + { defaultMessage: 'Support Hub' } + ), + description: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.supportHubFlexItemDescription', + { + defaultMessage: 'Get help by opening a case', + } + ), + linkLabel: i18n.translate( + 'xpack.observability_onboarding.experimentalOnboardingFlow.supportHubFlexItemLinkLabel', + { defaultMessage: 'Open Support Hub' } + ), + link: helpSupportUrl, }, ]; @@ -68,12 +118,11 @@ export const Footer: FunctionComponent = () => {

- {i18n.translate('xpack.observability_onboarding.footer.learnMoreLinkLabel', { - defaultMessage: 'Learn more', - })} + {section.linkLabel}

diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/integrations_icon.svg b/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/integrations_icon.svg deleted file mode 100644 index a82974fdf0406..0000000000000 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/integrations_icon.svg +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/support_icon.svg b/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/support_icon.svg new file mode 100644 index 0000000000000..72eeed3ef432d --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/footer/support_icon.svg @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/index.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/index.ts index fa510c2fa7347..98174497d6c3e 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/index.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/index.ts @@ -7,6 +7,8 @@ import { ApplicationStart, + ChromeStart, + DocLinksStart, HttpStart, PluginInitializer, PluginInitializerContext, @@ -30,6 +32,8 @@ export interface ObservabilityOnboardingAppServices { application: ApplicationStart; http: HttpStart; config: ConfigSchema; + docLinks: DocLinksStart; + chrome: ChromeStart; } export const plugin: PluginInitializer< diff --git a/x-pack/plugins/observability_solution/observability_onboarding/tsconfig.json b/x-pack/plugins/observability_solution/observability_onboarding/tsconfig.json index 52bf9a32fd8e1..ff0fe8696ce81 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/tsconfig.json +++ b/x-pack/plugins/observability_solution/observability_onboarding/tsconfig.json @@ -36,6 +36,7 @@ "@kbn/fleet-plugin", "@kbn/shared-ux-link-redirect-app", "@kbn/cloud-experiments-plugin", + "@kbn/home-sample-data-tab", "@kbn/analytics-client" ], "exclude": ["target/**/*"] From 4ec1a7289731525aefe9b15b16b3cfed8b603a03 Mon Sep 17 00:00:00 2001 From: Maryam Saeidi Date: Mon, 22 Apr 2024 12:33:15 +0200 Subject: [PATCH 010/183] [APM alert details page] Add transactionName as a prop to the latency history chart (#180558) Fixes #180448 Now, the history chart also includes the transaction name and works for both with and without having transaction name in the group by fields: (Related to this [comment](https://github.com/elastic/kibana/pull/180188#issuecomment-2045567860)) ![image](https://github.com/elastic/kibana/assets/12370520/892f62f5-b345-4780-bcf5-89fd84d1581b) --- .../alert_details_app_section/index.tsx | 1 + .../latency_alerts_history_chart.tsx | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/index.tsx index 8b46f9a2d8c3c..27e132f0e43eb 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/index.tsx @@ -214,6 +214,7 @@ export function AlertDetailsAppSection({ start={historicalRange.start} end={historicalRange.end} transactionType={transactionType} + transactionName={transactionName} latencyAggregationType={latencyAggregationType} environment={environment} timeZone={timeZone} diff --git a/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/latency_alerts_history_chart.tsx b/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/latency_alerts_history_chart.tsx index 7a8c383c16d8b..75a5a7dc0e4da 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/latency_alerts_history_chart.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/alerting/ui_components/alert_details_app_section/latency_alerts_history_chart.tsx @@ -43,6 +43,7 @@ interface LatencyAlertsHistoryChartProps { start: string; end: string; transactionType?: string; + transactionName?: string; latencyAggregationType: LatencyAggregationType; environment: string; timeZone: string; @@ -54,6 +55,7 @@ export function LatencyAlertsHistoryChart({ start, end, transactionType, + transactionName, latencyAggregationType, environment, timeZone, @@ -65,7 +67,11 @@ export function LatencyAlertsHistoryChart({ end, kuery: '', numBuckets: 100, - type: ApmDocumentType.ServiceTransactionMetric, + // ServiceTransactionMetric does not have transactionName as a dimension, but it is faster than TransactionMetric + // We use TransactionMetric only when there is a transactionName + type: transactionName + ? ApmDocumentType.TransactionMetric + : ApmDocumentType.ServiceTransactionMetric, }); const { http, notifications } = useKibana().services; const { data, status } = useFetcher( @@ -80,7 +86,7 @@ export function LatencyAlertsHistoryChart({ start, end, transactionType, - transactionName: undefined, + transactionName, latencyAggregationType, bucketSizeInSeconds: preferred.bucketSizeInSeconds, documentType: preferred.source.documentType, @@ -93,7 +99,16 @@ export function LatencyAlertsHistoryChart({ }); } }, - [end, environment, latencyAggregationType, serviceName, start, transactionType, preferred] + [ + end, + environment, + latencyAggregationType, + serviceName, + start, + transactionName, + transactionType, + preferred, + ] ); const memoizedData = useMemo( () => From 63baf7c5bddc54a9b2a7ec60f48dd7e4bde6200c Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Mon, 22 Apr 2024 12:35:02 +0200 Subject: [PATCH 011/183] [Lens] Fix formula popup initial section (#181053) ## Summary Fixes #181052 Screenshot 2024-04-17 at 16 19 10 --- .../operations/definitions/formula/editor/formula_help.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/formula_help.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/formula_help.tsx index 4bb885024bcbf..abc43a03dc651 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/formula_help.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/formula/editor/formula_help.tsx @@ -154,7 +154,7 @@ export function getDocumentationSections({ const sections = { groups: helpGroups, - initialSection: {formulasSections.howTo}, + initialSection: {formulasSections.howTo}, }; return sections; From eadc173ba23e44ed30e3dcfdf8b3b01c683b9358 Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Mon, 22 Apr 2024 12:35:29 +0200 Subject: [PATCH 012/183] [ES|QL] Fix autocomplete with incompatible args (#180874) ## Summary Fixes #180730 I've improved the autocomplete logic a bit here with the new features from `main`: * the `constantOnly` check has been pushed down rather than depend on an empty string * autosuggestion takes into account the previous argument types now to propose the next one ### 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 --- .../src/autocomplete/autocomplete.test.ts | 4 +- .../src/autocomplete/autocomplete.ts | 46 +++++++++++++++---- .../src/autocomplete/factories.ts | 21 ++++++--- 3 files changed, 55 insertions(+), 16 deletions(-) diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts index 2e1f116736588..c119f87a577dd 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts @@ -261,6 +261,8 @@ describe('autocomplete', () => { const suggestionInertTextSorted = suggestions // simulate the editor behaviour for sorting suggestions .sort((a, b) => (a.sortText || '').localeCompare(b.sortText || '')); + + expect(suggestionInertTextSorted).toHaveLength(expected.length); for (const [index, receivedSuggestion] of suggestionInertTextSorted.entries()) { if (typeof expected[index] !== 'object') { expect(receivedSuggestion.text).toEqual(expected[index]); @@ -1078,7 +1080,7 @@ describe('autocomplete', () => { if (i < signature.params.length) { const canHaveMoreArgs = i + 1 < (signature.minParams ?? 0) || - signature.params.filter(({ optional }, j) => !optional && j > i).length > i; + signature.params.filter(({ optional }, j) => !optional && j > i).length > 0; const allPossibleParamTypes = Array.from( new Set(fn.signatures.map((s) => s.params[i].type)) diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts index eb40fcec7c54b..6c25afe41f848 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts @@ -595,8 +595,9 @@ async function getExpressionSuggestionsByType( getFieldsByType, { functions: canHaveAssignments, - fields: true, + fields: !argDef.constantOnly, variables: anyVariables, + literals: argDef.constantOnly, }, { ignoreFields: isNewExpression @@ -646,6 +647,7 @@ async function getExpressionSuggestionsByType( functions: true, fields: false, variables: nodeArg ? undefined : anyVariables, + literals: argDef.constantOnly, } )) ); @@ -980,10 +982,12 @@ async function getFieldsOrFunctionsSuggestions( functions, fields, variables, + literals = false, }: { functions: boolean; fields: boolean; variables?: Map; + literals?: boolean; }, { ignoreFn = [], @@ -1033,7 +1037,7 @@ async function getFieldsOrFunctionsSuggestions( variables ? pushItUpInTheList(buildVariablesDefinitions(filteredVariablesByType), functions) : [], - getCompatibleLiterals(commandName, types) + literals ? getCompatibleLiterals(commandName, types) : [] ); return suggestions; @@ -1121,10 +1125,28 @@ async function getFunctionArgsSuggestions( ); } - const supportedFieldTypes = fnDefinition.signatures + const existingTypes = node.args + .map((nodeArg) => + extractFinalTypeFromArg(nodeArg, { + fields: fieldsMap, + variables: variablesExcludingCurrentCommandOnes, + }) + ) + .filter(nonNullable); + + const validSignatures = fnDefinition.signatures + // if existing arguments are preset already, use them to filter out incompatible signatures + .filter((signature) => { + if (existingTypes.length) { + return existingTypes.every((type, index) => signature.params[index].type === type); + } + return true; + }); + + const supportedFieldTypes = validSignatures .flatMap((signature) => { if (signature.params.length > argIndex) { - return signature.params[argIndex].constantOnly ? '' : signature.params[argIndex].type; + return signature.params[argIndex].type; } if (signature.minParams) { return signature.params[signature.params.length - 1].type; @@ -1133,6 +1155,10 @@ async function getFunctionArgsSuggestions( }) .filter(nonNullable); + const shouldBeConstant = validSignatures.some( + ({ params }) => params[argIndex]?.constantOnly || /_literal$/.test(params[argIndex]?.type) + ); + // ... | EVAL fn( ) // ... | EVAL fn( field, ) suggestions.push( @@ -1142,9 +1168,11 @@ async function getFunctionArgsSuggestions( option?.name, getFieldsByType, { - functions: true, - fields: true, + // @TODO: improve this to inherit the constant flag from the outer function + functions: !shouldBeConstant, + fields: !shouldBeConstant, variables: variablesExcludingCurrentCommandOnes, + literals: shouldBeConstant, }, // do not repropose the same function as arg // i.e. avoid cases like abs(abs(abs(...))) with suggestions @@ -1156,8 +1184,9 @@ async function getFunctionArgsSuggestions( } const hasMoreMandatoryArgs = - refSignature.params.filter(({ optional }, index) => !optional && index > argIndex).length > - argIndex || + (refSignature.params.length >= argIndex && + refSignature.params.filter(({ optional }, index) => !optional && index > argIndex).length > + 0) || ('minParams' in refSignature && refSignature.minParams ? refSignature.minParams - 1 > argIndex : false); @@ -1177,6 +1206,7 @@ async function getFunctionArgsSuggestions( functions: false, fields: false, variables: variablesExcludingCurrentCommandOnes, + literals: true, } )) ); diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts index 2818634c58188..cc81ea9a9ae53 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts @@ -165,13 +165,18 @@ export const buildConstantsDefinitions = ( sortText: 'A', })); -export const buildValueDefinitions = (values: string[]): SuggestionRawDefinition[] => +export const buildValueDefinitions = ( + values: string[], + detail?: string +): SuggestionRawDefinition[] => values.map((value) => ({ label: `"${value}"`, text: `"${value}"`, - detail: i18n.translate('kbn-esql-validation-autocomplete.esql.autocomplete.valueDefinition', { - defaultMessage: 'Literal value', - }), + detail: + detail ?? + i18n.translate('kbn-esql-validation-autocomplete.esql.autocomplete.valueDefinition', { + defaultMessage: 'Literal value', + }), kind: 'Value', })); @@ -289,9 +294,11 @@ function getUnitDuration(unit: number = 1) { export function getCompatibleLiterals(commandName: string, types: string[], names?: string[]) { const suggestions: SuggestionRawDefinition[] = []; - if (types.includes('number') && commandName === 'limit') { - // suggest 10/50/100 - suggestions.push(...buildConstantsDefinitions(['10', '100', '1000'], '')); + if (types.includes('number')) { + if (commandName === 'limit') { + // suggest 10/100/1000 for limit + suggestions.push(...buildConstantsDefinitions(['10', '100', '1000'], '')); + } } if (types.includes('time_literal')) { // filter plural for now and suggest only unit + singular From 76931e472210c29354f2477e708fa90254480fec Mon Sep 17 00:00:00 2001 From: jennypavlova Date: Mon, 22 Apr 2024 12:42:20 +0200 Subject: [PATCH 013/183] [Infra] Use asset details locators in the dashboards tab (#180933) Closes #180202 ## Summary This PR adds asset details locators in the dashboards tab. ## Testing - Create 2 dashboards: the second one should link to the first one (using links - the second one should open the Dashboard in a new tab) Example: image - Go to the Dashboard tab inside the single host flyout - https://github.com/elastic/kibana/assets/14139027/bb668e7d-2751-4e22-a9b8-236b26313d72 - Go to the Dashboard tab inside the asset details full-page view: - https://github.com/elastic/kibana/assets/14139027/77f62e5d-45fc-4f4e-85b5-d4a1b03f76f4 - After navigating the correct dashboard should be shown and the time range should be the same --- .../tabs/dashboards/dashboards.tsx | 52 ++++++++++++++++++- .../observability_shared/public/index.ts | 2 + .../infra/asset_details_flyout_locator.ts | 2 +- .../locators/infra/asset_details_locator.ts | 2 +- 4 files changed, 54 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx index 5ca216a5734c9..51a4d9fe5976e 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useCallback, useEffect, useState, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { @@ -25,6 +25,14 @@ import { } from '@kbn/dashboard-plugin/public'; import type { DashboardItem } from '@kbn/dashboard-plugin/common/content_management'; +import type { SerializableRecord } from '@kbn/utility-types'; +import { + ASSET_DETAILS_FLYOUT_LOCATOR_ID, + ASSET_DETAILS_LOCATOR_ID, +} from '@kbn/observability-shared-plugin/public'; +import { useLocation } from 'react-router-dom'; +import { decode } from '@kbn/rison'; +import { useKibanaContextForPlugin } from '../../../../hooks/use_kibana'; import { buildAssetIdFilter } from '../../../../utils/filters/build'; import type { InfraSavedCustomDashboard, @@ -45,7 +53,11 @@ import { FilterExplanationCallout } from './filter_explanation_callout'; export function Dashboards() { const { dateRange } = useDatePickerContext(); - const { asset } = useAssetDetailsRenderPropsContext(); + const { asset, renderMode } = useAssetDetailsRenderPropsContext(); + const location = useLocation(); + const { + services: { share }, + } = useKibanaContextForPlugin(); const [dashboard, setDashboard] = useState(); const [customDashboards, setCustomDashboards] = useState([]); const [currentDashboard, setCurrentDashboard] = useState(); @@ -120,6 +132,41 @@ export function Dashboards() { asset.type, ]); + const getLocatorParams = useCallback( + (params, isFlyoutView) => { + const searchParams = new URLSearchParams(location.search); + const tableProperties = searchParams.get('tableProperties'); + const flyoutParams = + isFlyoutView && tableProperties ? { tableProperties: decode(tableProperties) } : {}; + + return { + assetDetails: { ...urlState, dashboardId: params.dashboardId }, + assetType: asset.type, + assetId: asset.id, + ...flyoutParams, + }; + }, + [asset.id, asset.type, location.search, urlState] + ); + + const locator = useMemo(() => { + const isFlyoutView = renderMode.mode === 'flyout'; + + const baseLocator = share.url.locators.get( + isFlyoutView ? ASSET_DETAILS_FLYOUT_LOCATOR_ID : ASSET_DETAILS_LOCATOR_ID + ); + + if (!baseLocator) return; + + return { + ...baseLocator, + getRedirectUrl: (params: SerializableRecord) => + baseLocator.getRedirectUrl(getLocatorParams(params, isFlyoutView)), + navigate: (params: SerializableRecord) => + baseLocator.navigate(getLocatorParams(params, isFlyoutView)), + }; + }, [renderMode.mode, share.url.locators, getLocatorParams]); + if (loading || status === FETCH_STATUS.LOADING) { return ( @@ -198,6 +245,7 @@ export function Dashboards() { savedObjectId={urlState?.dashboardId} getCreationOptions={getCreationOptions} ref={setDashboard} + locator={locator} /> )}
diff --git a/x-pack/plugins/observability_solution/observability_shared/public/index.ts b/x-pack/plugins/observability_solution/observability_shared/public/index.ts index b1d8f97425e3f..15a977a6c236b 100644 --- a/x-pack/plugins/observability_solution/observability_shared/public/index.ts +++ b/x-pack/plugins/observability_solution/observability_shared/public/index.ts @@ -102,3 +102,5 @@ export { } from './components/feature_feedback_button/feature_feedback_button'; export { BottomBarActions } from './components/bottom_bar_actions/bottom_bar_actions'; export { FieldValueSelection, FieldValueSuggestions } from './components'; +export { ASSET_DETAILS_FLYOUT_LOCATOR_ID } from './locators/infra/asset_details_flyout_locator'; +export { ASSET_DETAILS_LOCATOR_ID } from './locators/infra/asset_details_locator'; diff --git a/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_flyout_locator.ts b/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_flyout_locator.ts index e9c3b23537455..0bc499f6bf508 100644 --- a/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_flyout_locator.ts +++ b/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_flyout_locator.ts @@ -32,7 +32,7 @@ export interface AssetDetailsFlyoutLocatorParams extends SerializableRecord { }; } -const ASSET_DETAILS_FLYOUT_LOCATOR_ID = 'ASSET_DETAILS_FLYOUT_LOCATOR'; +export const ASSET_DETAILS_FLYOUT_LOCATOR_ID = 'ASSET_DETAILS_FLYOUT_LOCATOR'; export class AssetDetailsFlyoutLocatorDefinition implements LocatorDefinition diff --git a/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts b/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts index 7a0d727b8d4ee..b89c616bfb520 100644 --- a/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts +++ b/x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts @@ -30,7 +30,7 @@ export interface AssetDetailsLocatorParams extends SerializableRecord { }; } -const ASSET_DETAILS_LOCATOR_ID = 'ASSET_DETAILS_LOCATOR'; +export const ASSET_DETAILS_LOCATOR_ID = 'ASSET_DETAILS_LOCATOR'; export class AssetDetailsLocatorDefinition implements LocatorDefinition { public readonly id = ASSET_DETAILS_LOCATOR_ID; From 94fe888c993d7ac6fc9cfae13d8a12aa5231f297 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 22 Apr 2024 06:42:52 -0400 Subject: [PATCH 014/183] [Observability Onboarding] Include virtual cards in searchable list (#180952) ## Summary Resolves #180822. Adds a new prop to the integrations list. When specified, the list will join the provided custom cards with the integrations cards from the API, so as the user is searching if a custom card matches their query they will also see it in the list at the bottom of the onboarding flow. ## Testing For each onboarding question that includes a Quickstart card, check that you're able to search for it in the search list at the bottom of the page. --------- Co-authored-by: Joe Reuter Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../onboarding_flow_form.tsx | 2 + .../application/packages_list/index.tsx | 8 +- .../use_integration_card_list.ts | 89 +++++++++++++------ .../public/application/packages_list/utils.ts | 17 ++++ 4 files changed, 88 insertions(+), 28 deletions(-) create mode 100644 x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx index 605532bcf8d5b..5a10e507a6851 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx @@ -164,6 +164,8 @@ export const OnboardingFlowForm: FunctionComponent = () => { searchQuery={integrationSearch} setSearchQuery={setIntegrationSearch} ref={packageListSearchBarRef} + customCards={customCards?.filter(({ name, type }) => type === 'generated')} + joinCardLists /> )} diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx index 6fa0ba354a28a..7930d4e6a699c 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx @@ -32,6 +32,10 @@ interface Props { searchBarRef?: React.Ref; searchQuery?: string; setSearchQuery?: React.Dispatch>; + /** + * When enabled, custom and integration cards are joined into a single list. + */ + joinCardLists?: boolean; } type WrapperProps = Props & { @@ -48,6 +52,7 @@ const PackageListGridWrapper = ({ searchQuery, setSearchQuery, customCards, + joinCardLists = false, }: WrapperProps) => { const [isInitialHidden, setIsInitialHidden] = useState(showSearchBar); const customMargin = useCustomMargin(); @@ -58,7 +63,8 @@ const PackageListGridWrapper = ({ const list: IntegrationCardItem[] = useIntegrationCardList( filteredCards, selectedCategory, - customCards + customCards, + joinCardLists ); React.useEffect(() => { diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts index cf0ff8f005a50..8d5a275a4523b 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts @@ -8,13 +8,7 @@ import { useMemo } from 'react'; import { IntegrationCardItem } from '@kbn/fleet-plugin/public'; import { CustomCard } from './types'; - -const QUICKSTART_FLOWS = ['kubernetes', 'nginx', 'system-logs-generated']; - -const toCustomCard = (card: IntegrationCardItem) => ({ - ...card, - isQuickstart: QUICKSTART_FLOWS.includes(card.name), -}); +import { toCustomCard } from './utils'; function extractFeaturedCards(filteredCards: IntegrationCardItem[], featuredCardNames?: string[]) { const featuredCards: Record = {}; @@ -26,30 +20,71 @@ function extractFeaturedCards(filteredCards: IntegrationCardItem[], featuredCard return featuredCards; } +function formatCustomCards( + customCards: CustomCard[], + featuredCards: Record +) { + const cards: IntegrationCardItem[] = []; + for (const card of customCards) { + if (card.type === 'featured' && !!featuredCards[card.name]) { + cards.push(toCustomCard(featuredCards[card.name]!)); + } else if (card.type === 'generated') { + cards.push(toCustomCard(card)); + } + } + return cards; +} + +function useFilteredCards( + integrationsList: IntegrationCardItem[], + selectedCategory: string, + customCards?: CustomCard[] +) { + return useMemo(() => { + const integrationCards = integrationsList + .filter((card) => card.categories.includes(selectedCategory)) + .map(toCustomCard); + + if (!customCards) { + return { featuredCards: {}, integrationCards }; + } + + return { + featuredCards: extractFeaturedCards( + integrationsList, + customCards.filter((c) => c.type === 'featured').map((c) => c.name) + ), + integrationCards, + }; + }, [integrationsList, customCards, selectedCategory]); +} + +/** + * Formats the cards to display on the integration list. + * @param integrationsList the list of cards from the integrations API. + * @param selectedCategory the card category to filter by. + * @param customCards any virtual or featured cards. + * @param fullList when true all integration cards are included. + * @returns the list of cards to display. + */ export function useIntegrationCardList( - filteredCards: IntegrationCardItem[], + integrationsList: IntegrationCardItem[], selectedCategory = 'observability', - customCards?: CustomCard[] + customCards?: CustomCard[], + fullList = false ): IntegrationCardItem[] { - const featuredCards = useMemo(() => { - if (!customCards) return {}; - return extractFeaturedCards( - filteredCards, - customCards.filter((c) => c.type === 'featured').map((c) => c.name) - ); - }, [filteredCards, customCards]); + const { featuredCards, integrationCards } = useFilteredCards( + integrationsList, + selectedCategory, + customCards + ); if (customCards && customCards.length > 0) { - return customCards - .map((c) => { - if (c.type === 'featured') { - return !!featuredCards[c.name] ? toCustomCard(featuredCards[c.name]!) : null; - } - return toCustomCard(c); - }) - .filter((c) => c) as IntegrationCardItem[]; + const formattedCustomCards = formatCustomCards(customCards, featuredCards); + if (fullList) { + return [...formattedCustomCards, ...integrationCards] as IntegrationCardItem[]; + } + return formattedCustomCards; } - return filteredCards - .filter((card) => card.categories.includes(selectedCategory)) - .map(toCustomCard); + return integrationCards; } diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts new file mode 100644 index 0000000000000..014aa4314f104 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts @@ -0,0 +1,17 @@ +/* + * 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 { IntegrationCardItem } from '@kbn/fleet-plugin/public'; + +export const QUICKSTART_FLOWS = ['kubernetes', 'nginx', 'system-logs-generated']; + +export const toCustomCard = (card: IntegrationCardItem) => ({ + ...card, + isQuickstart: QUICKSTART_FLOWS.includes(card.name), +}); + +export const isQuickstart = (cardName: string) => QUICKSTART_FLOWS.includes(cardName); From 8a992997e9f942b39182a087df44604dc69957cf Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Mon, 22 Apr 2024 13:44:19 +0300 Subject: [PATCH 015/183] [Cases] Fix flaky functional tests (#181230) ## Summary I ran the flaky test runner multiple times. I did not find any good reason why some of the tests were flaky in the first place. Flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5720, https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5721, https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5727 Fixes: https://github.com/elastic/kibana/issues/179016, https://github.com/elastic/kibana/issues/178991, https://github.com/elastic/kibana/issues/176716, https://github.com/elastic/kibana/issues/178690 ### Checklist Delete any items that are not applicable to this PR. - [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 - [x] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed ### For maintainers - [x] 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) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../all_cases/multi_select_filter.tsx | 4 ++ x-pack/test/functional/services/cases/list.ts | 26 +++++------ .../apps/cases/group2/attachment_framework.ts | 44 ++++++++++--------- .../apps/cases/group2/list_view.ts | 9 ++-- 4 files changed, 44 insertions(+), 39 deletions(-) diff --git a/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.tsx b/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.tsx index 080fe6df352c7..c8cc85bde823e 100644 --- a/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.tsx @@ -155,6 +155,10 @@ export const MultiSelectFilter = ({ closePopover={() => setIsPopoverOpen(false)} panelPaddingSize="none" repositionOnScroll + panelProps={{ + 'data-test-subj': `options-filter-popover-panel-${id}`, + }} + data-test-subj={`options-filter-popover-${id}`} > {isInvalid && ( <> diff --git a/x-pack/test/functional/services/cases/list.ts b/x-pack/test/functional/services/cases/list.ts index bce45cb13280b..b449b6f18438a 100644 --- a/x-pack/test/functional/services/cases/list.ts +++ b/x-pack/test/functional/services/cases/list.ts @@ -179,10 +179,6 @@ export function CasesTableServiceProvider( await testSubjects.click(`options-filter-popover-item-${status}`); // to close the popup await testSubjects.click('options-filter-popover-button-status'); - - await testSubjects.missingOrFail(`options-filter-popover-item-${status}`, { - timeout: 5000, - }); }, async filterBySeverity(severity: CaseSeverity) { @@ -202,18 +198,22 @@ export function CasesTableServiceProvider( await casesCommon.selectFirstRowInAssigneesPopover(); }, - async filterByOwner( - owner: string, - options: { popupAlreadyOpen: boolean } = { popupAlreadyOpen: false } - ) { - if (!options.popupAlreadyOpen) { - await common.clickAndValidate( - 'options-filter-popover-button-owner', - `options-filter-popover-item-${owner}` - ); + async filterByOwner(owner: string) { + const isAlreadyOpen = await testSubjects.exists('options-filter-popover-panel-owner'); + + if (isAlreadyOpen) { + await testSubjects.click(`options-filter-popover-item-${owner}`); + await header.waitUntilLoadingHasFinished(); + return; } + await retry.waitFor(`filterByOwner popover opened`, async () => { + await testSubjects.click('options-filter-popover-button-owner'); + return await testSubjects.exists('options-filter-popover-panel-owner'); + }); + await testSubjects.click(`options-filter-popover-item-${owner}`); + await header.waitUntilLoadingHasFinished(); }, async refreshTable() { diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts index 8909d8cea2ec5..c45df81316e81 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts @@ -62,6 +62,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const lens = getPageObject('lens'); const listingTable = getService('listingTable'); const toasts = getService('toasts'); + const browser = getService('browser'); const createAttachmentAndNavigate = async (attachment: AttachmentRequest) => { const caseData = await cases.api.createCase({ @@ -262,8 +263,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); }); - // FLAKY: https://github.com/elastic/kibana/issues/178690 - describe.skip('Modal', () => { + describe('Modal', () => { const createdCases = new Map(); const openModal = async () => { @@ -273,6 +273,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const closeModal = async () => { await find.clickByCssSelector('[data-test-subj="all-cases-modal"] > button'); + await testSubjects.missingOrFail('all-cases-modal'); }; before(async () => { @@ -282,6 +283,10 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { } }); + beforeEach(async () => { + await browser.refresh(); + }); + after(async () => { await deleteAllCaseItems(es); }); @@ -292,29 +297,22 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { await testSubjects.existOrFail('options-filter-popover-button-owner'); for (const [, currentCaseId] of createdCases.entries()) { - await testSubjects.existOrFail(`cases-table-row-${currentCaseId}`); + await cases.casesTable.getCaseById(currentCaseId); } await closeModal(); }); - it('filters correctly', async () => { + it('filters correctly with owner cases', async () => { for (const [owner, currentCaseId] of createdCases.entries()) { await openModal(); - await cases.casesTable.filterByOwner(owner); - await cases.casesTable.waitForTableToFinishLoading(); - await testSubjects.existOrFail(`cases-table-row-${currentCaseId}`); - + await cases.casesTable.getCaseById(currentCaseId); /** - * We ensure that the other cases are not shown + * The select button matched the query of the + * [data-test-subj*="cases-table-row-" query */ - for (const otherCaseId of createdCases.values()) { - if (otherCaseId !== currentCaseId) { - await testSubjects.missingOrFail(`cases-table-row-${otherCaseId}`); - } - } - + await cases.casesTable.validateCasesTableHasNthRows(2); await closeModal(); } }); @@ -322,16 +320,22 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { it('filters with multiple selection', async () => { await openModal(); - let popupAlreadyOpen = false; for (const [owner] of createdCases.entries()) { - await cases.casesTable.filterByOwner(owner, { popupAlreadyOpen }); - popupAlreadyOpen = true; + await cases.casesTable.filterByOwner(owner); } + await cases.casesTable.waitForTableToFinishLoading(); + /** + * The select button matched the query of the + * [data-test-subj*="cases-table-row-" query + */ + await cases.casesTable.validateCasesTableHasNthRows(6); + for (const caseId of createdCases.values()) { - await testSubjects.existOrFail(`cases-table-row-${caseId}`); + await cases.casesTable.getCaseById(caseId); } + await closeModal(); }); @@ -340,7 +344,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { await openModal(); await cases.casesTable.waitForTableToFinishLoading(); - await testSubjects.existOrFail(`cases-table-row-${currentCaseId}`); + await cases.casesTable.getCaseById(currentCaseId); await testSubjects.click(`cases-table-row-select-${currentCaseId}`); await cases.common.expectToasterToContain('has been updated'); diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts index c6704ea2d3466..f1b4e4ea8485a 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts @@ -284,8 +284,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); }); - // FLAKY: https://github.com/elastic/kibana/issues/178991 - describe.skip('filtering', () => { + describe('filtering', () => { const caseTitle = 'matchme'; let caseIds: string[] = []; const profiles: UserProfile[] = []; @@ -753,8 +752,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(await testSubjects.exists('all-cases-clear-filters-link-icon')).to.be(false); }); - // FLAKY: https://github.com/elastic/kibana/issues/176716 - describe.skip('assignees filtering', () => { + describe('assignees filtering', () => { it('filters cases by the first cases all user assignee', async () => { await cases.casesTable.filterByAssignee('all'); await cases.casesTable.validateCasesTableHasNthRows(1); @@ -796,8 +794,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); }); - // FLAKY: https://github.com/elastic/kibana/issues/179016 - describe.skip('severity filtering', () => { + describe('severity filtering', () => { before(async () => { await cases.navigation.navigateToApp(); await cases.api.createCase({ severity: CaseSeverity.LOW }); From d7a2fe2c83d622f5f7dd52b146696b78712567e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?= Date: Mon, 22 Apr 2024 12:46:15 +0200 Subject: [PATCH 016/183] [Search] Fix connectors guided onboarding (#181173) ## Summary Fixes Guided onboarding add data step for connectors. ### Checklist Delete any items that are not applicable to this PR. - [ ] [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: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../components/connector_detail/connector_detail.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx index 4c3b1deceff2b..be3f7964fb370 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_detail.tsx @@ -58,9 +58,21 @@ export const ConnectorDetail: React.FC = () => { }>(); const { + guidedOnboarding, productFeatures: { hasDefaultIngestPipeline }, } = useValues(KibanaLogic); + useEffect(() => { + const subscription = guidedOnboarding?.guidedOnboardingApi + ?.isGuideStepActive$('databaseSearch', 'add_data') + .subscribe((isStepActive) => { + if (isStepActive && index?.count) { + guidedOnboarding.guidedOnboardingApi?.completeGuideStep('databaseSearch', 'add_data'); + } + }); + return () => subscription?.unsubscribe(); + }, [guidedOnboarding, index?.count]); + const ALL_INDICES_TABS = [ { content: , From 6299736dbcb25756a44aa1013a4d218c62507e5c Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 22 Apr 2024 06:47:28 -0400 Subject: [PATCH 017/183] [Observability Onboarding] Remove temporary onboarding flow nav (#181069) ## Summary Resolves #180823. We had temporary nav in lieu of the integrations list being merged. We no longer need the temp nav so this removes it. Co-authored-by: Joe Reuter --- .../experimental_onboarding_flow.tsx | 43 +------------------ 1 file changed, 1 insertion(+), 42 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/experimental_onboarding_flow.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/experimental_onboarding_flow.tsx index 1e6c0b48061c4..265e1cf810476 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/experimental_onboarding_flow.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/experimental_onboarding_flow.tsx @@ -8,18 +8,9 @@ import { i18n } from '@kbn/i18n'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import React from 'react'; -import { useHistory } from 'react-router-dom'; import { Route, Routes } from '@kbn/shared-ux-router'; -import { reactRouterNavigate } from '@kbn/kibana-react-plugin/public'; import { useNavigate, useLocation } from 'react-router-dom-v5-compat'; -import { - EuiButton, - EuiButtonEmpty, - EuiFlexGroup, - EuiFlexItem, - EuiPageTemplate, - EuiSpacer, -} from '@elastic/eui'; +import { EuiButtonEmpty, EuiPageTemplate, EuiSpacer } from '@elastic/eui'; import { css } from '@emotion/react'; import backgroundImageUrl from './header/background.svg'; import { Footer } from './footer/footer'; @@ -31,40 +22,8 @@ import { CustomLogsPanel } from './quickstart_flows/custom_logs'; const queryClient = new QueryClient(); export function ExperimentalOnboardingFlow() { - const history = useHistory(); - const location = useLocation(); - return ( - {/* Test buttons to be removed once integrations selector has been implemented */} - - - - - {i18n.translate( - 'xpack.observability_onboarding.experimentalOnboardingFlow.systemLogsButtonLabel', - { defaultMessage: 'System Logs' } - )} - - - - - {i18n.translate( - 'xpack.observability_onboarding.experimentalOnboardingFlow.customLogsButtonLabel', - { defaultMessage: 'Custom Logs' } - )} - - - - Date: Mon, 22 Apr 2024 13:39:47 +0200 Subject: [PATCH 018/183] fix otel service detection (#180574) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary With newer versions of the Java agent (tested with 2.2.0 here), the `agent.name` field now contains multiple parts and we should consider the prefix and not the whole string to properly detect if it's an otel agent or not. Fixing this is also a prerequisite for https://github.com/elastic/kibana/issues/174445 as the metric charts are not properly displayed for otel agents (and the java one in particular). Fixes https://github.com/elastic/kibana/issues/180444 #### Without the fix ![Screenshot from 2024-04-11 12-01-55](https://github.com/elastic/kibana/assets/763082/986a6728-1d84-48ed-ba7e-9236f258545b) #### After fixing it ![image](https://github.com/elastic/kibana/assets/763082/4726427d-6d18-4f9b-a389-f860924f512c) ### Checklist Delete any items that are not applicable to this PR. I'm really not a typescript nor kibana expert, so I'm pretty sure there are better and cleaner ways to implement this. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Cauê Marcondes <55978943+cauemarcondes@users.noreply.github.com> --- .../kbn-elastic-agent-utils/src/agent_guards.test.ts | 6 ++++++ packages/kbn-elastic-agent-utils/src/agent_guards.ts | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/kbn-elastic-agent-utils/src/agent_guards.test.ts b/packages/kbn-elastic-agent-utils/src/agent_guards.test.ts index 0de2ea225ce81..aa55aa94b16ca 100644 --- a/packages/kbn-elastic-agent-utils/src/agent_guards.test.ts +++ b/packages/kbn-elastic-agent-utils/src/agent_guards.test.ts @@ -23,11 +23,17 @@ import { describe('Agents guards', () => { it('isOpenTelemetryAgentName should guard if the passed agent is an OpenTelemetry one.', () => { expect(isOpenTelemetryAgentName('otlp')).toBe(true); + expect(isOpenTelemetryAgentName('opentelemetry/java')).toBe(true); + expect(isOpenTelemetryAgentName('opentelemetry/java/opentelemetry-java-instrumentation')).toBe( + true + ); expect(isOpenTelemetryAgentName('not-an-agent')).toBe(false); }); it('isJavaAgentName should guard if the passed agent is an Java one.', () => { expect(isJavaAgentName('java')).toBe(true); + expect(isJavaAgentName('opentelemetry/java')).toBe(true); + expect(isJavaAgentName('opentelemetry/java/opentelemetry-java-instrumentation')).toBe(true); expect(isJavaAgentName('not-an-agent')).toBe(false); }); diff --git a/packages/kbn-elastic-agent-utils/src/agent_guards.ts b/packages/kbn-elastic-agent-utils/src/agent_guards.ts index 6997cbd81c42c..43cf4cce89f4a 100644 --- a/packages/kbn-elastic-agent-utils/src/agent_guards.ts +++ b/packages/kbn-elastic-agent-utils/src/agent_guards.ts @@ -16,11 +16,17 @@ import type { } from './agent_names'; export function isOpenTelemetryAgentName(agentName: string): agentName is OpenTelemetryAgentName { - return OPEN_TELEMETRY_AGENT_NAMES.includes(agentName as OpenTelemetryAgentName); + return ( + agentName?.startsWith('opentelemetry/') || + OPEN_TELEMETRY_AGENT_NAMES.includes(agentName as OpenTelemetryAgentName) + ); } export function isJavaAgentName(agentName?: string): agentName is JavaAgentName { - return JAVA_AGENT_NAMES.includes(agentName! as JavaAgentName); + return ( + agentName?.startsWith('opentelemetry/java') || + JAVA_AGENT_NAMES.includes(agentName! as JavaAgentName) + ); } export function isRumAgentName(agentName?: string): agentName is RumAgentName { From 753e8c7917105b1ae089fdffb99ae99c115fdeff Mon Sep 17 00:00:00 2001 From: Vadim Kibana <82822460+vadimkibana@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:44:28 +0200 Subject: [PATCH 019/183] Add "Give feedback" button (#180942) ## Summary Closes https://github.com/elastic/kibana/issues/180825 ![image](https://github.com/elastic/kibana/assets/82822460/12a5a362-28c3-4837-b7ca-d33640333ac7) ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [x] 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) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/serverless/public/plugin.tsx | 24 +++++++++++++++++++++ x-pack/plugins/serverless/tsconfig.json | 1 + 2 files changed, 25 insertions(+) diff --git a/x-pack/plugins/serverless/public/plugin.tsx b/x-pack/plugins/serverless/public/plugin.tsx index 451752b28168c..ee2b32e4d97a5 100644 --- a/x-pack/plugins/serverless/public/plugin.tsx +++ b/x-pack/plugins/serverless/public/plugin.tsx @@ -5,8 +5,11 @@ * 2.0. */ +import { EuiButton } from '@elastic/eui'; import { InternalChromeStart } from '@kbn/core-chrome-browser-internal'; import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/public'; +import { i18n } from '@kbn/i18n'; +import { toMountPoint } from '@kbn/react-kibana-mount'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; import { ProjectSwitcher, ProjectSwitcherKibanaProvider } from '@kbn/serverless-project-switcher'; import { ProjectType } from '@kbn/serverless-types'; @@ -77,6 +80,27 @@ export class ServerlessPlugin const activeNavigationNodes$ = project.getActiveNavigationNodes$(); const navigationTreeUi$ = project.getNavigationTreeUi$(); + core.chrome.navControls.registerRight({ + order: 1, + mount: toMountPoint( + + + {i18n.translate('xpack.serverless.header.giveFeedbackBtn.label', { + defaultMessage: 'Give feedback', + })} + + , + { ...core } + ), + }); + return { setSideNavComponentDeprecated: (sideNavigationComponent) => project.setSideNavComponent(sideNavigationComponent), diff --git a/x-pack/plugins/serverless/tsconfig.json b/x-pack/plugins/serverless/tsconfig.json index 48931f2a37936..ce60d39bef0f0 100644 --- a/x-pack/plugins/serverless/tsconfig.json +++ b/x-pack/plugins/serverless/tsconfig.json @@ -26,6 +26,7 @@ "@kbn/shared-ux-chrome-navigation", "@kbn/i18n", "@kbn/management-cards-navigation", + "@kbn/react-kibana-mount", "@kbn/react-kibana-context-render", ] } From e18d19fafcee86e8858ca3ec8023ba43418c31c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yulia=20=C4=8Cech?= <6585477+yuliacech@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:05:08 +0200 Subject: [PATCH 020/183] [Console] Implement documentation action button (#181057) ## Summary Closes https://github.com/elastic/kibana/issues/180209 This PR implements the "view documentation" button in the new Monaco editor in Console. The code re-use the existing autocomplete functionality and gets the documentation link for the current request from autocomplete definitions. The current request is the 1st request of the user selection in the editor. The link is opened in the new tab and if no link is available or the request is unknown, then nothing happens (existing functionality, we might want to hide the button in that case in a [follow up work](https://github.com/elastic/kibana/issues/180911)) ### Screen recording https://github.com/elastic/kibana/assets/6585477/56ea016c-02b6-4134-97b7-914204557d61 ### How to test 1. Add `console.dev.enableMonaco: true` to the `config/kibana.dev.yml` file 2. Start Kibana and ES locally 3. Navigate to the Dev tools Console and try using the "view documentation" button for various requests --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../editor/monaco/monaco_editor.tsx | 9 ++-- .../monaco_editor_actions_provider.test.ts | 46 +++++++++++++++++++ .../monaco/monaco_editor_actions_provider.ts | 30 ++++++++++++ .../containers/editor/monaco/utils.test.ts | 45 ++++++++++++++++++ .../containers/editor/monaco/utils.ts | 31 +++++++++++++ 5 files changed, 158 insertions(+), 3 deletions(-) diff --git a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx index a929fa4148f54..c3b9b1c8dee1c 100644 --- a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx +++ b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx @@ -37,6 +37,7 @@ export const MonacoEditor = ({ initialTextValue }: EditorProps) => { settings: settingsService, autocompleteInfo, }, + docLinkVersion, } = useServicesContext(); const { toasts } = notifications; const { settings } = useEditorReadContext(); @@ -53,6 +54,10 @@ export const MonacoEditor = ({ initialTextValue }: EditorProps) => { return curl ?? ''; }, [esHostService]); + const getDocumenationLink = useCallback(async () => { + return actionsProvider.current!.getDocumentationLink(docLinkVersion); + }, [docLinkVersion]); + const sendRequestsCallback = useCallback(async () => { await actionsProvider.current?.sendRequests(toasts, dispatch, trackUiMetric, http); }, [dispatch, http, toasts, trackUiMetric]); @@ -103,9 +108,7 @@ export const MonacoEditor = ({ initialTextValue }: EditorProps) => { { - return Promise.resolve(null); - }} + getDocumentation={getDocumenationLink} autoIndent={() => {}} notifications={notifications} /> diff --git a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.test.ts b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.test.ts index ee2be44ec812e..94f6f962e6f41 100644 --- a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.test.ts +++ b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.test.ts @@ -10,6 +10,12 @@ * Mock kbn/monaco to provide the console parser code directly without a web worker */ const mockGetParsedRequests = jest.fn(); + +/* + * Mock the function "populateContext" that accesses the autocomplete definitions + */ +const mockPopulateContext = jest.fn(); + jest.mock('@kbn/monaco', () => { const original = jest.requireActual('@kbn/monaco'); return { @@ -33,6 +39,14 @@ jest.mock('../../../../services', () => { }; }); +jest.mock('../../../../lib/autocomplete/engine', () => { + return { + populateContext: (...args: any) => { + mockPopulateContext(args); + }, + }; +}); + import { MonacoEditorActionsProvider } from './monaco_editor_actions_provider'; import { monaco } from '@kbn/monaco'; @@ -101,4 +115,36 @@ describe('Editor actions provider', () => { expect(curl).toBe('curl -XGET "http://localhost/_search" -H "kbn-xsrf: reporting"'); }); }); + + describe('getDocumentationLink', () => { + const docLinkVersion = '8.13'; + const docsLink = 'http://elastic.co/_search'; + // mock the populateContext function that finds the correct autocomplete endpoint object and puts it into the context object + mockPopulateContext.mockImplementation((...args) => { + const context = args[0][1]; + context.endpoint = { + documentation: docsLink, + }; + }); + it('returns null if no requests', async () => { + mockGetParsedRequests.mockResolvedValue([]); + const link = await editorActionsProvider.getDocumentationLink(docLinkVersion); + expect(link).toBe(null); + }); + + it('returns null if there is a request but not in the selection range', async () => { + editor.getSelection.mockReturnValue({ + // the request is on line 1, the user selected line 2 + startLineNumber: 2, + endLineNumber: 2, + } as unknown as monaco.Selection); + const link = await editorActionsProvider.getDocumentationLink(docLinkVersion); + expect(link).toBe(null); + }); + + it('returns the correct link if there is a request in the selection range', async () => { + const link = await editorActionsProvider.getDocumentationLink(docLinkVersion); + expect(link).toBe(docsLink); + }); + }); }); diff --git a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts index af87f7fb68d24..31fc969449e84 100644 --- a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts +++ b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts @@ -17,8 +17,11 @@ import { import { IToasts } from '@kbn/core-notifications-browser'; import { i18n } from '@kbn/i18n'; import type { HttpSetup } from '@kbn/core-http-browser'; +import { AutoCompleteContext } from '../../../../lib/autocomplete/types'; +import { populateContext } from '../../../../lib/autocomplete/engine'; import { DEFAULT_VARIABLES } from '../../../../../common/constants'; import { getStorage, StorageKeys } from '../../../../services'; +import { getTopLevelUrlCompleteComponents } from '../../../../lib/kb'; import { sendRequest } from '../../../hooks/use_send_current_request/send_request'; import { MetricsTracker } from '../../../../types'; import { Actions } from '../../../stores/request'; @@ -27,6 +30,8 @@ import { replaceRequestVariables, getCurlRequest, trackSentRequests, + tokenizeRequestUrl, + getDocumentationLinkFromAutocompleteContext, } from './utils'; const selectedRequestsClass = 'console__monaco_editor__selectedRequests'; @@ -235,4 +240,29 @@ export class MonacoEditorActionsProvider { } } } + + public async getDocumentationLink(docLinkVersion: string): Promise { + const requests = await this.getRequests(); + if (requests.length < 1) { + return null; + } + const request = requests[0]; + + // get autocomplete components for the request method + const components = getTopLevelUrlCompleteComponents(request.method); + // get the url parts from the request url + const urlTokens = tokenizeRequestUrl(request.url); + + // this object will contain the information later, it needs to be initialized with some data + // similar to the old ace editor context + const context: AutoCompleteContext = { + method: request.method, + urlTokenPath: urlTokens, + }; + + // this function uses the autocomplete info and the url tokens to find the correct endpoint + populateContext(urlTokens, context, undefined, true, components); + + return getDocumentationLinkFromAutocompleteContext(context, docLinkVersion); + } } diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils.test.ts b/src/plugins/console/public/application/containers/editor/monaco/utils.test.ts index e2aa1543d8b6f..5869ec4183df7 100644 --- a/src/plugins/console/public/application/containers/editor/monaco/utils.test.ts +++ b/src/plugins/console/public/application/containers/editor/monaco/utils.test.ts @@ -8,12 +8,15 @@ import { getCurlRequest, + getDocumentationLinkFromAutocompleteContext, removeTrailingWhitespaces, replaceRequestVariables, stringifyRequest, + tokenizeRequestUrl, trackSentRequests, } from './utils'; import { MetricsTracker } from '../../../../types'; +import { AutoCompleteContext } from '../../../../lib/autocomplete/types'; describe('monaco editor utils', () => { const dataObjects = [ @@ -179,4 +182,46 @@ describe('monaco editor utils', () => { expect(mockMetricsTracker.count).toHaveBeenNthCalledWith(2, 'POST__test'); }); }); + + describe('tokenizeRequestUrl', () => { + it('returns the url if it has only 1 part', () => { + const url = '_search'; + const urlTokens = tokenizeRequestUrl(url); + expect(urlTokens).toEqual(['_search', '__url_path_end__']); + }); + + it('returns correct url tokens', () => { + const url = '_search/test'; + const urlTokens = tokenizeRequestUrl(url); + expect(urlTokens).toEqual(['_search', 'test', '__url_path_end__']); + }); + }); + + describe('getDocumentationLinkFromAutocompleteContext', () => { + const version = '8.13'; + const expectedLink = 'http://elastic.co/8.13/_search'; + it('correctly replaces {branch} with the version', () => { + const endpoint = { + documentation: 'http://elastic.co/{branch}/_search', + } as AutoCompleteContext['endpoint']; + const link = getDocumentationLinkFromAutocompleteContext({ endpoint }, version); + expect(link).toBe(expectedLink); + }); + + it('correctly replaces /master/ with the version', () => { + const endpoint = { + documentation: 'http://elastic.co/master/_search', + } as AutoCompleteContext['endpoint']; + const link = getDocumentationLinkFromAutocompleteContext({ endpoint }, version); + expect(link).toBe(expectedLink); + }); + + it('correctly replaces /current/ with the version', () => { + const endpoint = { + documentation: 'http://elastic.co/current/_search', + } as AutoCompleteContext['endpoint']; + const link = getDocumentationLinkFromAutocompleteContext({ endpoint }, version); + expect(link).toBe(expectedLink); + }); + }); }); diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils.ts b/src/plugins/console/public/application/containers/editor/monaco/utils.ts index f5725ad271fc6..3caa966547a1a 100644 --- a/src/plugins/console/public/application/containers/editor/monaco/utils.ts +++ b/src/plugins/console/public/application/containers/editor/monaco/utils.ts @@ -7,6 +7,7 @@ */ import { ParsedRequest } from '@kbn/monaco'; +import { AutoCompleteContext } from '../../../../lib/autocomplete/types'; import { constructUrl } from '../../../../lib/es'; import type { DevToolsVariable } from '../../../components'; import { EditorRequest } from './monaco_editor_actions_provider'; @@ -74,3 +75,33 @@ export const trackSentRequests = ( trackUiMetric.count(eventName); }); }; + +/* + * This function takes a request url as a string and returns it parts, + * for example '_search/test' => ['_search', 'test'] + */ +const urlPartsSeparatorRegex = /\//; +const endOfUrlToken = '__url_path_end__'; +export const tokenizeRequestUrl = (url: string): string[] => { + const parts = url.split(urlPartsSeparatorRegex); + // this special token is used to mark the end of the url + parts.push(endOfUrlToken); + return parts; +}; + +/* + * This function returns a documentation link from the autocomplete endpoint object + * and replaces the branch in the url with the current version "docLinkVersion" + */ +export const getDocumentationLinkFromAutocompleteContext = ( + { endpoint }: AutoCompleteContext, + docLinkVersion: string +): string | null => { + if (endpoint && endpoint.documentation && endpoint.documentation.indexOf('http') !== -1) { + return endpoint.documentation + .replace('/master/', `/${docLinkVersion}/`) + .replace('/current/', `/${docLinkVersion}/`) + .replace('/{branch}/', `/${docLinkVersion}/`); + } + return null; +}; From 078dd22c47d7ecea4e18b64fb302205a799febd9 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Mon, 22 Apr 2024 14:06:59 +0200 Subject: [PATCH 021/183] [ML] AIOps: Fix missing field caps filters for log rate analysis. (#181109) ## Summary Part of #172981. Field caps requests can be heavy calls in larger clusters. For all other queries for log rate analysis we were applying filters based on the time range selection. This was missing from the field caps call. The following parameters were added to improve the call: - `index_filter`: Adds a range filter to only get field caps from indices spanning the deviation time range. - `filters`: `-metadata` was added to not return fields like `_id` and esp. `_tier`. We previously had a manually check for `_tier` which is now unnecessary using this option. - `types`: Previously we fetched all field types and then filtered out the ones we don't support. This option allows us to pass in the supported fields right away and not return unsupported ones in the first place. ---- Here are examples that show how `index_filter` get applied correctly: Here the deviation selection spans only 1 month and that is reflected in the response from the field caps call: image ``` { indices: [ 'gallery-2021-11' ], fields: { ... } } ``` Now the deviation selection covers more months: image ``` { indices: [ 'gallery-2021-09', 'gallery-2021-10', 'gallery-2021-11', 'gallery-2021-12', 'gallery-2022-01' ], fields: { ... } } ``` ### 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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] 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) --- .../queries/__mocks__/field_caps_ecommerce.ts | 210 ++------ .../__mocks__/field_caps_large_arrays.ts | 21 +- .../queries/__mocks__/field_caps_pgbench.ts | 474 +++++++++++++++--- .../queries/fetch_index_info.test.ts | 100 ++++ .../queries/fetch_index_info.ts | 18 +- 5 files changed, 562 insertions(+), 261 deletions(-) diff --git a/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_ecommerce.ts b/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_ecommerce.ts index 5de9ac8d2231a..d454ca1358d99 100644 --- a/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_ecommerce.ts +++ b/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_ecommerce.ts @@ -6,228 +6,100 @@ */ export const fieldCapsEcommerceMock = { - indices: ['ft_ecommerce'], + indices: ['kibana_sample_data_ecommerce'], fields: { 'products.manufacturer': { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, - 'products.discount_amount': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, - 'products.base_unit_price': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, - type: { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - 'products.discount_percentage': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, - 'products._id.keyword': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - day_of_week_i: { - integer: { type: 'integer', metadata_field: false, searchable: true, aggregatable: true }, - }, - total_quantity: { - integer: { type: 'integer', metadata_field: false, searchable: true, aggregatable: true }, - }, - total_unique_products: { - integer: { type: 'integer', metadata_field: false, searchable: true, aggregatable: true }, - }, - taxless_total_price: { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, - 'geoip.continent_name': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - sku: { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - _version: { - _version: { type: '_version', metadata_field: true, searchable: false, aggregatable: true }, - }, - 'customer_full_name.keyword': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - 'category.keyword': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - 'products.taxless_price': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, - 'products.quantity': { - integer: { type: 'integer', metadata_field: false, searchable: true, aggregatable: true }, - }, - 'products.price': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, - customer_first_name: { - text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, - }, - customer_phone: { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - 'geoip.region_name': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - _tier: { - keyword: { type: 'keyword', metadata_field: true, searchable: true, aggregatable: true }, - }, - _seq_no: { - _seq_no: { type: '_seq_no', metadata_field: true, searchable: true, aggregatable: true }, - }, - customer_full_name: { - text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, - }, - 'geoip.country_iso_code': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, - _source: { - _source: { type: '_source', metadata_field: true, searchable: false, aggregatable: false }, - }, - _id: { _id: { type: '_id', metadata_field: true, searchable: true, aggregatable: false } }, - order_id: { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, 'products._id': { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, 'products.product_name.keyword': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - _index: { - _index: { type: '_index', metadata_field: true, searchable: true, aggregatable: true }, - }, - 'products.product_id': { - long: { type: 'long', metadata_field: false, searchable: true, aggregatable: true }, - }, 'products.category': { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, 'products.manufacturer.keyword': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + type: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, manufacturer: { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, products: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, - 'products.unit_discount_amount': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, customer_last_name: { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, - 'geoip.location': { - geo_point: { type: 'geo_point', metadata_field: false, searchable: true, aggregatable: true }, - }, - 'products.tax_amount': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, + 'products._id.keyword': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, 'products.product_name': { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, - 'products.min_price': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, 'manufacturer.keyword': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'products.taxful_price': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, - }, currency: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'products.base_price': { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, + 'geoip.continent_name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + event: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + sku: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, email: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + 'customer_full_name.keyword': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, day_of_week: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + 'customer_last_name.keyword': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, 'products.sku': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'customer_last_name.keyword': { + 'category.keyword': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, geoip: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, + customer_first_name: { + text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, + }, + customer_phone: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, 'products.category.keyword': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, 'geoip.city_name': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - order_date: { - date: { type: 'date', metadata_field: false, searchable: true, aggregatable: true }, + 'geoip.region_name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, 'customer_first_name.keyword': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'products.created_on': { - date: { type: 'date', metadata_field: false, searchable: true, aggregatable: true }, + customer_full_name: { + text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, + }, + 'geoip.country_iso_code': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, category: { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, @@ -238,16 +110,14 @@ export const fieldCapsEcommerceMock = { user: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - customer_gender: { + order_id: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'event.dataset': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - taxful_total_price: { - half_float: { - type: 'half_float', - metadata_field: false, - searchable: true, - aggregatable: true, - }, + customer_gender: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, }, }; diff --git a/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_large_arrays.ts b/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_large_arrays.ts index 93a7c230e23c5..05279b7116cc1 100644 --- a/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_large_arrays.ts +++ b/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_large_arrays.ts @@ -6,27 +6,8 @@ */ export const fieldCapsLargeArraysMock = { - indices: ['large_arrays'], + indices: ['large_array'], fields: { - _tier: { - keyword: { type: 'keyword', metadata_field: true, searchable: true, aggregatable: true }, - }, - _seq_no: { - _seq_no: { type: '_seq_no', metadata_field: true, searchable: true, aggregatable: true }, - }, - '@timestamp': { - date: { type: 'date', metadata_field: false, searchable: true, aggregatable: true }, - }, - _index: { - _index: { type: '_index', metadata_field: true, searchable: true, aggregatable: true }, - }, - _source: { - _source: { type: '_source', metadata_field: true, searchable: false, aggregatable: false }, - }, - _id: { _id: { type: '_id', metadata_field: true, searchable: true, aggregatable: false } }, - _version: { - _version: { type: '_version', metadata_field: true, searchable: false, aggregatable: true }, - }, items: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, diff --git a/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_pgbench.ts b/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_pgbench.ts index 93fd2ad505ad5..a4d85d8673971 100644 --- a/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_pgbench.ts +++ b/x-pack/packages/ml/aiops_log_rate_analysis/queries/__mocks__/field_caps_pgbench.ts @@ -6,37 +6,113 @@ */ export const fieldCapsPgBenchMock = { - indices: ['my-index'], + indices: ['.ds-filebeat-8.2.0-2022.06.07-000082'], fields: { - stack: { + 'kubernetes.node.uid': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - metadata: { - flattened: { type: 'flattened', metadata_field: false, searchable: true, aggregatable: true }, + stack: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, 'kubernetes.namespace_uid': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + 'host.os.name.text': { + text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, + }, + 'kubernetes.labels': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, 'host.hostname': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + 'host.mac': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, 'kubernetes.node.labels.kubernetes_io/os': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + 'container.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'service.type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'transaction.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, hostname: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + 'host.os.version': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.node.labels.beta_kubernetes_io/os': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, _metadata: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, - _version: { - _version: { type: '_version', metadata_field: true, searchable: false, aggregatable: true }, + 'kubernetes.node.labels.topology_kubernetes_io/region': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'host.os.type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'fileset.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'cloud.account': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'span.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'agent.hostname': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, 'req.headers.x-real-ip': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - amount_f: { - float: { type: 'float', metadata_field: false, searchable: true, aggregatable: true }, + 'req.headers.connection': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + labels: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'cloud.service': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + '_metadata.message_template': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + input: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'log.origin.function': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'host.containerized': { + boolean: { type: 'boolean', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.node.labels.beta_kubernetes_io/instance-type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.node.labels.failure-domain_beta_kubernetes_io/region': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.node.hostname': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'elasticapm_labels.trace.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'host.ip': { ip: { type: 'ip', metadata_field: false, searchable: true, aggregatable: true } }, + 'agent.type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'process.executable.text': { + text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, 'kubernetes.node.labels.addon_gke_io/node-local-dns-ds-ready': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, @@ -50,10 +126,10 @@ export const fieldCapsPgBenchMock = { '_metadata.user_id': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'kubernetes.container.name': { + 'postgresql.log.database': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'postgresql.log.database': { + 'kubernetes.container.name': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, 'container.labels.annotation_io_kubernetes_container_restartCount': { @@ -68,24 +144,15 @@ export const fieldCapsPgBenchMock = { 'host.os.platform': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - _field_names: { - _field_names: { - type: '_field_names', - metadata_field: true, - searchable: true, - aggregatable: false, - }, - }, 'cloud.account.id': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - v: { long: { type: 'long', metadata_field: false, searchable: true, aggregatable: true } }, - 'error.message': { - text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, - }, elasticapm_transaction_id: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + 'error.message': { + text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, + }, 'log.file.path': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, @@ -95,9 +162,6 @@ export const fieldCapsPgBenchMock = { 'container.labels.io_kubernetes_container_name': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'user.name': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, 'user.name.text': { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, @@ -116,6 +180,9 @@ export const fieldCapsPgBenchMock = { 'cloud.instance': { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, + 'process.name.text': { + text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, + }, 'container.labels.io_kubernetes_pod_namespace': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, @@ -137,9 +204,6 @@ export const fieldCapsPgBenchMock = { 'host.os.name': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'host.os.name.text': { - text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, - }, 'log.level': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, @@ -164,21 +228,15 @@ export const fieldCapsPgBenchMock = { '_metadata.elastic_apm_trace_id': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'log.file': { - object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, - }, - 'log.offset': { - long: { type: 'long', metadata_field: false, searchable: true, aggregatable: true }, - }, 'client.ip': { ip: { type: 'ip', metadata_field: false, searchable: true, aggregatable: true }, }, + 'log.file': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, 'process.name': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'process.name.text': { - text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, - }, name: { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, @@ -197,18 +255,18 @@ export const fieldCapsPgBenchMock = { 'req.headers.tracestate': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, + '_metadata.metadata_event_dataset': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, 'postgresql.log.timestamp': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - '_metadata.metadata_event_dataset': { + 'event.module': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, related: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, - 'event.module': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, 'req.headers': { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, @@ -218,21 +276,18 @@ export const fieldCapsPgBenchMock = { 'kubernetes.node.labels.cloud_google_com/gke-container-runtime': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'kubernetes.pod.name': { - keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, - }, client: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, + 'kubernetes.pod.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, 'req.headers.cache-control': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, 'event.timezone': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'log.origin.file.line': { - long: { type: 'long', metadata_field: false, searchable: true, aggregatable: true }, - }, 'service.name': { keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, @@ -242,45 +297,332 @@ export const fieldCapsPgBenchMock = { message: { text: { type: 'text', metadata_field: false, searchable: true, aggregatable: false }, }, - _source: { - _source: { type: '_source', metadata_field: true, searchable: false, aggregatable: false }, + 'kubernetes.node.labels.kubernetes_io/hostname': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.headers.traceparent': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.namespace_labels': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + service: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'kubernetes.node.labels.node_type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + container: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'event.category': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'elasticapm_labels.trace': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'kubernetes.node.labels.topology_kubernetes_io/zone': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'client.geo.country_iso_code': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'client.geo': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + type: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.method': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'container.image.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.labels.app': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'agent.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'log.original': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'process.thread.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'container.labels.io_kubernetes_pod_uid': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.node': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'kubernetes.node.labels.failure-domain_beta_kubernetes_io/zone': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'input.type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'log.flags': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'related.user': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'host.architecture': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + elasticapm_labels: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'req.url': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'cloud.provider': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'cloud.machine.type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'agent.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'cloud.machine': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'container.labels.io_kubernetes_sandbox_id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.headers.pragma': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'container.labels.io_kubernetes_docker_type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + '_metadata.elastic_apm_transaction_id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.node.labels.cloud_google_com/gke-os-distribution': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, log: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, + 'kubernetes.pod': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'container.labels.annotation_io_kubernetes_container_hash': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.remoteAddress': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'user.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'log.logger': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'postgresql.log.query_step': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'cloud.instance.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'client.geo.region_name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + stream: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'log.origin.file': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'kubernetes.node.labels.cloud_google_com/gke-nodepool': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, event: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, - 'event.duration': { - long: { type: 'long', metadata_field: false, searchable: true, aggregatable: true }, + 'req.headers.host': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.headers.content-type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.replicaset.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'host.os.codename': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.headers.referer': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.headers.cookie': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'elasticapm_labels.span': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'log.origin.file.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + data_stream: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'data_stream.dataset': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - 'event.ingested': { - date: { type: 'date', metadata_field: false, searchable: true, aggregatable: true }, + 'agent.ephemeral_id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - '@timestamp': { - date: { type: 'date', metadata_field: false, searchable: true, aggregatable: true }, + 'cloud.project': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'container.image': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, transaction: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, + 'cloud.project.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, span: { object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, - '_metadata.sum': { - long: { type: 'long', metadata_field: false, searchable: true, aggregatable: true }, + 'container.labels.annotation_io_kubernetes_container_terminationMessagePolicy': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - _tier: { - keyword: { type: 'keyword', metadata_field: true, searchable: true, aggregatable: true }, + 'elasticapm_labels.transaction': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, - _seq_no: { - _seq_no: { type: '_seq_no', metadata_field: true, searchable: true, aggregatable: true }, + 'cloud.availability_zone': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, - code: { long: { type: 'long', metadata_field: false, searchable: true, aggregatable: true } }, - _index: { - _index: { type: '_index', metadata_field: true, searchable: true, aggregatable: true }, + cloud: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'container.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + ecs: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, }, - 'client.geo.location': { - geo_point: { type: 'geo_point', metadata_field: false, searchable: true, aggregatable: true }, + 'kubernetes.namespace': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + host: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'host.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.headers.accept': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'client.geo.country_name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'event.kind': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.replicaset': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'elasticapm_labels.transaction.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'data_stream.type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'container.runtime': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'cloud.service.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'ecs.version': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'container.labels.io_kubernetes_pod_name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'labels.userId': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'container.labels.annotation_io_kubernetes_container_terminationMessagePath': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.node.name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'client.geo.continent_name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'postgresql.log': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'req.headers.user-agent': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.pod.uid': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + error: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'kubernetes.node.labels': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + trace: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'trace.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + postgresql: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'elasticapm_labels.span.id': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'kubernetes.container': { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + elasticapm_trace_id: { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'process.executable': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + process: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'client.geo.city_name': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'client.geo.region_iso_code': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'data_stream.namespace': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'req.headers.content-length': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'event.type': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + user: { + object: { type: 'object', metadata_field: false, searchable: false, aggregatable: false }, + }, + 'event.dataset': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, + }, + 'container.labels.io_kubernetes_container_logpath': { + keyword: { type: 'keyword', metadata_field: false, searchable: true, aggregatable: true }, }, }, }; diff --git a/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.test.ts b/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.test.ts index 780c4546259d3..a47b6d94db128 100644 --- a/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.test.ts +++ b/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.test.ts @@ -80,55 +80,154 @@ describe('fetch_index_info', () => { expect(fieldCandidates).toEqual([ '_metadata.elastic_apm_trace_id', + '_metadata.elastic_apm_transaction_id', + '_metadata.message_template', '_metadata.metadata_event_dataset', '_metadata.user_id', + 'agent.ephemeral_id', + 'agent.hostname', + 'agent.id', + 'agent.name', + 'agent.type', 'agent.version', + 'client.geo.city_name', + 'client.geo.continent_name', + 'client.geo.country_iso_code', + 'client.geo.country_name', + 'client.geo.region_iso_code', + 'client.geo.region_name', 'client.ip', 'cloud.account.id', + 'cloud.availability_zone', + 'cloud.instance.id', 'cloud.instance.name', + 'cloud.machine.type', + 'cloud.project.id', + 'cloud.provider', + 'cloud.service.name', + 'container.id', + 'container.image.name', + 'container.labels.annotation_io_kubernetes_container_hash', 'container.labels.annotation_io_kubernetes_container_restartCount', + 'container.labels.annotation_io_kubernetes_container_terminationMessagePath', + 'container.labels.annotation_io_kubernetes_container_terminationMessagePolicy', 'container.labels.annotation_io_kubernetes_pod_terminationGracePeriod', + 'container.labels.io_kubernetes_container_logpath', 'container.labels.io_kubernetes_container_name', + 'container.labels.io_kubernetes_docker_type', + 'container.labels.io_kubernetes_pod_name', 'container.labels.io_kubernetes_pod_namespace', + 'container.labels.io_kubernetes_pod_uid', + 'container.labels.io_kubernetes_sandbox_id', + 'container.name', + 'container.runtime', + 'data_stream.dataset', + 'data_stream.namespace', + 'data_stream.type', 'details', + 'ecs.version', + 'elasticapm_labels.span.id', + 'elasticapm_labels.trace.id', + 'elasticapm_labels.transaction.id', 'elasticapm_span_id', + 'elasticapm_trace_id', 'elasticapm_transaction_id', + 'event.category', + 'event.dataset', + 'event.kind', 'event.module', 'event.timezone', + 'event.type', + 'fileset.name', + 'host.architecture', + 'host.containerized', 'host.hostname', + 'host.ip', + 'host.mac', + 'host.name', + 'host.os.codename', 'host.os.family', 'host.os.kernel', 'host.os.name', 'host.os.platform', + 'host.os.type', + 'host.os.version', 'hostname', + 'input.type', 'kubernetes.container.name', + 'kubernetes.labels.app', 'kubernetes.labels.pod-template-hash', + 'kubernetes.namespace', 'kubernetes.namespace_labels.kubernetes_io/metadata_name', 'kubernetes.namespace_uid', + 'kubernetes.node.hostname', 'kubernetes.node.labels.addon_gke_io/node-local-dns-ds-ready', 'kubernetes.node.labels.beta_kubernetes_io/arch', + 'kubernetes.node.labels.beta_kubernetes_io/instance-type', + 'kubernetes.node.labels.beta_kubernetes_io/os', 'kubernetes.node.labels.cloud_google_com/gke-boot-disk', 'kubernetes.node.labels.cloud_google_com/gke-container-runtime', + 'kubernetes.node.labels.cloud_google_com/gke-nodepool', + 'kubernetes.node.labels.cloud_google_com/gke-os-distribution', 'kubernetes.node.labels.cloud_google_com/machine-family', + 'kubernetes.node.labels.failure-domain_beta_kubernetes_io/region', + 'kubernetes.node.labels.failure-domain_beta_kubernetes_io/zone', 'kubernetes.node.labels.kubernetes_io/arch', + 'kubernetes.node.labels.kubernetes_io/hostname', 'kubernetes.node.labels.kubernetes_io/os', 'kubernetes.node.labels.node_kubernetes_io/instance-type', + 'kubernetes.node.labels.node_type', + 'kubernetes.node.labels.topology_kubernetes_io/region', + 'kubernetes.node.labels.topology_kubernetes_io/zone', + 'kubernetes.node.name', + 'kubernetes.node.uid', 'kubernetes.pod.ip', 'kubernetes.pod.name', + 'kubernetes.pod.uid', + 'kubernetes.replicaset.name', + 'labels.userId', 'log.file.path', + 'log.flags', 'log.level', + 'log.logger', + 'log.origin.file.name', + 'log.origin.function', + 'log.original', 'name', 'postgresql.log.database', 'postgresql.log.query', + 'postgresql.log.query_step', 'postgresql.log.timestamp', + 'process.executable', 'process.name', + 'process.thread.name', + 'related.user', + 'req.headers.accept', 'req.headers.accept-encoding', 'req.headers.cache-control', + 'req.headers.connection', + 'req.headers.content-length', + 'req.headers.content-type', + 'req.headers.cookie', + 'req.headers.host', 'req.headers.origin', + 'req.headers.pragma', + 'req.headers.referer', + 'req.headers.traceparent', 'req.headers.tracestate', + 'req.headers.user-agent', 'req.headers.x-real-ip', + 'req.method', + 'req.remoteAddress', + 'req.url', 'service.name', + 'service.type', + 'span.id', 'stack', + 'stream', + 'trace.id', + 'transaction.id', + 'type', 'user.name', ]); expect(textFieldCandidates).toEqual(['error.message', 'message']); @@ -172,6 +271,7 @@ describe('fetch_index_info', () => { 'customer_phone', 'day_of_week', 'email', + 'event.dataset', 'geoip.city_name', 'geoip.continent_name', 'geoip.country_iso_code', diff --git a/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.ts b/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.ts index c1acb2cad6f75..1bb5b701fdd17 100644 --- a/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.ts +++ b/x-pack/packages/ml/aiops_log_rate_analysis/queries/fetch_index_info.ts @@ -25,8 +25,6 @@ const SUPPORTED_ES_FIELD_TYPES = [ const SUPPORTED_ES_FIELD_TYPES_TEXT = [ES_FIELD_TYPES.TEXT, ES_FIELD_TYPES.MATCH_ONLY_TEXT]; -const IGNORE_FIELD_NAMES = ['_tier']; - interface IndexInfo { fieldCandidates: string[]; textFieldCandidates: string[]; @@ -45,9 +43,19 @@ export const fetchIndexInfo = async ( // Get all supported fields const respMapping = await esClient.fieldCaps( { - index, fields: '*', + filters: '-metadata', include_empty_fields: false, + index, + index_filter: { + range: { + [params.timeFieldName]: { + gte: params.deviationMin, + lte: params.deviationMax, + }, + }, + }, + types: [...SUPPORTED_ES_FIELD_TYPES, ...SUPPORTED_ES_FIELD_TYPES_TEXT], }, { signal: abortSignal, maxRetries: 0 } ); @@ -64,11 +72,11 @@ export const fetchIndexInfo = async ( const isTextField = fieldTypes.some((type) => SUPPORTED_ES_FIELD_TYPES_TEXT.includes(type)); // Check if fieldName is something we can aggregate on - if (isSupportedType && isAggregatable && !IGNORE_FIELD_NAMES.includes(key)) { + if (isSupportedType && isAggregatable) { acceptableFields.add(key); } - if (isTextField && !IGNORE_FIELD_NAMES.includes(key)) { + if (isTextField) { acceptableTextFields.add(key); } From f10463a979052da1c473bbc81ec409723f23bfc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loix?= Date: Mon, 22 Apr 2024 13:20:17 +0100 Subject: [PATCH 022/183] [Serverless nav] Limit number of recent items (#181284) --- .../__jest__/build_nav_tree.test.tsx | 32 ++++++++++--- .../ui/components/navigation_section_ui.tsx | 10 +---- .../src/ui/components/recently_accessed.tsx | 45 +++++++++++-------- 3 files changed, 55 insertions(+), 32 deletions(-) diff --git a/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx b/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx index 76336b10a300a..694f82bf9c079 100644 --- a/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx +++ b/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx @@ -129,11 +129,7 @@ describe('builds navigation tree', () => { ]); const navTree: NavigationTreeDefinitionUI = { - body: [ - { - type: 'recentlyAccessed', - }, - ], + body: [{ type: 'recentlyAccessed' }], }; const { findByTestId } = renderNavigation({ @@ -146,4 +142,30 @@ describe('builds navigation tree', () => { 'RecentThis is an exampleAnother example' ); }); + + test('should limit the number of recently accessed items to 5', async () => { + const recentlyAccessed$ = of([ + { label: 'Item1', link: '/app/foo/1', id: '1' }, + { label: 'Item2', link: '/app/foo/2', id: '2' }, + { label: 'Item3', link: '/app/foo/3', id: '3' }, + { label: 'Item4', link: '/app/foo/4', id: '4' }, + { label: 'Item5', link: '/app/foo/5', id: '5' }, + { label: 'Item6', link: '/app/foo/6', id: '6' }, + { label: 'Item7', link: '/app/foo/7', id: '7' }, + ]); + + const navTree: NavigationTreeDefinitionUI = { + body: [{ type: 'recentlyAccessed' }], + }; + + const { queryAllByTestId } = renderNavigation({ + navTreeDef: of(navTree), + services: { recentlyAccessed$ }, + }); + + const items = await queryAllByTestId(/nav-recentlyAccessed-item/); + expect(items).toHaveLength(5); + const itemsText = items.map((item) => item.textContent); + expect(itemsText).toEqual(['Item1', 'Item2', 'Item3', 'Item4', 'Item5']); + }); }); diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx index 2d39d704ce579..8ceb84fde5de3 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx @@ -318,15 +318,9 @@ const nodeToEuiCollapsibleNavProps = ( return { items, isVisible }; }; -// Temporary solution to prevent showing the outline when the page load when the -// accordion is auto-expanded if one of its children is active -// Once https://github.com/elastic/eui/pull/7314 is released in Kibana we can -// safely remove this CSS class. const className = css` - .euiAccordion__childWrapper, - .euiAccordion__children, - .euiCollapsibleNavAccordion__children { - outline: none; + .euiAccordion__childWrapper { + transition: none; // Remove the transition as it does not play well with dynamic links added to the accordion } `; diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx index 0a3af6522a6e6..e4eee48ce88ff 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx @@ -6,8 +6,8 @@ * Side Public License, v 1. */ -import React, { FC } from 'react'; -import { EuiCollapsibleNavItem } from '@elastic/eui'; +import React, { FC, useMemo } from 'react'; +import { EuiCollapsibleNavItem, type EuiCollapsibleNavItemProps } from '@elastic/eui'; import useObservable from 'react-use/lib/useObservable'; import type { ChromeRecentlyAccessedHistoryItem } from '@kbn/core-chrome-browser'; import type { Observable } from 'rxjs'; @@ -16,6 +16,8 @@ import { useNavigation as useServices } from '../../services'; import { getI18nStrings } from '../i18n_strings'; +const MAX_RECENTLY_ACCESS_ITEMS = 5; + export interface Props { /** * Optional observable for recently accessed items. If not provided, the @@ -31,30 +33,35 @@ export interface Props { export const RecentlyAccessed: FC = ({ recentlyAccessed$: recentlyAccessedProp$, - defaultIsCollapsed = false, + defaultIsCollapsed = true, }) => { const strings = getI18nStrings(); const { recentlyAccessed$, basePath, navigateToUrl } = useServices(); const recentlyAccessed = useObservable(recentlyAccessedProp$ ?? recentlyAccessed$, []); - if (recentlyAccessed.length === 0) { - return null; - } + const navItems = useMemo( + () => + recentlyAccessed.slice(0, MAX_RECENTLY_ACCESS_ITEMS).map((recent) => { + const { id, label, link } = recent; + const href = basePath.prepend(link); - const navItems = recentlyAccessed.map((recent) => { - const { id, label, link } = recent; - const href = basePath.prepend(link); + return { + id, + title: label, + href, + 'data-test-subj': `nav-recentlyAccessed-item nav-recentlyAccessed-item-${id}`, + onClick: (e: React.MouseEvent) => { + e.preventDefault(); + navigateToUrl(href); + }, + }; + }), + [basePath, navigateToUrl, recentlyAccessed] + ); - return { - id, - title: label, - href, - onClick: (e: React.MouseEvent) => { - e.preventDefault(); - navigateToUrl(href); - }, - }; - }); + if (navItems.length === 0) { + return null; + } return ( Date: Mon, 22 Apr 2024 15:01:24 +0200 Subject: [PATCH 023/183] [Obs AI Assistant] move rule connector to observability_ai_assistant_app (#180949) ## Summary Resolves https://github.com/elastic/kibana/issues/180910 This change simply moves the rule_connector introduced in https://github.com/elastic/kibana/pull/179980 to the `observability_ai_assistant_app` plugin. There are not functional changes. Also added some unit tests ### Testing See testing section in https://github.com/elastic/kibana/pull/179980 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../mocks/connector_types.ts | 2 +- .../observability_ai_assistant/kibana.jsonc | 3 - .../public/index.ts | 1 + .../public/plugin.tsx | 5 - .../server/plugin.ts | 59 +----- .../observability_ai_assistant/tsconfig.json | 1 - .../common/rule_connector.ts | 8 + .../kibana.jsonc | 4 +- .../public/plugin.tsx | 8 +- .../public/rule_connector/ai_assistant.tsx | 8 +- .../rule_connector/ai_assistant_params.tsx | 6 +- .../public/rule_connector/index.ts | 0 .../public/rule_connector/translations.ts | 0 .../public/rule_connector/types.ts | 0 .../server/plugin.ts | 74 ++++++++ .../convert_schema_to_open_api.ts | 2 +- .../server/rule_connector/index.test.ts | 168 ++++++++++++++++++ .../server/rule_connector/index.ts | 10 +- .../server/types.ts | 42 +++++ .../tsconfig.json | 8 +- 20 files changed, 327 insertions(+), 82 deletions(-) create mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant_app/common/rule_connector.ts rename x-pack/plugins/observability_solution/{observability_ai_assistant => observability_ai_assistant_app}/public/rule_connector/ai_assistant.tsx (93%) rename x-pack/plugins/observability_solution/{observability_ai_assistant => observability_ai_assistant_app}/public/rule_connector/ai_assistant_params.tsx (94%) rename x-pack/plugins/observability_solution/{observability_ai_assistant => observability_ai_assistant_app}/public/rule_connector/index.ts (100%) rename x-pack/plugins/observability_solution/{observability_ai_assistant => observability_ai_assistant_app}/public/rule_connector/translations.ts (100%) rename x-pack/plugins/observability_solution/{observability_ai_assistant => observability_ai_assistant_app}/public/rule_connector/types.ts (100%) rename x-pack/plugins/observability_solution/{observability_ai_assistant => observability_ai_assistant_app}/server/rule_connector/convert_schema_to_open_api.ts (93%) create mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts rename x-pack/plugins/observability_solution/{observability_ai_assistant => observability_ai_assistant_app}/server/rule_connector/index.ts (95%) diff --git a/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts b/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts index eec2762e3fd81..2886aa1babcef 100644 --- a/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts +++ b/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts @@ -29,6 +29,6 @@ export const connectorTypes: string[] = [ '.bedrock', '.d3security', '.sentinelone', - '.observability-ai-assistant', '.cases', + '.observability-ai-assistant', ]; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/kibana.jsonc b/x-pack/plugins/observability_solution/observability_ai_assistant/kibana.jsonc index 1968c772eccfb..39af4d91bc87b 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/kibana.jsonc +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/kibana.jsonc @@ -14,9 +14,6 @@ "security", "taskManager", "dataViews", - "triggersActionsUi", - "ruleRegistry", - "alerting" ], "requiredBundles": ["kibanaReact", "kibanaUtils"], "optionalPlugins": ["cloud", "serverless"], diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts index 91f1c640141f9..d42c96715523e 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts @@ -31,6 +31,7 @@ export type { export { AssistantAvatar } from './components/assistant_avatar'; export { ConnectorSelectorBase } from './components/connector_selector/connector_selector_base'; export { useAbortableAsync, type AbortableAsyncState } from './hooks/use_abortable_async'; +export { useGenAIConnectorsWithoutContext } from './hooks/use_genai_connectors'; export { createStorybookChatService, createStorybookService } from './storybook_mock'; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/plugin.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/public/plugin.tsx index ccd67edc58dd6..2b9ab400a08f8 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/plugin.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/plugin.tsx @@ -29,7 +29,6 @@ import type { ObservabilityAIAssistantPublicStart, ObservabilityAIAssistantService, } from './types'; -import { getObsAIAssistantConnectorType } from './rule_connector'; export class ObservabilityAIAssistantPlugin implements @@ -88,10 +87,6 @@ export class ObservabilityAIAssistantPlugin const isEnabled = service.isEnabled(); - pluginsStart.triggersActionsUi.actionTypeRegistry.register( - getObsAIAssistantConnectorType(service) - ); - return { service, useGenAIConnectors: () => useGenAIConnectorsWithoutContext(service), diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts index 77075da8d3195..4e3a0b8ecabd7 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts @@ -8,7 +8,6 @@ import { CoreSetup, DEFAULT_APP_CATEGORIES, - KibanaRequest, Logger, Plugin, PluginInitializerContext, @@ -24,10 +23,7 @@ import { firstValueFrom } from 'rxjs'; import { OBSERVABILITY_AI_ASSISTANT_FEATURE_ID } from '../common/feature'; import type { ObservabilityAIAssistantConfig } from './config'; import { registerServerRoutes } from './routes/register_routes'; -import { - ObservabilityAIAssistantRequestHandlerContext, - ObservabilityAIAssistantRouteHandlerResources, -} from './routes/types'; +import { ObservabilityAIAssistantRouteHandlerResources } from './routes/types'; import { ObservabilityAIAssistantService } from './service'; import { ObservabilityAIAssistantServerSetup, @@ -38,10 +34,6 @@ import { import { addLensDocsToKb } from './service/knowledge_base_service/kb_docs/lens'; import { registerFunctions } from './functions'; import { recallRankingEvent } from './analytics/recall_ranking'; -import { - getObsAIAssistantConnectorType, - getObsAIAssistantConnectorAdapter, -} from './rule_connector'; export class ObservabilityAIAssistantPlugin implements @@ -162,55 +154,6 @@ export class ObservabilityAIAssistantPlugin addLensDocsToKb({ service, logger: this.logger.get('kb').get('lens') }); - const initResources = async ( - request: KibanaRequest - ): Promise => { - const [coreStart, pluginsStart] = await core.getStartServices(); - const license = await firstValueFrom(pluginsStart.licensing.license$); - const savedObjectsClient = coreStart.savedObjects.getScopedClient(request); - - const context: ObservabilityAIAssistantRequestHandlerContext = { - rac: routeHandlerPlugins.ruleRegistry.start().then((startContract) => { - return { - getAlertsClient() { - return startContract.getRacClientWithRequest(request); - }, - }; - }), - alerting: routeHandlerPlugins.alerting.start().then((startContract) => { - return { - getRulesClient() { - return startContract.getRulesClientWithRequest(request); - }, - }; - }), - core: Promise.resolve({ - coreStart, - elasticsearch: { - client: coreStart.elasticsearch.client.asScoped(request), - }, - uiSettings: { - client: coreStart.uiSettings.asScopedToClient(savedObjectsClient), - }, - savedObjects: { - client: savedObjectsClient, - }, - }), - licensing: Promise.resolve({ license, featureUsage: pluginsStart.licensing.featureUsage }), - }; - - return { - request, - service, - context, - logger: this.logger.get('connector'), - plugins: routeHandlerPlugins, - }; - }; - - plugins.actions.registerType(getObsAIAssistantConnectorType(initResources)); - plugins.alerting.registerConnectorAdapter(getObsAIAssistantConnectorAdapter()); - registerServerRoutes({ core, logger: this.logger, diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json b/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json index b6502b6ef5517..eee8ea0d56911 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json @@ -48,7 +48,6 @@ "@kbn/cloud-plugin", "@kbn/serverless", "@kbn/triggers-actions-ui-plugin", - "@kbn/stack-connectors-plugin", ], "exclude": ["target/**/*"] } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/common/rule_connector.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/common/rule_connector.ts new file mode 100644 index 0000000000000..84c7b1f3e8d64 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/common/rule_connector.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 const OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID = '.observability-ai-assistant'; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/kibana.jsonc b/x-pack/plugins/observability_solution/observability_ai_assistant_app/kibana.jsonc index f4aac7df8a389..b64d31e3f13b9 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/kibana.jsonc +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/kibana.jsonc @@ -21,7 +21,9 @@ "share", "security", "licensing", - "ml" + "ml", + "alerting", + "features" ], "requiredBundles": ["kibanaReact"], "optionalPlugins": ["cloud"], diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/plugin.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/plugin.tsx index 1e226aa99c8a8..6e188043a6a31 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/plugin.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/plugin.tsx @@ -26,6 +26,7 @@ import type { import { createAppService, ObservabilityAIAssistantAppService } from './service/create_app_service'; import { SharedProviders } from './utils/shared_providers'; import { LazyNavControl } from './components/nav_control/lazy_nav_control'; +import { getObsAIAssistantConnectorType } from './rule_connector'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface ConfigSchema {} @@ -124,12 +125,17 @@ export class ObservabilityAIAssistantAppPlugin order: 1001, }); - pluginsStart.observabilityAIAssistant.service.register(async ({ registerRenderFunction }) => { + const service = pluginsStart.observabilityAIAssistant.service; + + service.register(async ({ registerRenderFunction }) => { const { registerFunctions } = await import('./functions'); await registerFunctions({ pluginsStart, registerRenderFunction }); }); + pluginsStart.triggersActionsUi.actionTypeRegistry.register( + getObsAIAssistantConnectorType(service) + ); return {}; } } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/ai_assistant.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/ai_assistant.tsx similarity index 93% rename from x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/ai_assistant.tsx rename to x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/ai_assistant.tsx index beadd590ce2f5..bd024e9231ac0 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/ai_assistant.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/ai_assistant.tsx @@ -10,10 +10,12 @@ import type { ActionTypeModel as ConnectorTypeModel, GenericValidationResult, } from '@kbn/triggers-actions-ui-plugin/public/types'; -import { ObsAIAssistantActionParams } from './types'; -import { ObservabilityAIAssistantService } from '../types'; -import { AssistantAvatar } from '../components/assistant_avatar'; +import { + AssistantAvatar, + ObservabilityAIAssistantService, +} from '@kbn/observability-ai-assistant-plugin/public'; import { OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID } from '../../common/rule_connector'; +import { ObsAIAssistantActionParams } from './types'; import { CONNECTOR_DESC, CONNECTOR_REQUIRED, diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/ai_assistant_params.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/ai_assistant_params.tsx similarity index 94% rename from x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/ai_assistant_params.tsx rename to x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/ai_assistant_params.tsx index 95793f95a437d..4e3683625e819 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/ai_assistant_params.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/ai_assistant_params.tsx @@ -9,9 +9,11 @@ import React, { useEffect } from 'react'; import type { ActionParamsProps } from '@kbn/triggers-actions-ui-plugin/public'; import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiFlexItem, EuiSelect, EuiSpacer, EuiTextArea } from '@elastic/eui'; +import { + ObservabilityAIAssistantService, + useGenAIConnectorsWithoutContext, +} from '@kbn/observability-ai-assistant-plugin/public'; import { ObsAIAssistantActionParams } from './types'; -import { ObservabilityAIAssistantService } from '../types'; -import { useGenAIConnectorsWithoutContext } from '../hooks/use_genai_connectors'; const ObsAIAssistantParamsFields: React.FunctionComponent< ActionParamsProps & { service: ObservabilityAIAssistantService } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/index.ts similarity index 100% rename from x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/index.ts rename to x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/index.ts diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/translations.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/translations.ts similarity index 100% rename from x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/translations.ts rename to x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/translations.ts diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/types.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/types.ts similarity index 100% rename from x-pack/plugins/observability_solution/observability_ai_assistant/public/rule_connector/types.ts rename to x-pack/plugins/observability_solution/observability_ai_assistant_app/public/rule_connector/types.ts diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/plugin.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/plugin.ts index 097c50bad0bd9..903c3c0c26826 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/plugin.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/plugin.ts @@ -11,9 +11,21 @@ import { Plugin, type PluginInitializerContext, type CoreStart, + KibanaRequest, } from '@kbn/core/server'; +import { + ObservabilityAIAssistantRequestHandlerContext, + ObservabilityAIAssistantRouteHandlerResources, +} from '@kbn/observability-ai-assistant-plugin/server/routes/types'; +import { ObservabilityAIAssistantPluginStartDependencies } from '@kbn/observability-ai-assistant-plugin/server/types'; +import { mapValues } from 'lodash'; +import { firstValueFrom } from 'rxjs'; import type { ObservabilityAIAssistantAppConfig } from './config'; import { registerFunctions } from './functions'; +import { + getObsAIAssistantConnectorAdapter, + getObsAIAssistantConnectorType, +} from './rule_connector'; import type { ObservabilityAIAssistantAppPluginSetupDependencies, ObservabilityAIAssistantAppPluginStartDependencies, @@ -42,6 +54,68 @@ export class ObservabilityAIAssistantAppPlugin >, plugins: ObservabilityAIAssistantAppPluginSetupDependencies ): ObservabilityAIAssistantAppServerSetup { + const routeHandlerPlugins = mapValues(plugins, (value, key) => { + return { + setup: value, + start: () => + core.getStartServices().then((services) => { + const [, pluginsStartContracts] = services; + return pluginsStartContracts[ + key as keyof ObservabilityAIAssistantPluginStartDependencies + ]; + }), + }; + }) as ObservabilityAIAssistantRouteHandlerResources['plugins']; + + const initResources = async ( + request: KibanaRequest + ): Promise => { + const [coreStart, pluginsStart] = await core.getStartServices(); + const license = await firstValueFrom(pluginsStart.licensing.license$); + const savedObjectsClient = coreStart.savedObjects.getScopedClient(request); + + const context: ObservabilityAIAssistantRequestHandlerContext = { + rac: routeHandlerPlugins.ruleRegistry.start().then((startContract) => { + return { + getAlertsClient() { + return startContract.getRacClientWithRequest(request); + }, + }; + }), + alerting: routeHandlerPlugins.alerting.start().then((startContract) => { + return { + getRulesClient() { + return startContract.getRulesClientWithRequest(request); + }, + }; + }), + core: Promise.resolve({ + coreStart, + elasticsearch: { + client: coreStart.elasticsearch.client.asScoped(request), + }, + uiSettings: { + client: coreStart.uiSettings.asScopedToClient(savedObjectsClient), + }, + savedObjects: { + client: savedObjectsClient, + }, + }), + licensing: Promise.resolve({ license, featureUsage: pluginsStart.licensing.featureUsage }), + }; + + return { + request, + context, + service: plugins.observabilityAIAssistant.service, + logger: this.logger.get('connector'), + plugins: routeHandlerPlugins, + }; + }; + + plugins.actions.registerType(getObsAIAssistantConnectorType(initResources)); + plugins.alerting.registerConnectorAdapter(getObsAIAssistantConnectorAdapter()); + return {}; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/rule_connector/convert_schema_to_open_api.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/convert_schema_to_open_api.ts similarity index 93% rename from x-pack/plugins/observability_solution/observability_ai_assistant/server/rule_connector/convert_schema_to_open_api.ts rename to x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/convert_schema_to_open_api.ts index 44b3c80a9a33f..89a49e6081b5d 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/rule_connector/convert_schema_to_open_api.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/convert_schema_to_open_api.ts @@ -8,7 +8,7 @@ import joiToJsonSchema from 'joi-to-json'; import type { Type } from '@kbn/config-schema'; import { castArray, isPlainObject, forEach, unset } from 'lodash'; -import type { CompatibleJSONSchema } from '../../common/functions/types'; +import type { CompatibleJSONSchema } from '@kbn/observability-ai-assistant-plugin/common/functions/types'; function dropUnknownProperties(object: CompatibleJSONSchema) { if (!isPlainObject(object)) { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts new file mode 100644 index 0000000000000..7990f353062da --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts @@ -0,0 +1,168 @@ +/* + * 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 { AlertHit } from '@kbn/alerting-plugin/server/types'; +import { ObservabilityAIAssistantRouteHandlerResources } from '@kbn/observability-ai-assistant-plugin/server/routes/types'; +import { getFakeKibanaRequest } from '@kbn/security-plugin/server/authentication/api_keys/fake_kibana_request'; +import { OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID } from '../../common/rule_connector'; +import { + getObsAIAssistantConnectorAdapter, + getObsAIAssistantConnectorType, + ObsAIAssistantConnectorTypeExecutorOptions, +} from '.'; +import { Observable } from 'rxjs'; +import { MessageRole } from '@kbn/observability-ai-assistant-plugin/public'; + +describe('observabilityAIAssistant rule_connector', () => { + describe('getObsAIAssistantConnectorAdapter', () => { + it('uses correct connector_id', () => { + const adapter = getObsAIAssistantConnectorAdapter(); + expect(adapter.connectorTypeId).toEqual(OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID); + }); + + it('builds action params', () => { + const adapter = getObsAIAssistantConnectorAdapter(); + const params = adapter.buildActionParams({ + params: { connector: '.azure', message: 'hello' }, + rule: { id: 'foo', name: 'bar', tags: [], consumer: '', producer: '' }, + ruleUrl: 'http://myrule.com', + spaceId: 'default', + alerts: { + all: { count: 1, data: [] }, + new: { count: 1, data: [{ _id: 'new_alert' } as AlertHit] }, + ongoing: { count: 1, data: [] }, + recovered: { count: 1, data: [{ _id: 'recovered_alert' } as AlertHit] }, + }, + }); + + expect(params).toEqual({ + connector: '.azure', + message: 'hello', + rule: { id: 'foo', name: 'bar', tags: [], ruleUrl: 'http://myrule.com' }, + alerts: { + new: [{ _id: 'new_alert' }], + recovered: [{ _id: 'recovered_alert' }], + }, + }); + }); + }); + + describe('getObsAIAssistantConnectorType', () => { + it('is correctly configured', () => { + const initResources = jest + .fn() + .mockResolvedValue({} as ObservabilityAIAssistantRouteHandlerResources); + const connectorType = getObsAIAssistantConnectorType(initResources); + expect(connectorType.id).toEqual(OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID); + expect(connectorType.isSystemActionType).toEqual(true); + expect(connectorType.minimumLicenseRequired).toEqual('enterprise'); + }); + + it('does not execute when no new or recovered alerts', async () => { + const initResources = jest + .fn() + .mockResolvedValue({} as ObservabilityAIAssistantRouteHandlerResources); + const connectorType = getObsAIAssistantConnectorType(initResources); + const result = await connectorType.executor({ + actionId: 'observability-ai-assistant', + request: getFakeKibanaRequest({ id: 'foo', api_key: 'bar' }), + params: { alerts: { new: [], recovered: [] } }, + } as unknown as ObsAIAssistantConnectorTypeExecutorOptions); + expect(result).toEqual({ actionId: 'observability-ai-assistant', status: 'ok' }); + expect(initResources).not.toHaveBeenCalled(); + }); + + it('calls complete api', async () => { + const completeMock = jest.fn().mockReturnValue(new Observable()); + const initResources = jest.fn().mockResolvedValue({ + service: { + getClient: async () => ({ complete: completeMock }), + getFunctionClient: async () => ({ + getContexts: () => [{ name: 'core', description: 'my_system_message' }], + }), + }, + context: { + core: Promise.resolve({ + coreStart: { http: { basePath: { publicBaseUrl: 'http://kibana.com' } } }, + }), + }, + plugins: { + actions: { + start: async () => { + return { + getActionsClientWithRequest: jest.fn().mockResolvedValue({ + async getAll() { + return [{ id: 'connector_1' }]; + }, + }), + }; + }, + }, + }, + } as unknown as ObservabilityAIAssistantRouteHandlerResources); + + const connectorType = getObsAIAssistantConnectorType(initResources); + const result = await connectorType.executor({ + actionId: 'observability-ai-assistant', + request: getFakeKibanaRequest({ id: 'foo', api_key: 'bar' }), + params: { + message: 'hello', + connector: 'azure-open-ai', + alerts: { new: [{ _id: 'new_alert' }], recovered: [] }, + }, + } as unknown as ObsAIAssistantConnectorTypeExecutorOptions); + + expect(result).toEqual({ actionId: 'observability-ai-assistant', status: 'ok' }); + expect(initResources).toHaveBeenCalledTimes(1); + expect(completeMock).toHaveBeenCalledTimes(1); + expect(completeMock).toHaveBeenCalledWith( + expect.objectContaining({ + persist: true, + isPublic: true, + connectorId: 'azure-open-ai', + kibanaPublicUrl: 'http://kibana.com', + messages: [ + { + '@timestamp': expect.any(String), + message: { + role: MessageRole.System, + content: 'my_system_message', + }, + }, + { + '@timestamp': expect.any(String), + message: { + role: MessageRole.User, + content: 'hello', + }, + }, + { + '@timestamp': expect.any(String), + message: { + role: MessageRole.Assistant, + content: '', + function_call: { + name: 'get_connectors', + arguments: JSON.stringify({}), + trigger: MessageRole.Assistant as const, + }, + }, + }, + { + '@timestamp': expect.any(String), + message: { + role: MessageRole.User, + name: 'get_connectors', + content: JSON.stringify({ connectors: [{ id: 'connector_1' }] }), + }, + }, + ], + }) + ); + }); + }); +}); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/rule_connector/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.ts similarity index 95% rename from x-pack/plugins/observability_solution/observability_ai_assistant/server/rule_connector/index.ts rename to x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.ts index ee3eac655fa84..567c326945ef8 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/rule_connector/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.ts @@ -24,16 +24,16 @@ import { SlackParamsSchema, WebhookParamsSchema, } from '@kbn/stack-connectors-plugin/server'; -import { ObservabilityAIAssistantRouteHandlerResources } from '../routes/types'; +import { ObservabilityAIAssistantRouteHandlerResources } from '@kbn/observability-ai-assistant-plugin/server/routes/types'; import { ChatCompletionChunkEvent, MessageRole, StreamingChatResponseEventType, -} from '../../common'; -import { OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID } from '../../common/rule_connector'; -import { concatenateChatCompletionChunks } from '../../common/utils/concatenate_chat_completion_chunks'; +} from '@kbn/observability-ai-assistant-plugin/common'; +import { concatenateChatCompletionChunks } from '@kbn/observability-ai-assistant-plugin/common/utils/concatenate_chat_completion_chunks'; +import { CompatibleJSONSchema } from '@kbn/observability-ai-assistant-plugin/common/functions/types'; import { convertSchemaToOpenApi } from './convert_schema_to_open_api'; -import { CompatibleJSONSchema } from '../../common/functions/types'; +import { OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID } from '../../common/rule_connector'; const CONNECTOR_PRIVILEGES = ['api:observabilityAIAssistant', 'app:observabilityAIAssistant']; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/types.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/types.ts index 996279329ab90..902774bacd800 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/types.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/types.ts @@ -5,6 +5,23 @@ * 2.0. */ +import type { + PluginSetupContract as ActionsPluginSetup, + PluginStartContract as ActionsPluginStart, +} from '@kbn/actions-plugin/server'; +import type { + PluginSetupContract as AlertingPluginSetup, + PluginStartContract as AlertingPluginStart, +} from '@kbn/alerting-plugin/server'; +import type { + DataViewsServerPluginSetup, + DataViewsServerPluginStart, +} from '@kbn/data-views-plugin/server'; +import type { + PluginStartContract as FeaturesPluginStart, + PluginSetupContract as FeaturesPluginSetup, +} from '@kbn/features-plugin/server'; +import type { LicensingPluginSetup, LicensingPluginStart } from '@kbn/licensing-plugin/server'; import type { ObservabilityAIAssistantServerSetup, ObservabilityAIAssistantServerStart, @@ -13,6 +30,13 @@ import type { RuleRegistryPluginSetupContract, RuleRegistryPluginStartContract, } from '@kbn/rule-registry-plugin/server'; +import type { ServerlessPluginSetup, ServerlessPluginStart } from '@kbn/serverless/server'; +import type { + TaskManagerSetupContract, + TaskManagerStartContract, +} from '@kbn/task-manager-plugin/server'; +import type { CloudSetup, CloudStart } from '@kbn/cloud-plugin/server'; +import type { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plugin/server'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface ObservabilityAIAssistantAppServerStart {} @@ -22,9 +46,27 @@ export interface ObservabilityAIAssistantAppServerSetup {} export interface ObservabilityAIAssistantAppPluginStartDependencies { observabilityAIAssistant: ObservabilityAIAssistantServerStart; ruleRegistry: RuleRegistryPluginStartContract; + alerting: AlertingPluginStart; + licensing: LicensingPluginStart; + actions: ActionsPluginStart; + security: SecurityPluginStart; + features: FeaturesPluginStart; + taskManager: TaskManagerStartContract; + dataViews: DataViewsServerPluginStart; + cloud?: CloudStart; + serverless?: ServerlessPluginStart; } export interface ObservabilityAIAssistantAppPluginSetupDependencies { observabilityAIAssistant: ObservabilityAIAssistantServerSetup; ruleRegistry: RuleRegistryPluginSetupContract; + alerting: AlertingPluginSetup; + licensing: LicensingPluginSetup; + actions: ActionsPluginSetup; + security: SecurityPluginSetup; + features: FeaturesPluginSetup; + taskManager: TaskManagerSetupContract; + dataViews: DataViewsServerPluginSetup; + cloud?: CloudSetup; + serverless?: ServerlessPluginSetup; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/tsconfig.json b/x-pack/plugins/observability_solution/observability_ai_assistant_app/tsconfig.json index e35d24bc573ed..8c7224647ce24 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/tsconfig.json +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/tsconfig.json @@ -55,7 +55,13 @@ "@kbn/ai-assistant-management-plugin", "@kbn/deeplinks-observability", "@kbn/management-settings-ids", - "@kbn/apm-utils" + "@kbn/apm-utils", + "@kbn/alerting-plugin", + "@kbn/stack-connectors-plugin", + "@kbn/features-plugin", + "@kbn/serverless", + "@kbn/task-manager-plugin", + "@kbn/cloud-plugin" ], "exclude": ["target/**/*"] } From 2169c0f9fc6cd0738e94154ec2a0f75ac9c6106d Mon Sep 17 00:00:00 2001 From: Dmitrii Shevchenko Date: Mon, 22 Apr 2024 15:20:46 +0200 Subject: [PATCH 024/183] [SecuritySolution] Migrate bulk enable/diable rules to Alerting methods (#180796) **Resolves: https://github.com/elastic/kibana/issues/171350** **Resolves partially: https://github.com/elastic/kibana/issues/177634** ## Summary This PR migrates the `/api/detection_engine/rules/_bulk_action` API endpoint to use the `rulesClient.bulkEnableRules` and `rulesClient.bulkDisableRules` methods under the hood. This change helps mitigate Task Manager flooding when users enable many detection rules at once. The alerting framework's bulk methods implement task staggering to ensure that multiple tasks are not scheduled for execution simultaneously. For more details, refer to [the ticket](https://github.com/elastic/kibana/issues/171350). --- .../rules_client/methods/bulk_enable.ts | 214 ++++++------ .../bulk_actions/bulk_actions_route.mock.ts | 2 +- .../routes/__mocks__/request_responses.ts | 6 +- .../bulk_actions/bulk_actions_response.ts | 145 ++++++++ .../bulk_actions/bulk_enable_disable_rules.ts | 105 ++++++ .../fetch_rules_by_query_or_ids.ts | 64 ++++ .../api/rules/bulk_actions/route.test.ts | 78 +++-- .../api/rules/bulk_actions/route.ts | 329 ++++-------------- .../logic/bulk_actions/validations.ts | 8 +- .../perform_bulk_action_ess.ts | 279 ++++++++------- 10 files changed, 694 insertions(+), 536 deletions(-) create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_actions_response.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_enable_disable_rules.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/fetch_rules_by_query_or_ids.ts diff --git a/x-pack/plugins/alerting/server/rules_client/methods/bulk_enable.ts b/x-pack/plugins/alerting/server/rules_client/methods/bulk_enable.ts index 397d49a2751cf..7d029e211b580 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/bulk_enable.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/bulk_enable.ts @@ -39,6 +39,12 @@ import type { RuleParams } from '../../application/rule/types'; import { ruleDomainSchema } from '../../application/rule/schemas'; import { RULE_SAVED_OBJECT_TYPE } from '../../saved_objects'; +/** + * Updating too many rules in parallel can cause the denial of service of the + * Elasticsearch cluster. + */ +const MAX_RULES_TO_UPDATE_IN_PARALLEL = 50; + const getShouldScheduleTask = async ( context: RulesClientContext, scheduledTaskId: string | null | undefined @@ -183,114 +189,120 @@ const bulkEnableRulesWithOCC = async ( }); } - await pMap(rulesFinderRules, async (rule) => { - try { - if (scheduleValidationError) { - throw Error(scheduleValidationError); - } - if (rule.attributes.actions.length) { - try { - await context.actionsAuthorization.ensureAuthorized({ operation: 'execute' }); - } catch (error) { - throw Error(`Rule not authorized for bulk enable - ${error.message}`); + await pMap( + rulesFinderRules, + async (rule) => { + try { + if (scheduleValidationError) { + throw Error(scheduleValidationError); + } + if (rule.attributes.actions.length) { + try { + await context.actionsAuthorization.ensureAuthorized({ operation: 'execute' }); + } catch (error) { + throw Error(`Rule not authorized for bulk enable - ${error.message}`); + } + } + if (rule.attributes.name) { + ruleNameToRuleIdMapping[rule.id] = rule.attributes.name; } - } - if (rule.attributes.name) { - ruleNameToRuleIdMapping[rule.id] = rule.attributes.name; - } - const migratedActions = await migrateLegacyActions(context, { - ruleId: rule.id, - actions: rule.attributes.actions, - references: rule.references, - attributes: rule.attributes, - }); - - const updatedAttributes = updateMeta(context, { - ...rule.attributes, - ...(!rule.attributes.apiKey && - (await createNewAPIKeySet(context, { - id: rule.attributes.alertTypeId, - ruleName: rule.attributes.name, - username, - shouldUpdateApiKey: true, - }))), - ...(migratedActions.hasLegacyActions - ? { - actions: migratedActions.resultedActions, - throttle: undefined, - notifyWhen: undefined, - } - : {}), - enabled: true, - updatedBy: username, - updatedAt: new Date().toISOString(), - executionStatus: { - status: 'pending', - lastDuration: 0, - lastExecutionDate: new Date().toISOString(), - error: null, - warning: null, - }, - scheduledTaskId: rule.id, - }); - - const shouldScheduleTask = await getShouldScheduleTask( - context, - rule.attributes.scheduledTaskId - ); - - if (shouldScheduleTask) { - tasksToSchedule.push({ - id: rule.id, - taskType: `alerting:${rule.attributes.alertTypeId}`, - schedule: rule.attributes.schedule, - params: { - alertId: rule.id, - spaceId: context.spaceId, - consumer: rule.attributes.consumer, + const migratedActions = await migrateLegacyActions(context, { + ruleId: rule.id, + actions: rule.attributes.actions, + references: rule.references, + attributes: rule.attributes, + }); + + const updatedAttributes = updateMeta(context, { + ...rule.attributes, + ...(!rule.attributes.apiKey && + (await createNewAPIKeySet(context, { + id: rule.attributes.alertTypeId, + ruleName: rule.attributes.name, + username, + shouldUpdateApiKey: true, + }))), + ...(migratedActions.hasLegacyActions + ? { + actions: migratedActions.resultedActions, + throttle: undefined, + notifyWhen: undefined, + } + : {}), + enabled: true, + updatedBy: username, + updatedAt: new Date().toISOString(), + executionStatus: { + status: 'pending', + lastDuration: 0, + lastExecutionDate: new Date().toISOString(), + error: null, + warning: null, }, - state: { - previousStartedAt: null, - alertTypeState: {}, - alertInstances: {}, + scheduledTaskId: rule.id, + }); + + const shouldScheduleTask = await getShouldScheduleTask( + context, + rule.attributes.scheduledTaskId + ); + + if (shouldScheduleTask) { + tasksToSchedule.push({ + id: rule.id, + taskType: `alerting:${rule.attributes.alertTypeId}`, + schedule: rule.attributes.schedule, + params: { + alertId: rule.id, + spaceId: context.spaceId, + consumer: rule.attributes.consumer, + }, + state: { + previousStartedAt: null, + alertTypeState: {}, + alertInstances: {}, + }, + scope: ['alerting'], + enabled: false, // we create the task as disabled, taskManager.bulkEnable will enable them by randomising their schedule datetime + }); + } + + rulesToEnable.push({ + ...rule, + attributes: updatedAttributes, + ...(migratedActions.hasLegacyActions + ? { references: migratedActions.resultedReferences } + : {}), + }); + + context.auditLogger?.log( + ruleAuditEvent({ + action: RuleAuditAction.ENABLE, + outcome: 'unknown', + savedObject: { type: RULE_SAVED_OBJECT_TYPE, id: rule.id }, + }) + ); + } catch (error) { + errors.push({ + message: error.message, + rule: { + id: rule.id, + name: rule.attributes?.name, }, - scope: ['alerting'], - enabled: false, // we create the task as disabled, taskManager.bulkEnable will enable them by randomising their schedule datetime }); + context.auditLogger?.log( + ruleAuditEvent({ + action: RuleAuditAction.ENABLE, + error, + }) + ); } - - rulesToEnable.push({ - ...rule, - attributes: updatedAttributes, - ...(migratedActions.hasLegacyActions - ? { references: migratedActions.resultedReferences } - : {}), - }); - - context.auditLogger?.log( - ruleAuditEvent({ - action: RuleAuditAction.ENABLE, - outcome: 'unknown', - savedObject: { type: RULE_SAVED_OBJECT_TYPE, id: rule.id }, - }) - ); - } catch (error) { - errors.push({ - message: error.message, - rule: { - id: rule.id, - name: rule.attributes?.name, - }, - }); - context.auditLogger?.log( - ruleAuditEvent({ - action: RuleAuditAction.ENABLE, - error, - }) - ); + }, + { + concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, } - }); + ); } ); diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.mock.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.mock.ts index fa4fcefbcad1a..0a7cd906dc4bb 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.mock.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.mock.ts @@ -8,7 +8,7 @@ import type { PerformBulkActionRequestBody } from './bulk_actions_route.gen'; import { BulkActionEditTypeEnum, BulkActionTypeEnum } from './bulk_actions_route.gen'; -export const getPerformBulkActionSchemaMock = (): PerformBulkActionRequestBody => ({ +export const getBulkDisableRuleActionSchemaMock = (): PerformBulkActionRequestBody => ({ query: '', ids: undefined, action: BulkActionTypeEnum.disable, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts index aa3da4e614f14..82a40cbf71a41 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts @@ -31,7 +31,7 @@ import { PREBUILT_RULES_URL, } from '../../../../../common/api/detection_engine/prebuilt_rules'; import { - getPerformBulkActionSchemaMock, + getBulkDisableRuleActionSchemaMock, getPerformBulkActionEditSchemaMock, } from '../../../../../common/api/detection_engine/rule_management/mocks'; @@ -131,11 +131,11 @@ export const getPatchBulkRequest = () => body: [getCreateRulesSchemaMock()], }); -export const getBulkActionRequest = () => +export const getBulkDisableRuleActionRequest = () => requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, - body: getPerformBulkActionSchemaMock(), + body: getBulkDisableRuleActionSchemaMock(), }); export const getBulkActionEditRequest = () => diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_actions_response.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_actions_response.ts new file mode 100644 index 0000000000000..5485c06cc4a27 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_actions_response.ts @@ -0,0 +1,145 @@ +/* + * 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 type { BulkActionSkipResult } from '@kbn/alerting-plugin/common'; +import type { BulkOperationError } from '@kbn/alerting-plugin/server'; +import type { IKibanaResponse, KibanaResponseFactory } from '@kbn/core/server'; +import { transformError } from '@kbn/securitysolution-es-utils'; +import { truncate } from 'lodash'; +import type { + BulkEditActionResults, + BulkEditActionSummary, + NormalizedRuleError, + RuleDetailsInError, +} from '../../../../../../../common/api/detection_engine'; +import type { BulkEditActionResponse } from '../../../../../../../common/api/detection_engine/rule_management'; +import type { BulkActionsDryRunErrCode } from '../../../../../../../common/constants'; +import type { PromisePoolError } from '../../../../../../utils/promise_pool'; +import type { RuleAlertType } from '../../../../rule_schema'; +import type { DryRunError } from '../../../logic/bulk_actions/dry_run'; +import { internalRuleToAPIResponse } from '../../../normalization/rule_converters'; + +const MAX_ERROR_MESSAGE_LENGTH = 1000; + +export type BulkActionError = + | PromisePoolError + | PromisePoolError + | BulkOperationError; + +export const buildBulkResponse = ( + response: KibanaResponseFactory, + { + isDryRun = false, + errors = [], + updated = [], + created = [], + deleted = [], + skipped = [], + }: { + isDryRun?: boolean; + errors?: BulkActionError[]; + updated?: RuleAlertType[]; + created?: RuleAlertType[]; + deleted?: RuleAlertType[]; + skipped?: BulkActionSkipResult[]; + } +): IKibanaResponse => { + const numSucceeded = updated.length + created.length + deleted.length; + const numSkipped = skipped.length; + const numFailed = errors.length; + + const summary: BulkEditActionSummary = { + failed: numFailed, + succeeded: numSucceeded, + skipped: numSkipped, + total: numSucceeded + numFailed + numSkipped, + }; + + // if response is for dry_run, empty lists of rules returned, as rules are not actually updated and stored within ES + // thus, it's impossible to return reliably updated/duplicated/deleted rules + const results: BulkEditActionResults = isDryRun + ? { + updated: [], + created: [], + deleted: [], + skipped: [], + } + : { + updated: updated.map((rule) => internalRuleToAPIResponse(rule)), + created: created.map((rule) => internalRuleToAPIResponse(rule)), + deleted: deleted.map((rule) => internalRuleToAPIResponse(rule)), + skipped, + }; + + if (numFailed > 0) { + return response.custom({ + headers: { 'content-type': 'application/json' }, + body: { + message: summary.succeeded > 0 ? 'Bulk edit partially failed' : 'Bulk edit failed', + status_code: 500, + attributes: { + errors: normalizeErrorResponse(errors), + results, + summary, + }, + }, + statusCode: 500, + }); + } + + const responseBody: BulkEditActionResponse = { + success: true, + rules_count: summary.total, + attributes: { results, summary }, + }; + + return response.ok({ body: responseBody }); +}; + +export const normalizeErrorResponse = (errors: BulkActionError[]): NormalizedRuleError[] => { + const errorsMap = new Map(); + + errors.forEach((errorObj) => { + let message: string; + let statusCode: number = 500; + let errorCode: BulkActionsDryRunErrCode | undefined; + let rule: RuleDetailsInError; + // transform different error types (PromisePoolError | PromisePoolError | BulkOperationError) + // to one common used in NormalizedRuleError + if ('rule' in errorObj) { + rule = errorObj.rule; + message = errorObj.message; + } else { + const { error, item } = errorObj; + const transformedError = + error instanceof Error + ? transformError(error) + : { message: String(error), statusCode: 500 }; + + errorCode = (error as DryRunError)?.errorCode; + message = transformedError.message; + statusCode = transformedError.statusCode; + // The promise pool item is either a rule ID string or a rule object. We have + // string IDs when we fail to fetch rules. Rule objects come from other + // situations when we found a rule but failed somewhere else. + rule = typeof item === 'string' ? { id: item } : { id: item.id, name: item.name }; + } + + if (errorsMap.has(message)) { + errorsMap.get(message)?.rules.push(rule); + } else { + errorsMap.set(message, { + message: truncate(message, { length: MAX_ERROR_MESSAGE_LENGTH }), + status_code: statusCode, + err_code: errorCode, + rules: [rule], + }); + } + }); + + return Array.from(errorsMap, ([_, normalizedError]) => normalizedError); +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_enable_disable_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_enable_disable_rules.ts new file mode 100644 index 0000000000000..670e72d8663d4 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/bulk_enable_disable_rules.ts @@ -0,0 +1,105 @@ +/* + * 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 type { RulesClient } from '@kbn/alerting-plugin/server'; +import { invariant } from '../../../../../../../common/utils/invariant'; +import type { PromisePoolError } from '../../../../../../utils/promise_pool'; +import type { MlAuthz } from '../../../../../machine_learning/authz'; +import type { RuleAlertType } from '../../../../rule_schema'; +import { validateBulkEnableRule } from '../../../logic/bulk_actions/validations'; + +interface BulkEnableDisableRulesArgs { + rules: RuleAlertType[]; + action: 'enable' | 'disable'; + isDryRun?: boolean; + rulesClient: RulesClient; + mlAuthz: MlAuthz; +} + +interface BulkEnableDisableRulesOutcome { + updatedRules: RuleAlertType[]; + errors: Array>; +} + +export const bulkEnableDisableRules = async ({ + rules, + isDryRun, + rulesClient, + action: operation, + mlAuthz, +}: BulkEnableDisableRulesArgs): Promise => { + const errors: Array> = []; + const updatedRules: RuleAlertType[] = []; + + // In the first step, we validate if the rules can be enabled + const validatedRules: RuleAlertType[] = []; + await Promise.all( + rules.map(async (rule) => { + try { + await validateBulkEnableRule({ mlAuthz, rule }); + validatedRules.push(rule); + } catch (error) { + errors.push({ item: rule, error }); + } + }) + ); + + if (isDryRun || validatedRules.length === 0) { + return { + updatedRules: validatedRules, + errors, + }; + } + + // Then if it's not a dry run, we enable the rules that passed the validation + const ruleIds = validatedRules.map(({ id }) => id); + + // Perform actual update using the rulesClient + const results = + operation === 'enable' + ? await rulesClient.bulkEnableRules({ ids: ruleIds }) + : await rulesClient.bulkDisableRules({ ids: ruleIds }); + + const failedRuleIds = results.errors.map(({ rule: { id } }) => id); + + // We need to go through the original rules array and update rules that were + // not returned as failed from the bulkEnableRules. We cannot rely on the + // results from the bulkEnableRules because the response is not consistent. + // Some rules might be missing in the response if they were skipped by + // Alerting Framework. See this issue for more details: + // https://github.com/elastic/kibana/issues/181050 + updatedRules.push( + ...rules.flatMap((rule) => { + if (failedRuleIds.includes(rule.id)) { + return []; + } + return { + ...rule, + enabled: operation === 'enable', + }; + }) + ); + + // Rule objects returned from the bulkEnableRules are not + // compatible with the response type. So we need to map them to + // the original rules and update the enabled field + errors.push( + ...results.errors.map(({ rule: { id }, message }) => { + const rule = rules.find((r) => r.id === id); + invariant(rule != null, 'Unexpected rule id'); + return { + item: rule, + error: new Error(message), + }; + }) + ); + + return { + updatedRules, + errors, + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/fetch_rules_by_query_or_ids.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/fetch_rules_by_query_or_ids.ts new file mode 100644 index 0000000000000..2a07ecc95509b --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/fetch_rules_by_query_or_ids.ts @@ -0,0 +1,64 @@ +/* + * 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 type { RulesClient } from '@kbn/alerting-plugin/server'; +import { BadRequestError } from '@kbn/securitysolution-es-utils'; +import { MAX_RULES_TO_UPDATE_IN_PARALLEL } from '../../../../../../../common/constants'; +import type { PromisePoolOutcome } from '../../../../../../utils/promise_pool'; +import { initPromisePool } from '../../../../../../utils/promise_pool'; +import type { RuleAlertType } from '../../../../rule_schema'; +import { readRules } from '../../../logic/crud/read_rules'; +import { findRules } from '../../../logic/search/find_rules'; +import { MAX_RULES_TO_PROCESS_TOTAL } from './route'; + +export const fetchRulesByQueryOrIds = async ({ + query, + ids, + rulesClient, + abortSignal, +}: { + query: string | undefined; + ids: string[] | undefined; + rulesClient: RulesClient; + abortSignal: AbortSignal; +}): Promise> => { + if (ids) { + return initPromisePool({ + concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, + items: ids, + executor: async (id: string) => { + const rule = await readRules({ id, rulesClient, ruleId: undefined }); + if (rule == null) { + throw Error('Rule not found'); + } + return rule; + }, + abortSignal, + }); + } + + const { data, total } = await findRules({ + rulesClient, + perPage: MAX_RULES_TO_PROCESS_TOTAL, + filter: query, + page: undefined, + sortField: undefined, + sortOrder: undefined, + fields: undefined, + }); + + if (total > MAX_RULES_TO_PROCESS_TOTAL) { + throw new BadRequestError( + `More than ${MAX_RULES_TO_PROCESS_TOTAL} rules matched the filter query. Try to narrow it down.` + ); + } + + return { + results: data.map((rule) => ({ item: rule.id, result: rule })), + errors: [], + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.test.ts index cd01a251a3c75..576ba1376ba3c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.test.ts @@ -13,7 +13,7 @@ import { mlServicesMock } from '../../../../../machine_learning/mocks'; import { buildMlAuthz } from '../../../../../machine_learning/authz'; import { getEmptyFindResult, - getBulkActionRequest, + getBulkDisableRuleActionRequest, getBulkActionEditRequest, getFindResultWithSingleHit, getFindResultWithMultiHits, @@ -22,7 +22,7 @@ import { requestContextMock, serverMock, requestMock } from '../../../../routes/ import { performBulkActionRoute } from './route'; import { getPerformBulkActionEditSchemaMock, - getPerformBulkActionSchemaMock, + getBulkDisableRuleActionSchemaMock, } from '../../../../../../../common/api/detection_engine/rule_management/mocks'; import { loggingSystemMock } from '@kbn/core/server/mocks'; import { readRules } from '../../../logic/crud/read_rules'; @@ -45,13 +45,18 @@ describe('Perform bulk action route', () => { ml = mlServicesMock.createSetupContract(); clients.rulesClient.find.mockResolvedValue(getFindResultWithSingleHit()); + clients.rulesClient.bulkDisableRules.mockResolvedValue({ + rules: [mockRule], + errors: [], + total: 1, + }); performBulkActionRoute(server.router, ml, logger); }); describe('status codes', () => { it('returns 200 when performing bulk action with all dependencies present', async () => { const response = await server.inject( - getBulkActionRequest(), + getBulkDisableRuleActionRequest(), requestContextMock.convertContext(context) ); expect(response.status).toEqual(200); @@ -73,7 +78,7 @@ describe('Perform bulk action route', () => { it("returns 200 when provided filter query doesn't match any rules", async () => { clients.rulesClient.find.mockResolvedValue(getEmptyFindResult()); const response = await server.inject( - getBulkActionRequest(), + getBulkDisableRuleActionRequest(), requestContextMock.convertContext(context) ); expect(response.status).toEqual(200); @@ -97,7 +102,7 @@ describe('Perform bulk action route', () => { getFindResultWithMultiHits({ data: [], total: Infinity }) ); const response = await server.inject( - getBulkActionRequest(), + getBulkDisableRuleActionRequest(), requestContextMock.convertContext(context) ); expect(response.status).toEqual(400); @@ -109,12 +114,22 @@ describe('Perform bulk action route', () => { }); describe('rules execution failures', () => { - it('returns error if disable rule throws error', async () => { - clients.rulesClient.disable.mockImplementation(async () => { - throw new Error('Test error'); + it('returns an error when rulesClient.bulkDisableRules fails', async () => { + clients.rulesClient.bulkDisableRules.mockResolvedValue({ + rules: [], + errors: [ + { + message: 'Test error', + rule: { + id: mockRule.id, + name: mockRule.name, + }, + }, + ], + total: 1, }); const response = await server.inject( - getBulkActionRequest(), + getBulkDisableRuleActionRequest(), requestContextMock.convertContext(context) ); expect(response.status).toEqual(500); @@ -152,7 +167,7 @@ describe('Perform bulk action route', () => { .mockResolvedValue({ valid: false, message: 'mocked validation message' }), }); const response = await server.inject( - getBulkActionRequest(), + getBulkDisableRuleActionRequest(), requestContextMock.convertContext(context) ); @@ -192,7 +207,7 @@ describe('Perform bulk action route', () => { .mockResolvedValue({ valid: false, message: 'mocked validation message' }), }); const response = await server.inject( - { ...getBulkActionRequest(), query: { dry_run: 'true' } }, + { ...getBulkDisableRuleActionRequest(), query: { dry_run: 'true' } }, requestContextMock.convertContext(context) ); @@ -294,11 +309,21 @@ describe('Perform bulk action route', () => { }); it('return error message limited to length of 1000, to prevent large response size', async () => { - clients.rulesClient.disable.mockImplementation(async () => { - throw new Error('a'.repeat(1_300)); + clients.rulesClient.bulkDisableRules.mockResolvedValue({ + rules: [], + errors: [ + { + message: 'a'.repeat(1_300), + rule: { + id: mockRule.id, + name: mockRule.name, + }, + }, + ], + total: 1, }); const response = await server.inject( - getBulkActionRequest(), + getBulkDisableRuleActionRequest(), requestContextMock.convertContext(context) ); expect(response.status).toEqual(500); @@ -314,7 +339,7 @@ describe('Perform bulk action route', () => { method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, body: { - ...getPerformBulkActionSchemaMock(), + ...getBulkDisableRuleActionSchemaMock(), ids: [mockRule.id, 'failed-mock-id'], query: undefined, }, @@ -482,7 +507,7 @@ describe('Perform bulk action route', () => { const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, - body: { ...getPerformBulkActionSchemaMock(), action: undefined }, + body: { ...getBulkDisableRuleActionSchemaMock(), action: undefined }, }); const result = server.validate(request); expect(result.badRequest).toHaveBeenCalledWith( @@ -494,7 +519,7 @@ describe('Perform bulk action route', () => { const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, - body: { ...getPerformBulkActionSchemaMock(), action: 'unknown' }, + body: { ...getBulkDisableRuleActionSchemaMock(), action: 'unknown' }, }); const result = server.validate(request); expect(result.badRequest).toHaveBeenCalledWith( @@ -506,7 +531,7 @@ describe('Perform bulk action route', () => { const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, - body: { ...getPerformBulkActionSchemaMock(), query: undefined }, + body: { ...getBulkDisableRuleActionSchemaMock(), query: undefined }, }); const result = server.validate(request); @@ -517,7 +542,7 @@ describe('Perform bulk action route', () => { const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, - body: getPerformBulkActionSchemaMock(), + body: getBulkDisableRuleActionSchemaMock(), }); const result = server.validate(request); @@ -528,7 +553,7 @@ describe('Perform bulk action route', () => { const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, - body: { ...getPerformBulkActionSchemaMock(), ids: 'test fake' }, + body: { ...getBulkDisableRuleActionSchemaMock(), ids: 'test fake' }, }); const result = server.validate(request); expect(result.badRequest).toHaveBeenCalledWith( @@ -541,7 +566,7 @@ describe('Perform bulk action route', () => { method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, body: { - ...getPerformBulkActionSchemaMock(), + ...getBulkDisableRuleActionSchemaMock(), query: undefined, ids: Array.from({ length: 101 }).map(() => 'fake-id'), }, @@ -558,7 +583,7 @@ describe('Perform bulk action route', () => { method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, body: { - ...getPerformBulkActionSchemaMock(), + ...getBulkDisableRuleActionSchemaMock(), query: '', ids: ['fake-id'], }, @@ -576,7 +601,7 @@ describe('Perform bulk action route', () => { const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_BULK_ACTION, - body: { ...getPerformBulkActionSchemaMock(), ids: [] }, + body: { ...getBulkDisableRuleActionSchemaMock(), ids: [] }, }); const result = server.validate(request); expect(result.badRequest).toHaveBeenCalledWith( @@ -620,9 +645,14 @@ describe('Perform bulk action route', () => { total: rulesNumber, }) ); + clients.rulesClient.bulkDisableRules.mockResolvedValue({ + rules: Array.from({ length: rulesNumber }).map(() => mockRule), + errors: [], + total: rulesNumber, + }); const response = await server.inject( - getBulkActionRequest(), + getBulkDisableRuleActionRequest(), requestContextMock.convertContext(context) ); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts index ef06f8f004c98..8dc0a5ec651bb 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts @@ -5,231 +5,46 @@ * 2.0. */ -import { truncate } from 'lodash'; -import { BadRequestError, transformError } from '@kbn/securitysolution-es-utils'; -import type { IKibanaResponse, KibanaResponseFactory, Logger } from '@kbn/core/server'; - -import type { RulesClient, BulkOperationError } from '@kbn/alerting-plugin/server'; -import type { BulkActionSkipResult } from '@kbn/alerting-plugin/common'; +import type { IKibanaResponse, Logger } from '@kbn/core/server'; import { AbortError } from '@kbn/kibana-utils-plugin/common'; -import type { RuleAlertType } from '../../../../rule_schema'; -import type { BulkActionsDryRunErrCode } from '../../../../../../../common/constants'; -import { - DETECTION_ENGINE_RULES_BULK_ACTION, - MAX_RULES_TO_UPDATE_IN_PARALLEL, - RULES_TABLE_MAX_PAGE_SIZE, -} from '../../../../../../../common/constants'; -import type { - BulkEditActionResponse, - PerformBulkActionResponse, -} from '../../../../../../../common/api/detection_engine/rule_management'; +import { transformError } from '@kbn/securitysolution-es-utils'; +import type { PerformBulkActionResponse } from '../../../../../../../common/api/detection_engine/rule_management'; import { BulkActionTypeEnum, PerformBulkActionRequestBody, PerformBulkActionRequestQuery, } from '../../../../../../../common/api/detection_engine/rule_management'; -import type { - NormalizedRuleError, - RuleDetailsInError, - BulkEditActionResults, - BulkEditActionSummary, -} from '../../../../../../../common/api/detection_engine'; +import { + DETECTION_ENGINE_RULES_BULK_ACTION, + MAX_RULES_TO_UPDATE_IN_PARALLEL, + RULES_TABLE_MAX_PAGE_SIZE, +} from '../../../../../../../common/constants'; import type { SetupPlugins } from '../../../../../../plugin'; import type { SecuritySolutionPluginRouter } from '../../../../../../types'; import { buildRouteValidationWithZod } from '../../../../../../utils/build_validation/route_validation'; -import { routeLimitedConcurrencyTag } from '../../../../../../utils/route_limited_concurrency_tag'; -import type { PromisePoolError, PromisePoolOutcome } from '../../../../../../utils/promise_pool'; import { initPromisePool } from '../../../../../../utils/promise_pool'; +import { routeLimitedConcurrencyTag } from '../../../../../../utils/route_limited_concurrency_tag'; import { buildMlAuthz } from '../../../../../machine_learning/authz'; -import { deleteRules } from '../../../logic/crud/delete_rules'; -import { duplicateRule } from '../../../logic/actions/duplicate_rule'; -import { duplicateExceptions } from '../../../logic/actions/duplicate_exceptions'; -import { findRules } from '../../../logic/search/find_rules'; -import { readRules } from '../../../logic/crud/read_rules'; -import { getExportByObjectIds } from '../../../logic/export/get_export_by_object_ids'; import { buildSiemResponse } from '../../../../routes/utils'; -import { internalRuleToAPIResponse } from '../../../normalization/rule_converters'; +import type { RuleAlertType } from '../../../../rule_schema'; +import { duplicateExceptions } from '../../../logic/actions/duplicate_exceptions'; +import { duplicateRule } from '../../../logic/actions/duplicate_rule'; import { bulkEditRules } from '../../../logic/bulk_actions/bulk_edit_rules'; -import type { DryRunError } from '../../../logic/bulk_actions/dry_run'; import { - validateBulkEnableRule, - validateBulkDisableRule, - validateBulkDuplicateRule, dryRunValidateBulkEditRule, + validateBulkDuplicateRule, } from '../../../logic/bulk_actions/validations'; +import { deleteRules } from '../../../logic/crud/delete_rules'; +import { getExportByObjectIds } from '../../../logic/export/get_export_by_object_ids'; import { RULE_MANAGEMENT_BULK_ACTION_SOCKET_TIMEOUT_MS } from '../../timeouts'; +import type { BulkActionError } from './bulk_actions_response'; +import { buildBulkResponse } from './bulk_actions_response'; +import { bulkEnableDisableRules } from './bulk_enable_disable_rules'; +import { fetchRulesByQueryOrIds } from './fetch_rules_by_query_or_ids'; -const MAX_RULES_TO_PROCESS_TOTAL = 10000; -const MAX_ERROR_MESSAGE_LENGTH = 1000; +export const MAX_RULES_TO_PROCESS_TOTAL = 10000; const MAX_ROUTE_CONCURRENCY = 5; -export type BulkActionError = - | PromisePoolError - | PromisePoolError - | BulkOperationError; - -const normalizeErrorResponse = (errors: BulkActionError[]): NormalizedRuleError[] => { - const errorsMap = new Map(); - - errors.forEach((errorObj) => { - let message: string; - let statusCode: number = 500; - let errorCode: BulkActionsDryRunErrCode | undefined; - let rule: RuleDetailsInError; - // transform different error types (PromisePoolError | PromisePoolError | BulkOperationError) - // to one common used in NormalizedRuleError - if ('rule' in errorObj) { - rule = errorObj.rule; - message = errorObj.message; - } else { - const { error, item } = errorObj; - const transformedError = - error instanceof Error - ? transformError(error) - : { message: String(error), statusCode: 500 }; - - errorCode = (error as DryRunError)?.errorCode; - message = transformedError.message; - statusCode = transformedError.statusCode; - // The promise pool item is either a rule ID string or a rule object. We have - // string IDs when we fail to fetch rules. Rule objects come from other - // situations when we found a rule but failed somewhere else. - rule = typeof item === 'string' ? { id: item } : { id: item.id, name: item.name }; - } - - if (errorsMap.has(message)) { - errorsMap.get(message)?.rules.push(rule); - } else { - errorsMap.set(message, { - message: truncate(message, { length: MAX_ERROR_MESSAGE_LENGTH }), - status_code: statusCode, - err_code: errorCode, - rules: [rule], - }); - } - }); - - return Array.from(errorsMap, ([_, normalizedError]) => normalizedError); -}; - -const buildBulkResponse = ( - response: KibanaResponseFactory, - { - isDryRun = false, - errors = [], - updated = [], - created = [], - deleted = [], - skipped = [], - }: { - isDryRun?: boolean; - errors?: BulkActionError[]; - updated?: RuleAlertType[]; - created?: RuleAlertType[]; - deleted?: RuleAlertType[]; - skipped?: BulkActionSkipResult[]; - } -): IKibanaResponse => { - const numSucceeded = updated.length + created.length + deleted.length; - const numSkipped = skipped.length; - const numFailed = errors.length; - - const summary: BulkEditActionSummary = { - failed: numFailed, - succeeded: numSucceeded, - skipped: numSkipped, - total: numSucceeded + numFailed + numSkipped, - }; - - // if response is for dry_run, empty lists of rules returned, as rules are not actually updated and stored within ES - // thus, it's impossible to return reliably updated/duplicated/deleted rules - const results: BulkEditActionResults = isDryRun - ? { - updated: [], - created: [], - deleted: [], - skipped: [], - } - : { - updated: updated.map((rule) => internalRuleToAPIResponse(rule)), - created: created.map((rule) => internalRuleToAPIResponse(rule)), - deleted: deleted.map((rule) => internalRuleToAPIResponse(rule)), - skipped, - }; - - if (numFailed > 0) { - return response.custom({ - headers: { 'content-type': 'application/json' }, - body: { - message: summary.succeeded > 0 ? 'Bulk edit partially failed' : 'Bulk edit failed', - status_code: 500, - attributes: { - errors: normalizeErrorResponse(errors), - results, - summary, - }, - }, - statusCode: 500, - }); - } - - const responseBody: BulkEditActionResponse = { - success: true, - rules_count: summary.total, - attributes: { results, summary }, - }; - - return response.ok({ body: responseBody }); -}; - -const fetchRulesByQueryOrIds = async ({ - query, - ids, - rulesClient, - abortSignal, -}: { - query: string | undefined; - ids: string[] | undefined; - rulesClient: RulesClient; - abortSignal: AbortSignal; -}): Promise> => { - if (ids) { - return initPromisePool({ - concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, - items: ids, - executor: async (id: string) => { - const rule = await readRules({ id, rulesClient, ruleId: undefined }); - if (rule == null) { - throw Error('Rule not found'); - } - return rule; - }, - abortSignal, - }); - } - - const { data, total } = await findRules({ - rulesClient, - perPage: MAX_RULES_TO_PROCESS_TOTAL, - filter: query, - page: undefined, - sortField: undefined, - sortOrder: undefined, - fields: undefined, - }); - - if (total > MAX_RULES_TO_PROCESS_TOTAL) { - throw new BadRequestError( - `More than ${MAX_RULES_TO_PROCESS_TOTAL} rules matched the filter query. Try to narrow it down.` - ); - } - - return { - results: data.map((rule) => ({ item: rule.id, result: rule })), - errors: [], - }; -}; - export const performBulkActionRoute = ( router: SecuritySolutionPluginRouter, ml: SetupPlugins['ml'], @@ -256,6 +71,7 @@ export const performBulkActionRoute = ( }, }, }, + async (context, request, response): Promise> => { const { body } = request; const siemResponse = buildSiemResponse(response); @@ -302,9 +118,9 @@ export const performBulkActionRoute = ( const rulesClient = ctx.alerting.getRulesClient(); const exceptionsClient = ctx.lists?.getExceptionListClient(); const savedObjectsClient = ctx.core.savedObjects.client; - const actionsClient = (await ctx.actions)?.getActionsClient(); + const actionsClient = ctx.actions.getActionsClient(); - const { getExporter, getClient } = (await ctx.core).savedObjects; + const { getExporter, getClient } = ctx.core.savedObjects; const client = getClient({ includedHiddenTypes: ['action'] }); const exporter = getExporter(client); @@ -344,69 +160,38 @@ export const performBulkActionRoute = ( }); const rules = fetchRulesOutcome.results.map(({ result }) => result); - let bulkActionOutcome: PromisePoolOutcome; + const errors: BulkActionError[] = [...fetchRulesOutcome.errors]; let updated: RuleAlertType[] = []; let created: RuleAlertType[] = []; let deleted: RuleAlertType[] = []; switch (body.action) { - case BulkActionTypeEnum.enable: - bulkActionOutcome = await initPromisePool({ - concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, - items: rules, - executor: async (rule) => { - await validateBulkEnableRule({ mlAuthz, rule }); - - // during dry run only validation is getting performed and rule is not saved in ES, thus return early - if (isDryRun) { - return rule; - } - - if (!rule.enabled) { - await rulesClient.enable({ id: rule.id }); - } - - return { - ...rule, - enabled: true, - }; - }, - abortSignal: abortController.signal, + case BulkActionTypeEnum.enable: { + const { updatedRules, errors: bulkActionErrors } = await bulkEnableDisableRules({ + rules, + isDryRun, + rulesClient, + action: 'enable', + mlAuthz, }); - updated = bulkActionOutcome.results - .map(({ result }) => result) - .filter((rule): rule is RuleAlertType => rule !== null); + errors.push(...bulkActionErrors); + updated = updatedRules; break; - case BulkActionTypeEnum.disable: - bulkActionOutcome = await initPromisePool({ - concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, - items: rules, - executor: async (rule) => { - await validateBulkDisableRule({ mlAuthz, rule }); - - // during dry run only validation is getting performed and rule is not saved in ES, thus return early - if (isDryRun) { - return rule; - } - - if (rule.enabled) { - await rulesClient.disable({ id: rule.id }); - } - - return { - ...rule, - enabled: false, - }; - }, - abortSignal: abortController.signal, + } + case BulkActionTypeEnum.disable: { + const { updatedRules, errors: bulkActionErrors } = await bulkEnableDisableRules({ + rules, + isDryRun, + rulesClient, + action: 'disable', + mlAuthz, }); - updated = bulkActionOutcome.results - .map(({ result }) => result) - .filter((rule): rule is RuleAlertType => rule !== null); + errors.push(...bulkActionErrors); + updated = updatedRules; break; - - case BulkActionTypeEnum.delete: - bulkActionOutcome = await initPromisePool({ + } + case BulkActionTypeEnum.delete: { + const bulkActionOutcome = await initPromisePool({ concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, items: rules, executor: async (rule) => { @@ -424,13 +209,14 @@ export const performBulkActionRoute = ( }, abortSignal: abortController.signal, }); + errors.push(...bulkActionOutcome.errors); deleted = bulkActionOutcome.results .map(({ item }) => item) .filter((rule): rule is RuleAlertType => rule !== null); break; - - case BulkActionTypeEnum.duplicate: - bulkActionOutcome = await initPromisePool({ + } + case BulkActionTypeEnum.duplicate: { + const bulkActionOutcome = await initPromisePool({ concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, items: rules, executor: async (rule) => { @@ -483,12 +269,13 @@ export const performBulkActionRoute = ( }, abortSignal: abortController.signal, }); + errors.push(...bulkActionOutcome.errors); created = bulkActionOutcome.results .map(({ result }) => result) .filter((rule): rule is RuleAlertType => rule !== null); break; - - case BulkActionTypeEnum.export: + } + case BulkActionTypeEnum.export: { const exported = await getExportByObjectIds( rulesClient, exceptionsClient, @@ -507,11 +294,12 @@ export const performBulkActionRoute = ( }, body: responseBody, }); + } // will be processed only when isDryRun === true // during dry run only validation is getting performed and rule is not saved in ES - case BulkActionTypeEnum.edit: - bulkActionOutcome = await initPromisePool({ + case BulkActionTypeEnum.edit: { + const bulkActionOutcome = await initPromisePool({ concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, items: rules, executor: async (rule) => { @@ -521,9 +309,12 @@ export const performBulkActionRoute = ( }, abortSignal: abortController.signal, }); + errors.push(...bulkActionOutcome.errors); updated = bulkActionOutcome.results .map(({ result }) => result) .filter((rule): rule is RuleAlertType => rule !== null); + break; + } } if (abortController.signal.aborted === true) { @@ -534,7 +325,7 @@ export const performBulkActionRoute = ( updated, deleted, created, - errors: [...fetchRulesOutcome.errors, ...bulkActionOutcome.errors], + errors, isDryRun, }); } catch (err) { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/bulk_actions/validations.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/bulk_actions/validations.ts index 74fc6f91d37c4..806c90e41ac12 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/bulk_actions/validations.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/bulk_actions/validations.ts @@ -55,9 +55,7 @@ const throwMlAuthError = (mlAuthz: MlAuthz, ruleType: RuleType) => * @param params - {@link BulkActionsValidationArgs} */ export const validateBulkEnableRule = async ({ rule, mlAuthz }: BulkActionsValidationArgs) => { - if (!rule.enabled) { - await throwMlAuthError(mlAuthz, rule.params.type); - } + await throwMlAuthError(mlAuthz, rule.params.type); }; /** @@ -65,9 +63,7 @@ export const validateBulkEnableRule = async ({ rule, mlAuthz }: BulkActionsValid * @param params - {@link BulkActionsValidationArgs} */ export const validateBulkDisableRule = async ({ rule, mlAuthz }: BulkActionsValidationArgs) => { - if (rule.enabled) { - await throwMlAuthError(mlAuthz, rule.params.type); - } + await throwMlAuthError(mlAuthz, rule.params.type); }; /** diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_ess.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_ess.ts index 83a7db27fe3fe..a70df8eb58335 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_ess.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_ess.ts @@ -6,57 +6,38 @@ */ import { Rule } from '@kbn/alerting-plugin/common'; -import { BaseRuleParams } from '@kbn/security-solution-plugin/server/lib/detection_engine/rule_schema'; import expect from '@kbn/expect'; -import { getCreateEsqlRulesSchemaMock } from '@kbn/security-solution-plugin/common/api/detection_engine/model/rule_schema/mocks'; -import { - DETECTION_ENGINE_RULES_BULK_ACTION, - DETECTION_ENGINE_RULES_URL, -} from '@kbn/security-solution-plugin/common/constants'; import type { RuleResponse } from '@kbn/security-solution-plugin/common/api/detection_engine'; +import { getCreateEsqlRulesSchemaMock } from '@kbn/security-solution-plugin/common/api/detection_engine/model/rule_schema/mocks'; import { - BulkActionTypeEnum, BulkActionEditTypeEnum, + BulkActionTypeEnum, } from '@kbn/security-solution-plugin/common/api/detection_engine/rule_management'; +import { BaseRuleParams } from '@kbn/security-solution-plugin/server/lib/detection_engine/rule_schema'; +import { + createRule, + deleteAllRules, + waitForRuleSuccess, +} from '../../../../../../common/utils/security_solution'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; import { binaryToString, + checkInvestigationFieldSoValue, createLegacyRuleAction, - getLegacyActionSO, - getSimpleRule, - getWebHookAction, createRuleThroughAlertingEndpoint, + getLegacyActionSO, getRuleSavedObjectWithLegacyInvestigationFields, getRuleSavedObjectWithLegacyInvestigationFieldsEmptyArray, - checkInvestigationFieldSoValue, getRuleSOById, + getSimpleRule, + getWebHookAction, } from '../../../utils'; -import { - createRule, - createAlertsIndex, - deleteAllRules, - deleteAllAlerts, - waitForRuleSuccess, -} from '../../../../../../common/utils/security_solution'; - -import { FtrProviderContext } from '../../../../../ftr_provider_context'; export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); + const securitySolutionApi = getService('securitySolutionApi'); const es = getService('es'); const log = getService('log'); - const esArchiver = getService('esArchiver'); - - const postBulkAction = () => - supertest - .post(DETECTION_ENGINE_RULES_BULK_ACTION) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '2023-10-31'); - - const fetchRule = (ruleId: string) => - supertest - .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=${ruleId}`) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '2023-10-31'); const createConnector = async (payload: Record) => (await supertest.post('/api/actions/action').set('kbn-xsrf', 'true').send(payload).expect(200)) @@ -67,14 +48,7 @@ export default ({ getService }: FtrProviderContext): void => { // Failing: See https://github.com/elastic/kibana/issues/173804 describe('@ess perform_bulk_action - ESS specific logic', () => { beforeEach(async () => { - await createAlertsIndex(supertest, log); - await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); - }); - - afterEach(async () => { - await deleteAllAlerts(supertest, log, es); await deleteAllRules(supertest, log); - await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); }); it('should delete rules and any associated legacy actions', async () => { @@ -99,8 +73,11 @@ export default ({ getService }: FtrProviderContext): void => { expect(sidecarActionsResults.hits.hits.length).to.eql(1); expect(sidecarActionsResults.hits.hits[0]?._source?.references[0].id).to.eql(rule1.id); - const { body } = await postBulkAction() - .send({ query: '', action: BulkActionTypeEnum.delete }) + const { body } = await securitySolutionApi + .performBulkAction({ + body: { query: '', action: BulkActionTypeEnum.delete }, + query: {}, + }) .expect(200); expect(body.attributes.summary).to.eql({ failed: 0, skipped: 0, succeeded: 1, total: 1 }); @@ -113,7 +90,7 @@ export default ({ getService }: FtrProviderContext): void => { expect(sidecarActionsPostResults.hits.hits.length).to.eql(0); // Check that the updates have been persisted - await fetchRule(ruleId).expect(404); + await securitySolutionApi.readRule({ query: { rule_id: ruleId } }).expect(404); }); it('should enable rules and migrate actions', async () => { @@ -138,8 +115,11 @@ export default ({ getService }: FtrProviderContext): void => { expect(sidecarActionsResults.hits.hits.length).to.eql(1); expect(sidecarActionsResults.hits.hits[0]?._source?.references[0].id).to.eql(rule1.id); - const { body } = await postBulkAction() - .send({ query: '', action: BulkActionTypeEnum.enable }) + const { body } = await securitySolutionApi + .performBulkAction({ + body: { query: '', action: BulkActionTypeEnum.enable }, + query: {}, + }) .expect(200); expect(body.attributes.summary).to.eql({ failed: 0, skipped: 0, succeeded: 1, total: 1 }); @@ -148,7 +128,9 @@ export default ({ getService }: FtrProviderContext): void => { expect(body.attributes.results.updated[0].enabled).to.eql(true); // Check that the updates have been persisted - const { body: ruleBody } = await fetchRule(ruleId).expect(200); + const { body: ruleBody } = await securitySolutionApi + .readRule({ query: { rule_id: ruleId } }) + .expect(200); // legacy sidecar action should be gone const sidecarActionsPostResults = await getLegacyActionSO(es); @@ -193,8 +175,11 @@ export default ({ getService }: FtrProviderContext): void => { expect(sidecarActionsResults.hits.hits.length).to.eql(1); expect(sidecarActionsResults.hits.hits[0]?._source?.references[0].id).to.eql(rule1.id); - const { body } = await postBulkAction() - .send({ query: '', action: BulkActionTypeEnum.disable }) + const { body } = await securitySolutionApi + .performBulkAction({ + body: { query: '', action: BulkActionTypeEnum.disable }, + query: {}, + }) .expect(200); expect(body.attributes.summary).to.eql({ failed: 0, skipped: 0, succeeded: 1, total: 1 }); @@ -203,7 +188,9 @@ export default ({ getService }: FtrProviderContext): void => { expect(body.attributes.results.updated[0].enabled).to.eql(false); // Check that the updates have been persisted - const { body: ruleBody } = await fetchRule(ruleId).expect(200); + const { body: ruleBody } = await securitySolutionApi + .readRule({ query: { rule_id: ruleId } }) + .expect(200); // legacy sidecar action should be gone const sidecarActionsPostResults = await getLegacyActionSO(es); @@ -248,11 +235,14 @@ export default ({ getService }: FtrProviderContext): void => { ruleToDuplicate.id ); - const { body } = await postBulkAction() - .send({ - query: '', - action: BulkActionTypeEnum.duplicate, - duplicate: { include_exceptions: false, include_expired_exceptions: false }, + const { body } = await securitySolutionApi + .performBulkAction({ + body: { + query: '', + action: BulkActionTypeEnum.duplicate, + duplicate: { include_exceptions: false, include_expired_exceptions: false }, + }, + query: {}, }) .expect(200); @@ -262,10 +252,8 @@ export default ({ getService }: FtrProviderContext): void => { expect(body.attributes.results.created[0].name).to.eql(`${ruleToDuplicate.name} [Duplicate]`); // Check that the updates have been persisted - const { body: rulesResponse } = await supertest - .get(`${DETECTION_ENGINE_RULES_URL}/_find`) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '2023-10-31') + const { body: rulesResponse } = await securitySolutionApi + .findRules({ query: {} }) .expect(200); expect(rulesResponse.total).to.eql(2); @@ -293,16 +281,19 @@ export default ({ getService }: FtrProviderContext): void => { it('should return error if index patterns action is applied to ES|QL rule', async () => { const esqlRule = await createRule(supertest, log, getCreateEsqlRulesSchemaMock()); - const { body } = await postBulkAction() - .send({ - ids: [esqlRule.id], - action: BulkActionTypeEnum.edit, - [BulkActionTypeEnum.edit]: [ - { - type: BulkActionEditTypeEnum.add_index_patterns, - value: ['index-*'], - }, - ], + const { body } = await securitySolutionApi + .performBulkAction({ + body: { + ids: [esqlRule.id], + action: BulkActionTypeEnum.edit, + [BulkActionTypeEnum.edit]: [ + { + type: BulkActionEditTypeEnum.add_index_patterns, + value: ['index-*'], + }, + ], + }, + query: {}, }) .expect(500); @@ -345,15 +336,18 @@ export default ({ getService }: FtrProviderContext): void => { ruleToDuplicate.id ); - const { body: setTagsBody } = await postBulkAction().send({ - query: '', - action: BulkActionTypeEnum.edit, - [BulkActionTypeEnum.edit]: [ - { - type: BulkActionEditTypeEnum.set_tags, - value: ['reset-tag'], - }, - ], + const { body: setTagsBody } = await securitySolutionApi.performBulkAction({ + body: { + query: '', + action: BulkActionTypeEnum.edit, + [BulkActionTypeEnum.edit]: [ + { + type: BulkActionEditTypeEnum.set_tags, + value: ['reset-tag'], + }, + ], + }, + query: {}, }); expect(setTagsBody.attributes.summary).to.eql({ failed: 0, @@ -363,7 +357,9 @@ export default ({ getService }: FtrProviderContext): void => { }); // Check that the updates have been persisted - const { body: setTagsRule } = await fetchRule(ruleId).expect(200); + const { body: setTagsRule } = await securitySolutionApi + .readRule({ query: { rule_id: ruleId } }) + .expect(200); // Sidecar should be removed const sidecarActionsPostResults = await getLegacyActionSO(es); @@ -422,24 +418,27 @@ export default ({ getService }: FtrProviderContext): void => { createdRule.id ); - const { body } = await postBulkAction() - .send({ - ids: [createdRule.id], - action: BulkActionTypeEnum.edit, - [BulkActionTypeEnum.edit]: [ - { - type: BulkActionEditTypeEnum.set_rule_actions, - value: { - throttle: '1h', - actions: [ - { - ...webHookActionMock, - id: webHookConnector.id, - }, - ], + const { body } = await securitySolutionApi + .performBulkAction({ + body: { + ids: [createdRule.id], + action: BulkActionTypeEnum.edit, + [BulkActionTypeEnum.edit]: [ + { + type: BulkActionEditTypeEnum.set_rule_actions, + value: { + throttle: '1h', + actions: [ + { + ...webHookActionMock, + id: webHookConnector.id, + }, + ], + }, }, - }, - ], + ], + }, + query: {}, }) .expect(200); @@ -457,7 +456,9 @@ export default ({ getService }: FtrProviderContext): void => { expect(body.attributes.results.updated[0].actions).to.eql(expectedRuleActions); // Check that the updates have been persisted - const { body: readRule } = await fetchRule(ruleId).expect(200); + const { body: readRule } = await securitySolutionApi + .readRule({ query: { rule_id: ruleId } }) + .expect(200); expect(readRule.actions).to.eql(expectedRuleActions); @@ -475,9 +476,6 @@ export default ({ getService }: FtrProviderContext): void => { let ruleWithIntendedInvestigationField: RuleResponse; beforeEach(async () => { - await deleteAllAlerts(supertest, log, es); - await deleteAllRules(supertest, log); - await createAlertsIndex(supertest, log); ruleWithLegacyInvestigationField = await createRuleThroughAlertingEndpoint( supertest, getRuleSavedObjectWithLegacyInvestigationFields() @@ -495,13 +493,12 @@ export default ({ getService }: FtrProviderContext): void => { }); }); - afterEach(async () => { - await deleteAllRules(supertest, log); - }); - it('should export rules with legacy investigation_fields and transform legacy field in response', async () => { - const { body } = await postBulkAction() - .send({ query: '', action: BulkActionTypeEnum.export }) + const { body } = await securitySolutionApi + .performBulkAction({ + body: { query: '', action: BulkActionTypeEnum.export }, + query: {}, + }) .expect(200) .expect('Content-Type', 'application/ndjson') .expect('Content-Disposition', 'attachment; filename="rules_export.ndjson"') @@ -566,8 +563,11 @@ export default ({ getService }: FtrProviderContext): void => { }); it('should delete rules with investigation fields and transform legacy field in response', async () => { - const { body } = await postBulkAction() - .send({ query: '', action: BulkActionTypeEnum.delete }) + const { body } = await securitySolutionApi + .performBulkAction({ + body: { query: '', action: BulkActionTypeEnum.delete }, + query: {}, + }) .expect(200); expect(body.attributes.summary).to.eql({ failed: 0, skipped: 0, succeeded: 3, total: 3 }); @@ -590,14 +590,25 @@ export default ({ getService }: FtrProviderContext): void => { }); // Check that the updates have been persisted - await fetchRule(ruleWithLegacyInvestigationField.params.ruleId).expect(404); - await fetchRule(ruleWithLegacyInvestigationFieldEmptyArray.params.ruleId).expect(404); - await fetchRule('rule-with-investigation-field').expect(404); + await securitySolutionApi + .readRule({ query: { rule_id: ruleWithLegacyInvestigationField.params.ruleId } }) + .expect(404); + await securitySolutionApi + .readRule({ + query: { rule_id: ruleWithLegacyInvestigationFieldEmptyArray.params.ruleId }, + }) + .expect(404); + await securitySolutionApi + .readRule({ query: { rule_id: 'rule-with-investigation-field' } }) + .expect(404); }); it('should enable rules with legacy investigation fields and transform legacy field in response', async () => { - const { body } = await postBulkAction() - .send({ query: '', action: BulkActionTypeEnum.enable }) + const { body } = await securitySolutionApi + .performBulkAction({ + body: { query: '', action: BulkActionTypeEnum.enable }, + query: {}, + }) .expect(200); expect(body.attributes.summary).to.eql({ failed: 0, skipped: 0, succeeded: 3, total: 3 }); @@ -664,8 +675,8 @@ export default ({ getService }: FtrProviderContext): void => { }); it('should disable rules with legacy investigation fields and transform legacy field in response', async () => { - const { body } = await postBulkAction() - .send({ query: '', action: BulkActionTypeEnum.disable }) + const { body } = await securitySolutionApi + .performBulkAction({ body: { query: '', action: BulkActionTypeEnum.disable }, query: {} }) .expect(200); expect(body.attributes.summary).to.eql({ failed: 0, skipped: 0, succeeded: 3, total: 3 }); @@ -735,11 +746,14 @@ export default ({ getService }: FtrProviderContext): void => { }); it('should duplicate rules with legacy investigation fields and transform field in response', async () => { - const { body } = await postBulkAction() - .send({ - query: '', - action: BulkActionTypeEnum.duplicate, - duplicate: { include_exceptions: false, include_expired_exceptions: false }, + const { body } = await securitySolutionApi + .performBulkAction({ + body: { + query: '', + action: BulkActionTypeEnum.duplicate, + duplicate: { include_exceptions: false, include_expired_exceptions: false }, + }, + query: {}, }) .expect(200); @@ -754,10 +768,8 @@ export default ({ getService }: FtrProviderContext): void => { expect(names.includes('Test investigation fields object [Duplicate]')).to.eql(true); // Check that the updates have been persisted - const { body: rulesResponse } = await supertest - .get(`${DETECTION_ENGINE_RULES_URL}/_find`) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '2023-10-31') + const { body: rulesResponse } = await await securitySolutionApi + .findRules({ query: {} }) .expect(200); expect(rulesResponse.total).to.eql(6); @@ -854,15 +866,18 @@ export default ({ getService }: FtrProviderContext): void => { }); it('should edit rules with legacy investigation fields', async () => { - const { body } = await postBulkAction().send({ - query: '', - action: BulkActionTypeEnum.edit, - [BulkActionTypeEnum.edit]: [ - { - type: BulkActionEditTypeEnum.set_tags, - value: ['reset-tag'], - }, - ], + const { body } = await securitySolutionApi.performBulkAction({ + body: { + query: '', + action: BulkActionTypeEnum.edit, + [BulkActionTypeEnum.edit]: [ + { + type: BulkActionEditTypeEnum.set_tags, + value: ['reset-tag'], + }, + ], + }, + query: {}, }); expect(body.attributes.summary).to.eql({ failed: 0, From bcb876fbe977860d9d1b2ddfbc916f97735077f4 Mon Sep 17 00:00:00 2001 From: Cristina Amico Date: Mon, 22 Apr 2024 15:56:16 +0200 Subject: [PATCH 025/183] [Fleet] Fix flattened inputs in config tab (#181155) Fixes https://github.com/elastic/kibana/issues/180307 Fix the response format of `api/fleet/epm/templates/${testPkgName}/${testPkgVersion}/inputs` ## Summary The inputs streams returned in the configs tab where flattened at the end and this was preventing the final config from working when used on a standalone agent. - Removed the `flatMap` from [here](https://github.com/elastic/kibana/blob/ef5af172336d76cc553ae72cbcf289327c2ea428/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts#L115) - Did a small refactor where I'm directly importing the merge utility from `package_policies_to_agent_inputs` to reduce duplication, also improved types and naming See [this comment](https://github.com/elastic/kibana/issues/180307#issuecomment-2063987477) for the new format ### Checklist - [ ] [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: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../package_policies_to_agent_inputs.ts | 51 +++-- .../epm/packages/get_template_inputs.ts | 48 ++--- .../epm/packages/get_templates_inputs.test.ts | 38 ++-- .../apis/epm/get_templates_inputs.ts | 187 +++++++++--------- 4 files changed, 162 insertions(+), 162 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/agent_policies/package_policies_to_agent_inputs.ts b/x-pack/plugins/fleet/server/services/agent_policies/package_policies_to_agent_inputs.ts index 938677c7c8bb9..5cf94210724c1 100644 --- a/x-pack/plugins/fleet/server/services/agent_policies/package_policies_to_agent_inputs.ts +++ b/x-pack/plugins/fleet/server/services/agent_policies/package_policies_to_agent_inputs.ts @@ -12,6 +12,7 @@ import type { FullAgentPolicyInput, FullAgentPolicyInputStream, PackageInfo, + PackagePolicyInput, } from '../../types'; import { DEFAULT_OUTPUT } from '../../constants'; import { pkgToPkgKey } from '../epm/registry'; @@ -48,34 +49,18 @@ export const storedPackagePolicyToAgentInputs = ( : packagePolicy.id; const fullInput: FullAgentPolicyInput = { + // @ts-ignore-next-line the following id is actually one level above the one in fullInputStream, but the linter thinks it gets overwritten id: inputId, revision: packagePolicy.revision, name: packagePolicy.name, type: input.type, + // @ts-ignore-next-line data_stream: { namespace: packagePolicy?.namespace || agentPolicyNamespace || 'default', // custom namespace has precedence on agent policy's one }, use_output: outputId, package_policy_id: packagePolicy.id, - ...(input.compiled_input || {}), - ...(input.streams.length - ? { - streams: input.streams - .filter((stream) => stream.enabled) - .map((stream) => { - const fullStream: FullAgentPolicyInputStream = { - id: stream.id, - data_stream: stream.data_stream, - ...stream.compiled_stream, - ...Object.entries(stream.config || {}).reduce((acc, [key, { value }]) => { - acc[key] = value; - return acc; - }, {} as { [k: string]: any }), - }; - return fullStream; - }), - } - : {}), + ...getFullInputStreams(input), }; // deeply merge the input.config values with the full policy input @@ -95,12 +80,38 @@ export const storedPackagePolicyToAgentInputs = ( }, }; } - fullInputs.push(fullInput); }); return fullInputs; }; +export const getFullInputStreams = ( + input: PackagePolicyInput, + allStreamEnabled: boolean = false +): FullAgentPolicyInputStream => { + return { + ...(input.compiled_input || {}), + ...(input.streams.length + ? { + streams: input.streams + .filter((stream) => stream.enabled || allStreamEnabled) + .map((stream) => { + const fullStream: FullAgentPolicyInputStream = { + id: stream.id, + data_stream: stream.data_stream, + ...stream.compiled_stream, + ...Object.entries(stream.config || {}).reduce((acc, [key, { value }]) => { + acc[key] = value; + return acc; + }, {} as { [k: string]: any }), + }; + return fullStream; + }), + } + : {}), + }; +}; + export const storedPackagePoliciesToAgentInputs = async ( packagePolicies: PackagePolicy[], packageInfoCache: Map, diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts b/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts index a0a8f2cb64b7a..7cdac46f3defa 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts @@ -16,58 +16,44 @@ import type { PackageInfo, NewPackagePolicy, PackagePolicyInput, - FullAgentPolicyInput, FullAgentPolicyInputStream, } from '../../../../common/types'; import { _sortYamlKeys } from '../../../../common/services/full_agent_policy_to_yaml'; +import { getFullInputStreams } from '../../agent_policies/package_policies_to_agent_inputs'; + import { getPackageInfo } from '.'; import { getPackageAssetsMap } from './get'; type Format = 'yml' | 'json'; // Function based off storedPackagePolicyToAgentInputs, it only creates the `streams` section instead of the FullAgentPolicyInput -export const templatePackagePolicyToFullInputs = ( +export const templatePackagePolicyToFullInputStreams = ( packagePolicyInputs: PackagePolicyInput[] -): FullAgentPolicyInput[] => { - const fullInputs: FullAgentPolicyInput[] = []; +): FullAgentPolicyInputStream[] => { + const fullInputsStreams: FullAgentPolicyInputStream[] = []; - if (!packagePolicyInputs || packagePolicyInputs.length === 0) return fullInputs; + if (!packagePolicyInputs || packagePolicyInputs.length === 0) return fullInputsStreams; packagePolicyInputs.forEach((input) => { - const fullInput = { - ...(input.compiled_input || {}), - ...(input.streams.length - ? { - streams: input.streams.map((stream) => { - const fullStream: FullAgentPolicyInputStream = { - id: stream.id, - type: input.type, - data_stream: stream.data_stream, - ...stream.compiled_stream, - ...Object.entries(stream.config || {}).reduce((acc, [key, { value }]) => { - acc[key] = value; - return acc; - }, {} as { [k: string]: any }), - }; - return fullStream; - }), - } - : {}), + const fullInputStream = { + // @ts-ignore-next-line the following id is actually one level above the one in fullInputStream, but the linter thinks it gets overwritten + id: input.policy_template ? `${input.type}-${input.policy_template}` : `${input.type}`, + ...getFullInputStreams(input, true), }; - // deeply merge the input.config values with the full policy input + // deeply merge the input.config values with the full policy input stream merge( - fullInput, + fullInputStream, Object.entries(input.config || {}).reduce((acc, [key, { value }]) => { acc[key] = value; return acc; }, {} as Record) ); - fullInputs.push(fullInput); + fullInputsStreams.push(fullInputStream); }); - return fullInputs; + return fullInputsStreams; }; export async function getTemplateInputs( @@ -97,6 +83,7 @@ export async function getTemplateInputs( packageInfo, savedObjectsClient: soClient, }); + const compiledInputs = await _compilePackagePolicyInputs( packageInfo, emptyPackagePolicy.vars || {}, @@ -107,12 +94,9 @@ export async function getTemplateInputs( ...emptyPackagePolicy, inputs: compiledInputs, }; - const fullAgentPolicyInputs = templatePackagePolicyToFullInputs( + const inputs = templatePackagePolicyToFullInputStreams( packagePolicyWithInputs.inputs as PackagePolicyInput[] ); - // @ts-ignore-next-line The return type is any because in some case we can have compiled_input instead of input.streams - // we don't know what it is. An example is integration APM - const inputs: any = fullAgentPolicyInputs.flatMap((input) => input?.streams || input); if (format === 'json') { return { inputs }; diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts b/x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts index e9912cc8d8bd2..339469495cd89 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts @@ -7,7 +7,7 @@ import type { PackagePolicyInput } from '../../../../common/types'; -import { templatePackagePolicyToFullInputs } from './get_template_inputs'; +import { templatePackagePolicyToFullInputStreams } from './get_template_inputs'; const packageInfoCache = new Map(); packageInfoCache.set('mock_package-0.0.0', { @@ -29,7 +29,7 @@ packageInfoCache.set('limited_package-0.0.0', { ], }); -describe('Fleet - templatePackagePolicyToFullInputs', () => { +describe('Fleet - templatePackagePolicyToFullInputStreams', () => { const mockInput: PackagePolicyInput = { type: 'test-logs', enabled: true, @@ -112,12 +112,15 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { }; it('returns no inputs for package policy with no inputs', async () => { - expect(await templatePackagePolicyToFullInputs([])).toEqual([]); + expect(await templatePackagePolicyToFullInputStreams([])).toEqual([]); }); it('returns inputs even when inputs where disabled', async () => { - expect(await templatePackagePolicyToFullInputs([{ ...mockInput, enabled: false }])).toEqual([ + expect( + await templatePackagePolicyToFullInputStreams([{ ...mockInput, enabled: false }]) + ).toEqual([ { + id: 'test-logs', streams: [ { data_stream: { @@ -127,7 +130,6 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { fooKey: 'fooValue1', fooKey2: ['fooValue2'], id: 'test-logs-foo', - type: 'test-logs', }, { data_stream: { @@ -135,7 +137,6 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { type: 'logs', }, id: 'test-logs-bar', - type: 'test-logs', }, ], }, @@ -143,20 +144,19 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { }); it('returns agent inputs with streams', async () => { - expect(await templatePackagePolicyToFullInputs([mockInput])).toEqual([ + expect(await templatePackagePolicyToFullInputStreams([mockInput])).toEqual([ { + id: 'test-logs', streams: [ { id: 'test-logs-foo', data_stream: { dataset: 'foo', type: 'logs' }, fooKey: 'fooValue1', fooKey2: ['fooValue2'], - type: 'test-logs', }, { id: 'test-logs-bar', data_stream: { dataset: 'bar', type: 'logs' }, - type: 'test-logs', }, ], }, @@ -164,12 +164,12 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { }); it('returns unique agent inputs IDs, with policy template name if one exists for non-limited packages', async () => { - expect(await templatePackagePolicyToFullInputs([mockInput])).toEqual([ + expect(await templatePackagePolicyToFullInputStreams([mockInput])).toEqual([ { + id: 'test-logs', streams: [ { id: 'test-logs-foo', - type: 'test-logs', data_stream: { dataset: 'foo', type: 'logs' }, fooKey: 'fooValue1', fooKey2: ['fooValue2'], @@ -177,7 +177,6 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { { id: 'test-logs-bar', data_stream: { dataset: 'bar', type: 'logs' }, - type: 'test-logs', }, ], }, @@ -185,8 +184,9 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { }); it('returns agent inputs without streams', async () => { - expect(await templatePackagePolicyToFullInputs([mockInput2])).toEqual([ + expect(await templatePackagePolicyToFullInputStreams([mockInput2])).toEqual([ { + id: 'test-metrics-some-template', streams: [ { data_stream: { @@ -196,7 +196,6 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { fooKey: 'fooValue1', fooKey2: ['fooValue2'], id: 'test-metrics-foo', - type: 'test-metrics', }, ], }, @@ -205,7 +204,7 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { it('returns agent inputs without disabled streams', async () => { expect( - await templatePackagePolicyToFullInputs([ + await templatePackagePolicyToFullInputStreams([ { ...mockInput, streams: [{ ...mockInput.streams[0] }, { ...mockInput.streams[1], enabled: false }], @@ -213,10 +212,10 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { ]) ).toEqual([ { + id: 'test-logs', streams: [ { id: 'test-logs-foo', - type: 'test-logs', data_stream: { dataset: 'foo', type: 'logs' }, fooKey: 'fooValue1', fooKey2: ['fooValue2'], @@ -227,7 +226,6 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { type: 'logs', }, id: 'test-logs-bar', - type: 'test-logs', }, ], }, @@ -236,7 +234,7 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { it('returns agent inputs with deeply merged config values', async () => { expect( - await templatePackagePolicyToFullInputs([ + await templatePackagePolicyToFullInputStreams([ { ...mockInput, compiled_input: { @@ -287,15 +285,15 @@ describe('Fleet - templatePackagePolicyToFullInputs', () => { }, inputVar4: '', }, + id: 'test-logs', streams: [ { id: 'test-logs-foo', data_stream: { dataset: 'foo', type: 'logs' }, fooKey: 'fooValue1', fooKey2: ['fooValue2'], - type: 'test-logs', }, - { id: 'test-logs-bar', data_stream: { dataset: 'bar', type: 'logs' }, type: 'test-logs' }, + { id: 'test-logs-bar', data_stream: { dataset: 'bar', type: 'logs' } }, ], }, ]); diff --git a/x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts b/x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts index 1b7411c5a3169..08f0538f63644 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts @@ -51,110 +51,118 @@ export default function (providerContext: FtrProviderContext) { await uninstallPackage(testPkgName, testPkgVersion); }); const expectedYml = `inputs: - - id: logfile-apache.access - type: logfile - data_stream: - dataset: apache.access - type: logs - paths: - - /var/log/apache2/access.log* - - /var/log/apache2/other_vhosts_access.log* - - /var/log/httpd/access_log* - exclude_files: - - .gz$ - processors: - - add_fields: - target: '' - fields: - ecs.version: 1.5.0 - - id: logfile-apache.error - type: logfile - data_stream: - dataset: apache.error - type: logs - paths: - - /var/log/apache2/error.log* - - /var/log/httpd/error_log* - exclude_files: - - .gz$ - processors: - - add_locale: null - - add_fields: - target: '' - fields: - ecs.version: 1.5.0 - - id: apache/metrics-apache.status - type: apache/metrics - data_stream: - dataset: apache.status - type: metrics - metricsets: - - status - hosts: - - 'http://127.0.0.1' - period: 10s - server_status_path: /server-status + - id: logfile-apache + streams: + - id: logfile-apache.access + data_stream: + dataset: apache.access + type: logs + paths: + - /var/log/apache2/access.log* + - /var/log/apache2/other_vhosts_access.log* + - /var/log/httpd/access_log* + exclude_files: + - .gz$ + processors: + - add_fields: + target: '' + fields: + ecs.version: 1.5.0 + - id: logfile-apache.error + data_stream: + dataset: apache.error + type: logs + paths: + - /var/log/apache2/error.log* + - /var/log/httpd/error_log* + exclude_files: + - .gz$ + processors: + - add_locale: null + - add_fields: + target: '' + fields: + ecs.version: 1.5.0 + - id: apache/metrics-apache + streams: + - id: apache/metrics-apache.status + data_stream: + dataset: apache.status + type: metrics + metricsets: + - status + hosts: + - 'http://127.0.0.1' + period: 10s + server_status_path: /server-status `; const expectedJson = [ { - id: 'logfile-apache.access', - type: 'logfile', - data_stream: { - type: 'logs', - dataset: 'apache.access', - }, - paths: [ - '/var/log/apache2/access.log*', - '/var/log/apache2/other_vhosts_access.log*', - '/var/log/httpd/access_log*', - ], - exclude_files: ['.gz$'], - processors: [ + id: 'logfile-apache', + streams: [ { - add_fields: { - target: '', - fields: { - 'ecs.version': '1.5.0', + id: 'logfile-apache.access', + data_stream: { + dataset: 'apache.access', + type: 'logs', + }, + paths: [ + '/var/log/apache2/access.log*', + '/var/log/apache2/other_vhosts_access.log*', + '/var/log/httpd/access_log*', + ], + exclude_files: ['.gz$'], + processors: [ + { + add_fields: { + fields: { + 'ecs.version': '1.5.0', + }, + target: '', + }, }, + ], + }, + { + id: 'logfile-apache.error', + data_stream: { + dataset: 'apache.error', + type: 'logs', }, + paths: ['/var/log/apache2/error.log*', '/var/log/httpd/error_log*'], + exclude_files: ['.gz$'], + processors: [ + { + add_locale: null, + }, + { + add_fields: { + fields: { + 'ecs.version': '1.5.0', + }, + target: '', + }, + }, + ], }, ], }, { - id: 'logfile-apache.error', - type: 'logfile', - data_stream: { - type: 'logs', - dataset: 'apache.error', - }, - paths: ['/var/log/apache2/error.log*', '/var/log/httpd/error_log*'], - exclude_files: ['.gz$'], - processors: [ + id: 'apache/metrics-apache', + streams: [ { - add_locale: null, - }, - { - add_fields: { - target: '', - fields: { - 'ecs.version': '1.5.0', - }, + data_stream: { + dataset: 'apache.status', + type: 'metrics', }, + hosts: ['http://127.0.0.1'], + id: 'apache/metrics-apache.status', + metricsets: ['status'], + period: '10s', + server_status_path: '/server-status', }, ], }, - { - id: 'apache/metrics-apache.status', - type: 'apache/metrics', - data_stream: { - type: 'metrics', - dataset: 'apache.status', - }, - metricsets: ['status'], - hosts: ['http://127.0.0.1'], - period: '10s', - server_status_path: '/server-status', - }, ]; it('returns inputs template in json format', async function () { @@ -162,7 +170,6 @@ export default function (providerContext: FtrProviderContext) { .get(`/api/fleet/epm/templates/${testPkgName}/${testPkgVersion}/inputs?format=json`) .expect(200); const inputs = res.body.inputs; - expect(inputs).to.eql(expectedJson); }); From c66c019f25ff242f7b390580a3d30af1ca423b14 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 22 Apr 2024 15:08:57 +0100 Subject: [PATCH 026/183] skip flaky suite (#181296) --- .../tests/alerting/group4/alerts_as_data/install_resources.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/install_resources.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/install_resources.ts index e80a8f94d93b6..e2746257931bc 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/install_resources.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/alerts_as_data/install_resources.ts @@ -17,7 +17,8 @@ export default function createAlertsAsDataInstallResourcesTest({ getService }: F const legacyAlertMappings = mappingFromFieldMap(legacyAlertFieldMap, 'strict'); const ecsMappings = mappingFromFieldMap(ecsFieldMap, 'strict'); - describe('install alerts as data resources', () => { + // FLAKY: https://github.com/elastic/kibana/issues/181296 + describe.skip('install alerts as data resources', () => { it('should install common alerts as data resources on startup', async () => { const ilmPolicyName = '.alerts-ilm-policy'; const frameworkComponentTemplateName = '.alerts-framework-mappings'; From 0170f5eba5e05d8bdd37dd02d080a4e088ffbbbc Mon Sep 17 00:00:00 2001 From: Katerina Date: Mon, 22 Apr 2024 17:13:52 +0300 Subject: [PATCH 027/183] [Infra] Add alert links in hosts alert tab (#181039) ## Summary close #180507 - Move the alert links to a shared folder - Refactor `LinkToAlertsPage` to accept abstract `kuery` - Display the `Create rule` and `Show all` links in the alert tab in the hosts view page ## After https://github.com/elastic/kibana/assets/3369346/2abb2327-a0d1-4ffa-804f-7ceee85ac42d ## Notes Passing the kuery `kuery={`${ALERT_RULE_PRODUCER}: ${INFRA_ALERT_FEATURE_ID}`}` to the alertPage in order to show all alerts produced by infrastructure. However, the total count may differ from the Alert tab, as we only show alerts for visible hosts in the table. --- .../components/alerts_tooltip_content.tsx | 4 +- .../asset_details/hooks/use_page_header.tsx | 7 +- .../components/asset_details/links/index.ts | 1 - .../tabs/overview/alerts/alerts.tsx | 15 +++- .../link_to_alerts_page.test.tsx.snap | 55 +++++++++++++ .../links/create_alert_rule_button.tsx} | 10 ++- .../alerts/links/link_to_alerts_page.test.tsx | 78 +++++++++++++++++++ .../alerts}/links/link_to_alerts_page.tsx | 28 +++---- .../tabs/alerts/alerts_tab_content.tsx | 34 +++++++- .../translations/translations/fr-FR.json | 2 - .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - 12 files changed, 205 insertions(+), 33 deletions(-) create mode 100644 x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/__snapshots__/link_to_alerts_page.test.tsx.snap rename x-pack/plugins/observability_solution/infra/public/components/{asset_details/links/link_to_alerts.tsx => shared/alerts/links/create_alert_rule_button.tsx} (74%) create mode 100644 x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/link_to_alerts_page.test.tsx rename x-pack/plugins/observability_solution/infra/public/components/{asset_details => shared/alerts}/links/link_to_alerts_page.tsx (69%) diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/components/alerts_tooltip_content.tsx b/x-pack/plugins/observability_solution/infra/public/components/asset_details/components/alerts_tooltip_content.tsx index abc9ae31e8f35..3d4fbdc2a7994 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/components/alerts_tooltip_content.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/components/alerts_tooltip_content.tsx @@ -8,8 +8,8 @@ import React from 'react'; import { EuiText, EuiLink } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; -import { LinkToAlertsHomePage } from '../links/link_to_alerts_page'; import { ALERTS_DOC_HREF } from '../../shared/alerts/constants'; +import { LinkToAlertsHomePage } from '../../shared/alerts/links/link_to_alerts_page'; export const AlertsTooltipContent = React.memo(() => { const onClick = (e: React.MouseEvent) => { @@ -23,7 +23,7 @@ export const AlertsTooltipContent = React.memo(() => { id="xpack.infra.assetDetails.alerts.tooltip.alertsLabel" defaultMessage="Showing alerts for this host. You can create and manage alerts in {alerts}" values={{ - alerts: , + alerts: , }} />

diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/hooks/use_page_header.tsx b/x-pack/plugins/observability_solution/infra/public/components/asset_details/hooks/use_page_header.tsx index c13bffae7ac9f..29c048c540a04 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/hooks/use_page_header.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/hooks/use_page_header.tsx @@ -21,8 +21,9 @@ import { useHistory, useLocation } from 'react-router-dom'; import { usePluginConfig } from '../../../containers/plugin_config_context'; import { useKibanaContextForPlugin } from '../../../hooks/use_kibana'; import { useProfilingIntegrationSetting } from '../../../hooks/use_profiling_integration_setting'; +import { CreateAlertRuleButton } from '../../shared/alerts/links/create_alert_rule_button'; import { APM_HOST_FILTER_FIELD } from '../constants'; -import { LinkToAlertsRule, LinkToNodeDetails } from '../links'; +import { LinkToNodeDetails } from '../links'; import { ContentTabIds, type LinkOptions, type RouteState, type Tab, type TabIds } from '../types'; import { useAssetDetailsRenderPropsContext } from './use_asset_details_render_props'; import { useTabSwitcherContext } from './use_tab_switcher'; @@ -97,7 +98,9 @@ const useRightSideItems = (links?: LinkOptions[]) => { nodeDetails: ( ), - alertRule: , + alertRule: ( + + ), }), [asset.id, asset.name, asset.type] ); diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/index.ts b/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/index.ts index 6dd74f7b5178a..f362132a10043 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/index.ts +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/index.ts @@ -6,5 +6,4 @@ */ export { LinkToApmServices } from './link_to_apm_services'; -export { LinkToAlertsRule } from './link_to_alerts'; export { LinkToNodeDetails } from './link_to_node_details'; diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/overview/alerts/alerts.tsx b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/overview/alerts/alerts.tsx index 60f09b1d73b91..ca6155039da31 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/overview/alerts/alerts.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/overview/alerts/alerts.tsx @@ -11,8 +11,6 @@ import type { TimeRange } from '@kbn/es-query'; import type { InventoryItemType } from '@kbn/metrics-data-access-plugin/common'; import { findInventoryFields } from '@kbn/metrics-data-access-plugin/common'; import { usePluginConfig } from '../../../../../containers/plugin_config_context'; -import { LinkToAlertsRule } from '../../../links/link_to_alerts'; -import { LinkToAlertsPage } from '../../../links/link_to_alerts_page'; import { AlertFlyout } from '../../../../../alerting/inventory/components/alert_flyout'; import { useBoolean } from '../../../../../hooks/use_boolean'; import { AlertsSectionTitle } from '../section_titles'; @@ -21,6 +19,8 @@ import { Section } from '../../../components/section'; import { AlertsClosedContent } from './alerts_closed_content'; import { type AlertsCount } from '../../../../../hooks/use_alerts_count'; import { AlertsOverview } from '../../../../shared/alerts/alerts_overview'; +import { CreateAlertRuleButton } from '../../../../shared/alerts/links/create_alert_rule_button'; +import { LinkToAlertsPage } from '../../../../shared/alerts/links/link_to_alerts_page'; export const AlertsSummaryContent = ({ assetId, @@ -61,11 +61,18 @@ export const AlertsSummaryContent = ({ {featureFlags.inventoryThresholdAlertRuleEnabled && ( - + )} - + } diff --git a/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/__snapshots__/link_to_alerts_page.test.tsx.snap b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/__snapshots__/link_to_alerts_page.test.tsx.snap new file mode 100644 index 0000000000000..8a2d3f54cb773 --- /dev/null +++ b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/__snapshots__/link_to_alerts_page.test.tsx.snap @@ -0,0 +1,55 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`LinkToAlertsPage component renders correctly with default props 1`] = ` + +`; + +exports[`LinkToAlertsPage component renders correctly with optional props 1`] = ` + +`; diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/link_to_alerts.tsx b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/create_alert_rule_button.tsx similarity index 74% rename from x-pack/plugins/observability_solution/infra/public/components/asset_details/links/link_to_alerts.tsx rename to x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/create_alert_rule_button.tsx index e5a5cc6340abe..7873694dce95a 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/link_to_alerts.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/create_alert_rule_button.tsx @@ -10,12 +10,16 @@ import { EuiButtonEmpty } from '@elastic/eui'; export interface LinkToAlertsRuleProps { onClick?: () => void; + ['data-test-subj']: string; } -export const LinkToAlertsRule = ({ onClick }: LinkToAlertsRuleProps) => { +export const CreateAlertRuleButton = ({ + onClick, + ['data-test-subj']: dataTestSubj, +}: LinkToAlertsRuleProps) => { return ( { iconType="bell" > diff --git a/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/link_to_alerts_page.test.tsx b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/link_to_alerts_page.test.tsx new file mode 100644 index 0000000000000..c2fed1888c6d2 --- /dev/null +++ b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/link_to_alerts_page.test.tsx @@ -0,0 +1,78 @@ +/* + * 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 React from 'react'; +import { render, screen } from '@testing-library/react'; +import { LinkToAlertsPage, LinkToAlertsPageProps } from './link_to_alerts_page'; +import { useKibanaContextForPlugin } from '../../../../hooks/use_kibana'; +import { coreMock } from '@kbn/core/public/mocks'; +import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; + +const useKibanaContextForPluginMock = useKibanaContextForPlugin as jest.MockedFunction< + typeof useKibanaContextForPlugin +>; +jest.mock('../../../../hooks/use_kibana'); + +describe('LinkToAlertsPage component', () => { + const mockUseKibana = () => { + useKibanaContextForPluginMock.mockReturnValue({ + services: { + ...coreMock.createStart(), + }, + } as unknown as ReturnType); + }; + + beforeEach(() => { + mockUseKibana(); + }); + + it('renders correctly with default props', () => { + const props: LinkToAlertsPageProps = { + dateRange: { from: '2024-04-01', to: '2024-04-15' }, + ['data-test-subj']: 'test-link', + }; + const { container } = render( + + + + ); + expect(container).toMatchSnapshot(); + }); + + it('renders correctly with optional props', () => { + const props: LinkToAlertsPageProps = { + dateRange: { from: '2024-04-01', to: '2024-04-15' }, + kuery: 'foo:bar', + ['data-test-subj']: 'test-link', + }; + const { container } = render( + + + + ); + const link = screen.getByTestId('test-link'); + expect(link).toBeInTheDocument(); + expect(container).toMatchSnapshot(); + }); + + it('generates correct link', () => { + const props: LinkToAlertsPageProps = { + dateRange: { from: '2024-04-01', to: '2024-04-15' }, + kuery: 'foo:bar', + ['data-test-subj']: 'test-link', + }; + render( + + + + ); + const href = screen.getByRole('link', { name: 'Show all' }).getAttribute('href'); + expect(href).toContain( + "/app/observability/alerts?_a=(kuery:'foo:bar',rangeFrom:'2024-04-01',rangeTo:'2024-04-15',status:all)" + ); + }); +}); diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/link_to_alerts_page.tsx b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/link_to_alerts_page.tsx similarity index 69% rename from x-pack/plugins/observability_solution/infra/public/components/asset_details/links/link_to_alerts_page.tsx rename to x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/link_to_alerts_page.tsx index 2b5f80043590e..04e39ec1261bc 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/links/link_to_alerts_page.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/shared/alerts/links/link_to_alerts_page.tsx @@ -9,46 +9,46 @@ import { encode } from '@kbn/rison'; import { FormattedMessage } from '@kbn/i18n-react'; import { EuiButtonEmpty, EuiLink } from '@elastic/eui'; import type { TimeRange } from '@kbn/es-query'; -import { useKibanaContextForPlugin } from '../../../hooks/use_kibana'; -import { ALERTS_PATH } from '../../shared/alerts/constants'; +import { useKibanaContextForPlugin } from '../../../../hooks/use_kibana'; +import { ALERTS_PATH } from '../constants'; export interface LinkToAlertsPageProps { - assetId: string; dateRange: TimeRange; - queryField: string; + kuery?: string; + ['data-test-subj']: string; } -export const LinkToAlertsPage = ({ assetId, queryField, dateRange }: LinkToAlertsPageProps) => { +export const LinkToAlertsPage = ({ + kuery, + dateRange, + ['data-test-subj']: dataTestSubj, +}: LinkToAlertsPageProps) => { const { services } = useKibanaContextForPlugin(); const { http } = services; const linkToAlertsPage = http.basePath.prepend( `${ALERTS_PATH}?_a=${encode({ - kuery: `${queryField}:"${assetId}"`, + kuery, rangeFrom: dateRange.from, rangeTo: dateRange.to, status: 'all', })}` ); - return ( - + ); }; -export const LinkToAlertsHomePage = () => { +export const LinkToAlertsHomePage = ({ dataTestSubj }: { dataTestSubj?: string }) => { const { services } = useKibanaContextForPlugin(); const { http } = services; @@ -57,7 +57,7 @@ export const LinkToAlertsHomePage = () => { return ( { const { services } = useKibanaContextForPlugin(); + const { featureFlags } = usePluginConfig(); const { alertStatus, setAlertStatus, alertsEsQueryByStatus } = useAlertsQuery(); + const [isAlertFlyoutVisible, { toggle: toggleAlertFlyout }] = useBoolean(false); const { onSubmit, searchCriteria } = useUnifiedSearchContext(); @@ -41,6 +49,23 @@ export const AlertsTabContent = () => { + + {featureFlags.inventoryThresholdAlertRuleEnabled && ( + + + + )} + + + + { )} + {featureFlags.inventoryThresholdAlertRuleEnabled && ( + + )} ); }; diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index a1de4943f1374..d466b6de05150 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -21271,7 +21271,6 @@ "xpack.infra.assetDetails.datePicker.commonlyUsedRanges.last7Days": "7 derniers jours", "xpack.infra.assetDetails.datePicker.tooltip.autoRefresh": "Les données chargent continuellement ?", "xpack.infra.assetDetails.datePicker.tooltip.autoRefresh.troubleshoot": "Essayez d'augmenter l'intervalle d'actualisation, de raccourcir la plage de dates ou de désactiver l'actualisation automatique.", - "xpack.infra.assetDetails.flyout.AlertsPageLinkLabel": "Afficher tout", "xpack.infra.assetDetails.header.return": "Renvoyer", "xpack.infra.assetDetails.metadata.tooltip.documentationLink": "host.name", "xpack.infra.assetDetails.metadata.tooltip.metadata": "Métadonnées", @@ -21412,7 +21411,6 @@ "xpack.infra.hostsViewPage.tabs.metricsCharts.title": "Indicateurs", "xpack.infra.hostsViewPage.tooltip.whatAreTheseMetricsLink": "Que sont ces indicateurs ?", "xpack.infra.hostsViewPage.tooltip.whyAmISeeingDottedLines": "Pourquoi des lignes pointillées apparaissent-elles ?", - "xpack.infra.infra.assetDetails.alerts.createAlertLink": "Créer une règle", "xpack.infra.infra.nodeDetails.openAsPage": "Ouvrir en tant que page", "xpack.infra.inventory.alerting.groupActionVariableDescription": "Nom des données de reporting du groupe", "xpack.infra.inventoryId.host.ipCodeLabel": "host.ip", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a24031e182be0..a2b7a4293ffc7 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -21234,7 +21234,6 @@ "xpack.infra.assetDetails.datePicker.commonlyUsedRanges.last7Days": "過去 7 日間", "xpack.infra.assetDetails.datePicker.tooltip.autoRefresh": "データの読み込みが継続的に行われていますか?", "xpack.infra.assetDetails.datePicker.tooltip.autoRefresh.troubleshoot": "更新間隔を長くするか、日付範囲を短くするか、自動更新をオフにしてみてください。", - "xpack.infra.assetDetails.flyout.AlertsPageLinkLabel": "すべて表示", "xpack.infra.assetDetails.header.return": "戻る", "xpack.infra.assetDetails.metadata.tooltip.documentationLink": "host.name", "xpack.infra.assetDetails.metadata.tooltip.metadata": "メタデータ", @@ -21386,7 +21385,6 @@ "xpack.infra.hostsViewPage.tabs.metricsCharts.title": "メトリック", "xpack.infra.hostsViewPage.tooltip.whatAreTheseMetricsLink": "これらのメトリックは何か。", "xpack.infra.hostsViewPage.tooltip.whyAmISeeingDottedLines": "点線が表示されている理由", - "xpack.infra.infra.assetDetails.alerts.createAlertLink": "ルールを作成", "xpack.infra.infra.nodeDetails.openAsPage": "ページとして開く", "xpack.infra.inventory.alerting.groupActionVariableDescription": "データを報告するグループの名前", "xpack.infra.inventoryId.host.ipCodeLabel": "host.ip", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 33a8d29847d58..80c2ea8e3fe6c 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -21277,7 +21277,6 @@ "xpack.infra.assetDetails.datePicker.commonlyUsedRanges.last7Days": "过去 7 天", "xpack.infra.assetDetails.datePicker.tooltip.autoRefresh": "持续出现加载数据问题?", "xpack.infra.assetDetails.datePicker.tooltip.autoRefresh.troubleshoot": "请尝试增加刷新时间间隔,缩短日期范围或关闭自动刷新。", - "xpack.infra.assetDetails.flyout.AlertsPageLinkLabel": "全部显示", "xpack.infra.assetDetails.header.return": "返回", "xpack.infra.assetDetails.metadata.tooltip.documentationLink": "host.name", "xpack.infra.assetDetails.metadata.tooltip.metadata": "元数据", @@ -21418,7 +21417,6 @@ "xpack.infra.hostsViewPage.tabs.metricsCharts.title": "指标", "xpack.infra.hostsViewPage.tooltip.whatAreTheseMetricsLink": "这些指标是什么?", "xpack.infra.hostsViewPage.tooltip.whyAmISeeingDottedLines": "为什么我看到的是虚线?", - "xpack.infra.infra.assetDetails.alerts.createAlertLink": "创建规则", "xpack.infra.infra.nodeDetails.openAsPage": "以页面形式打开", "xpack.infra.inventory.alerting.groupActionVariableDescription": "报告数据的组名称", "xpack.infra.inventoryId.host.ipCodeLabel": "host.ip", From fa936db23be141a2c69952dfe4e6b201d4a4a980 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 22 Apr 2024 10:14:37 -0400 Subject: [PATCH 028/183] [Observability Onboarding] Scroll to Package List on collection click (#180961) ## Summary Resolves #180814. When the user clicks a collection, we are presently focusing the search bar and scrolling to it. This patch will change the behavior to _not_ change the focus programmatically, and smooth scroll the package list into view. ### Note I am open to suggestions on how to make [this](https://github.com/elastic/kibana/pull/180961/files#diff-23a1716beb9bc5c1c0ef8b6f30f0f805fb7f148770f3dc82a035fcd4bbdb1658R94) less of a hack, but it make the experience better because we give the component time to render before doing the scroll. Here's a before/after: #### Before On initial click of the Azure collection, we only see two rows from the scroll. ![20240416120336](https://github.com/elastic/kibana/assets/18429259/665e99ed-861d-4ba1-acc4-8cf5422973e9) #### After With the delay, we see the full row. ![20240416122920](https://github.com/elastic/kibana/assets/18429259/2fd9f7c4-c81a-45a8-876f-eb2b1d94db73) --------- Co-authored-by: Joe Reuter --- .../onboarding_flow_form.tsx | 18 ++++++++++-------- .../public/application/packages_list/index.tsx | 13 +++++-------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx index 5a10e507a6851..6a1a062e5a7e1 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx @@ -81,18 +81,20 @@ export const OnboardingFlowForm: FunctionComponent = () => { const radioGroupId = useGeneratedHtmlId({ prefix: 'onboardingCategory' }); const [searchParams, setSearchParams] = useSearchParams(); - const packageListSearchBarRef = React.useRef(null); + const packageListRef = React.useRef(null); const [integrationSearch, setIntegrationSearch] = useState(''); const createCollectionCardHandler = useCallback( (query: string) => () => { setIntegrationSearch(query); - if (packageListSearchBarRef.current) { - packageListSearchBarRef.current.focus(); - packageListSearchBarRef.current.scrollIntoView({ - behavior: 'auto', - block: 'center', - }); + if (packageListRef.current) { + // adding a slight delay causes the search bar to be rendered + new Promise((r) => setTimeout(r, 10)).then(() => + packageListRef.current?.scrollIntoView({ + behavior: 'smooth', + block: 'center', + }) + ); } }, [setIntegrationSearch] @@ -163,7 +165,7 @@ export const OnboardingFlowForm: FunctionComponent = () => { showSearchBar={true} searchQuery={integrationSearch} setSearchQuery={setIntegrationSearch} - ref={packageListSearchBarRef} + ref={packageListRef} customCards={customCards?.filter(({ name, type }) => type === 'generated')} joinCardLists /> diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx index 7930d4e6a699c..77d38e1159608 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx @@ -29,7 +29,7 @@ interface Props { */ selectedCategory?: string; showSearchBar?: boolean; - searchBarRef?: React.Ref; + packageListRef?: React.Ref; searchQuery?: string; setSearchQuery?: React.Dispatch>; /** @@ -48,7 +48,7 @@ const PackageListGridWrapper = ({ selectedCategory = 'observability', useAvailablePackages, showSearchBar = false, - searchBarRef, + packageListRef, searchQuery, setSearchQuery, customCards, @@ -79,7 +79,7 @@ const PackageListGridWrapper = ({ return ( }> -
+
{showSearchBar && (
{ - (searchBarRef as React.MutableRefObject).current = ref; - }, }} onChange={(arg) => { if (setSearchQuery) { @@ -125,7 +122,7 @@ const PackageListGridWrapper = ({ }; const WithAvailablePackages = React.forwardRef( - (props: Props, searchBarRef?: React.Ref) => { + (props: Props, packageListRef?: React.Ref) => { const ref = useRef(null); const { @@ -173,7 +170,7 @@ const WithAvailablePackages = React.forwardRef( ); } From a41177f32cc1d02a425f70979694d8c160195649 Mon Sep 17 00:00:00 2001 From: Hannah Mudge Date: Mon, 22 Apr 2024 08:52:46 -0600 Subject: [PATCH 029/183] [Dashboard] Default to saved object description when panel description is not provided (#181177) Closes https://github.com/elastic/kibana/issues/181172 ## Summary This PR fixes a bug where panels were not showing descriptions from library items - this is because (1) we weren't providing the `defaultPanelDescription` as part of the default embeddable API and (2) the panel header was not defaulting to the `defaultPanelDescription` when a panel description was not provided. Because of (1), the panel settings flyout showed a blank description **despite** having the correct logic for defaulting to the default panel description - that is why the tests in `customize_panel_editor.test.tsx` passed but it didn't work in production. ### 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 ### 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) --- .../compatibility/legacy_embeddable_to_api.ts | 2 + .../public/lib/embeddables/embeddable.tsx | 2 + .../presentation_panel_internal.test.tsx | 37 ++++++++++++++++++- .../presentation_panel_internal.tsx | 4 +- .../functional/page_objects/dashboard_page.ts | 4 +- 5 files changed, 46 insertions(+), 3 deletions(-) diff --git a/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts b/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts index 957cee6353d0e..8253fabe9a8f3 100644 --- a/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts +++ b/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts @@ -153,6 +153,7 @@ export const legacyEmbeddableToApi = ( const panelDescription = inputKeyToSubject('description'); const defaultPanelTitle = outputKeyToSubject('defaultTitle'); + const defaultPanelDescription = outputKeyToSubject('defaultDescription'); const disabledActionIds = inputKeyToSubject('disabledActions'); function getSavedObjectId(input: { savedObjectId?: string }, output: { savedObjectId?: string }) { @@ -275,6 +276,7 @@ export const legacyEmbeddableToApi = ( setPanelDescription, panelDescription, + defaultPanelDescription, canLinkToLibrary: () => canLinkLegacyEmbeddable(embeddable), linkToLibrary: () => linkLegacyEmbeddable(embeddable), diff --git a/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx b/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx index 2dfa06d8db9d2..07c52f6cbeed1 100644 --- a/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx +++ b/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx @@ -134,6 +134,7 @@ export abstract class Embeddable< timeRange$: this.timeRange$, isEditingEnabled: this.isEditingEnabled, panelDescription: this.panelDescription, + defaultPanelDescription: this.defaultPanelDescription, canLinkToLibrary: this.canLinkToLibrary, disabledActionIds: this.disabledActionIds, unlinkFromLibrary: this.unlinkFromLibrary, @@ -176,6 +177,7 @@ export abstract class Embeddable< public isEditingEnabled: LegacyEmbeddableAPI['isEditingEnabled']; public canLinkToLibrary: LegacyEmbeddableAPI['canLinkToLibrary']; public panelDescription: LegacyEmbeddableAPI['panelDescription']; + public defaultPanelDescription: LegacyEmbeddableAPI['defaultPanelDescription']; public disabledActionIds: LegacyEmbeddableAPI['disabledActionIds']; public unlinkFromLibrary: LegacyEmbeddableAPI['unlinkFromLibrary']; public setTimeRange: LegacyEmbeddableAPI['setTimeRange']; diff --git a/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.test.tsx b/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.test.tsx index 8386535a7ebeb..a671212e94ed2 100644 --- a/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.test.tsx +++ b/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.test.tsx @@ -157,10 +157,11 @@ describe('Presentation panel', () => { }); describe('titles', () => { - it('renders the panel title from the api', async () => { + it('renders the panel title from the api and not the default title', async () => { const api: DefaultPresentationPanelApi = { uuid: 'test', panelTitle: new BehaviorSubject('SUPER TITLE'), + defaultPanelTitle: new BehaviorSubject('SO Title'), }; await renderPresentationPanel({ api }); await waitFor(() => { @@ -168,6 +169,28 @@ describe('Presentation panel', () => { }); }); + it('renders the default title from the api when a panel title is not provided', async () => { + const api: DefaultPresentationPanelApi = { + uuid: 'test', + defaultPanelTitle: new BehaviorSubject('SO Title'), + }; + await renderPresentationPanel({ api }); + await waitFor(() => { + expect(screen.getByTestId('embeddablePanelTitleInner')).toHaveTextContent('SO Title'); + }); + }); + + it("does not render an info icon when the api doesn't provide a panel description or default description", async () => { + const api: DefaultPresentationPanelApi = { + uuid: 'test', + panelTitle: new BehaviorSubject('SUPER TITLE'), + }; + await renderPresentationPanel({ api }); + await waitFor(() => { + expect(screen.queryByTestId('embeddablePanelTitleDescriptionIcon')).toBe(null); + }); + }); + it('renders an info icon when the api provides a panel description', async () => { const api: DefaultPresentationPanelApi = { uuid: 'test', @@ -180,6 +203,18 @@ describe('Presentation panel', () => { }); }); + it('renders an info icon when the api provides a default description', async () => { + const api: DefaultPresentationPanelApi = { + uuid: 'test', + panelTitle: new BehaviorSubject('SUPER TITLE'), + defaultPanelDescription: new BehaviorSubject('SO Description'), + }; + await renderPresentationPanel({ api }); + await waitFor(() => { + expect(screen.getByTestId('embeddablePanelTitleDescriptionIcon')).toBeInTheDocument(); + }); + }); + it('does not render a title when in view mode when the provided title is blank', async () => { const api: DefaultPresentationPanelApi & PublishesViewMode = { uuid: 'test', diff --git a/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx b/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx index da74df952b7e7..2d46bca73d3b8 100644 --- a/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx +++ b/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx @@ -55,6 +55,7 @@ export const PresentationPanelInternal = < hidePanelTitle, panelDescription, defaultPanelTitle, + defaultPanelDescription, rawViewMode, parentHidePanelTitle, ] = useBatchedOptionalPublishingSubjects( @@ -64,6 +65,7 @@ export const PresentationPanelInternal = < api?.hidePanelTitle, api?.panelDescription, api?.defaultPanelTitle, + api?.defaultPanelDescription, viewModeSubject, api?.parentApi?.hidePanelTitle ); @@ -124,9 +126,9 @@ export const PresentationPanelInternal = < showBadges={showBadges} getActions={getActions} actionPredicate={actionPredicate} - panelDescription={panelDescription} showNotifications={showNotifications} panelTitle={panelTitle ?? defaultPanelTitle} + panelDescription={panelDescription ?? defaultPanelDescription} /> )} {blockingError && api && ( diff --git a/test/functional/page_objects/dashboard_page.ts b/test/functional/page_objects/dashboard_page.ts index 2b98eedbb62f1..665c5f824390c 100644 --- a/test/functional/page_objects/dashboard_page.ts +++ b/test/functional/page_objects/dashboard_page.ts @@ -588,7 +588,9 @@ export class DashboardPageObject extends FtrService { public async getPanelTitles() { this.log.debug('in getPanelTitles'); - const titleObjects = await this.find.allByCssSelector('span.embPanel__titleInner'); + const titleObjects = await this.find.allByCssSelector( + '[data-test-subj=embeddablePanelTitleInner] .embPanel__titleText' + ); return await Promise.all(titleObjects.map(async (title) => await title.getVisibleText())); } From 019dd790965ac86a3bb3f49619e41430aaa89b4e Mon Sep 17 00:00:00 2001 From: Joe McElroy Date: Mon, 22 Apr 2024 16:07:35 +0100 Subject: [PATCH 030/183] [Search] [Playground] SideNav: move playground to build (#181087) Update Search nav to build and move playground from content to build ![image](https://github.com/elastic/kibana/assets/49480/8393a3e1-0d42-48c7-aa41-a9cc17ef48fa) update the kibana side nav to feature Playground. This routes from application to playground. ![image](https://github.com/elastic/kibana/assets/49480/22fe95df-e277-4c0b-8e65-edba8ba940cf) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- packages/deeplinks/search/deep_links.ts | 4 +-- packages/kbn-doc-links/src/get_doc_links.ts | 1 + packages/kbn-doc-links/src/types.ts | 1 + packages/solution-nav/es/definition.ts | 2 +- .../enterprise_search/common/constants.ts | 2 +- .../components/layout/page_template.tsx | 13 ++++++-- .../playground/header_docs_action.tsx | 31 +++++++++++++++++++ .../components/playground/playground.tsx | 7 +++-- .../components/playground/types.ts | 0 .../applications/applications/index.tsx | 8 +++-- .../applications/applications/routes.ts | 2 ++ .../components/layout/page_template.tsx | 2 -- .../search_playground_popover.tsx | 3 +- .../enterprise_search_content/index.tsx | 5 --- .../enterprise_search_content/routes.ts | 1 - .../shared/doc_links/doc_links.ts | 3 ++ .../applications/shared/layout/nav.test.tsx | 30 +++++++++--------- .../public/applications/shared/layout/nav.tsx | 31 ++++++++++--------- .../enterprise_search/public/plugin.ts | 12 ++++--- .../apps/group3/enterprise_search.ts | 16 +++++++++- 20 files changed, 118 insertions(+), 56 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/applications/components/playground/header_docs_action.tsx rename x-pack/plugins/enterprise_search/public/applications/{enterprise_search_content => applications}/components/playground/playground.tsx (88%) rename x-pack/plugins/enterprise_search/public/applications/{enterprise_search_content => applications}/components/playground/types.ts (100%) diff --git a/packages/deeplinks/search/deep_links.ts b/packages/deeplinks/search/deep_links.ts index 39e0604d53170..fbd8e363948cd 100644 --- a/packages/deeplinks/search/deep_links.ts +++ b/packages/deeplinks/search/deep_links.ts @@ -26,9 +26,9 @@ export type EnterpriseSearchWorkplaceSearchApp = typeof ENTERPRISE_SEARCH_WORKPL export type ServerlessSearchApp = typeof SERVERLESS_ES_APP_ID; export type ConnectorsId = typeof SERVERLESS_ES_CONNECTORS_ID; -export type ContentLinkId = 'searchIndices' | 'connectors' | 'webCrawlers' | 'playground'; +export type ContentLinkId = 'searchIndices' | 'connectors' | 'webCrawlers'; -export type ApplicationsLinkId = 'searchApplications'; +export type ApplicationsLinkId = 'searchApplications' | 'playground'; export type AppsearchLinkId = 'engines'; diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 502343ee0a51b..a4c2fd500539f 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -206,6 +206,7 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D licenseManagement: `${ENTERPRISE_SEARCH_DOCS}license-management.html`, machineLearningStart: `${ELASTICSEARCH_DOCS}nlp-example.html`, mailService: `${ENTERPRISE_SEARCH_DOCS}mailer-configuration.html`, + playground: `${KIBANA_DOCS}playground.html`, mlDocumentEnrichment: `${ELASTICSEARCH_DOCS}ingest-pipeline-search-inference.html`, searchApplicationsTemplates: `${ELASTICSEARCH_DOCS}search-application-api.html`, searchApplicationsSearchApi: `${ELASTICSEARCH_DOCS}search-application-security.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 30f063b195d7a..ed6b805d5fcb2 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -170,6 +170,7 @@ export interface DocLinks { readonly languageClients: string; readonly licenseManagement: string; readonly machineLearningStart: string; + readonly playground: string; readonly mailService: string; readonly mlDocumentEnrichment: string; readonly searchApplicationsTemplates: string; diff --git a/packages/solution-nav/es/definition.ts b/packages/solution-nav/es/definition.ts index f141a4995bcb1..aea5a0e214e97 100644 --- a/packages/solution-nav/es/definition.ts +++ b/packages/solution-nav/es/definition.ts @@ -123,7 +123,7 @@ const navTree: NavigationTreeDefinition = { }), children: [ { - link: 'enterpriseSearchContent:playground', + link: 'enterpriseSearchApplications:playground', }, { title: i18n.translate('navigation.searchNav.build.searchApplications', { diff --git a/x-pack/plugins/enterprise_search/common/constants.ts b/x-pack/plugins/enterprise_search/common/constants.ts index c50c66db48f3c..b0b2b83326f2f 100644 --- a/x-pack/plugins/enterprise_search/common/constants.ts +++ b/x-pack/plugins/enterprise_search/common/constants.ts @@ -153,7 +153,7 @@ export const APPLICATIONS_PLUGIN = { defaultMessage: 'Applications', }), NAV_TITLE: i18n.translate('xpack.enterpriseSearch.applications.navTitle', { - defaultMessage: 'Search Applications', + defaultMessage: 'Build', }), SUPPORT_URL: 'https://discuss.elastic.co/c/enterprise-search/', URL: '/app/enterprise_search/applications', diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/components/layout/page_template.tsx b/x-pack/plugins/enterprise_search/public/applications/applications/components/layout/page_template.tsx index 550acf7fa9359..5a36b58733e3c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/components/layout/page_template.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/applications/components/layout/page_template.tsx @@ -15,13 +15,16 @@ import { SetEnterpriseSearchApplicationsChrome } from '../../../shared/kibana_ch import { EnterpriseSearchPageTemplateWrapper, PageTemplateProps } from '../../../shared/layout'; import { useEnterpriseSearchApplicationNav } from '../../../shared/layout'; import { SendEnterpriseSearchTelemetry } from '../../../shared/telemetry'; +import { PlaygroundHeaderDocsAction } from '../playground/header_docs_action'; import { SearchApplicationHeaderDocsAction } from '../search_application/header_docs_action'; export type EnterpriseSearchApplicationsPageTemplateProps = Omit< PageTemplateProps, 'useEndpointHeaderActions' > & { + docLink?: 'search_application' | 'playground'; hasSchemaConflicts?: boolean; + restrictWidth?: boolean; searchApplicationName?: string; }; @@ -33,6 +36,8 @@ export const EnterpriseSearchApplicationsPageTemplate: React.FC< pageViewTelemetry, searchApplicationName, hasSchemaConflicts, + restrictWidth = true, + docLink = 'search_application', ...pageTemplateProps }) => { const navItems = useEnterpriseSearchApplicationNav( @@ -42,7 +47,11 @@ export const EnterpriseSearchApplicationsPageTemplate: React.FC< ); const { renderHeaderActions } = useValues(KibanaLogic); useLayoutEffect(() => { - renderHeaderActions(SearchApplicationHeaderDocsAction); + const docAction = { + playground: PlaygroundHeaderDocsAction, + search_application: SearchApplicationHeaderDocsAction, + }[docLink]; + renderHeaderActions(docAction); return () => { renderHeaderActions(); @@ -55,7 +64,7 @@ export const EnterpriseSearchApplicationsPageTemplate: React.FC< items: navItems, name: ENTERPRISE_SEARCH_CONTENT_PLUGIN.NAME, }} - restrictWidth + restrictWidth={restrictWidth} setPageChrome={pageChrome && } useEndpointHeaderActions={false} > diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/components/playground/header_docs_action.tsx b/x-pack/plugins/enterprise_search/public/applications/applications/components/playground/header_docs_action.tsx new file mode 100644 index 0000000000000..8fc53b3abcc57 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/applications/components/playground/header_docs_action.tsx @@ -0,0 +1,31 @@ +/* + * 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 React from 'react'; + +import { EuiButtonEmpty } from '@elastic/eui'; + +import { i18n } from '@kbn/i18n'; + +import { docLinks } from '../../../shared/doc_links'; +import { EndpointsHeaderAction } from '../../../shared/layout/endpoints_header_action'; + +export const PlaygroundHeaderDocsAction: React.FC = () => ( + + + {i18n.translate('xpack.enterpriseSearch.content.playground.header.docLink', { + defaultMessage: 'Playground Docs', + })} + + +); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/playground/playground.tsx b/x-pack/plugins/enterprise_search/public/applications/applications/components/playground/playground.tsx similarity index 88% rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/playground/playground.tsx rename to x-pack/plugins/enterprise_search/public/applications/applications/components/playground/playground.tsx index ac2626d556229..a286f865c6a1c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/playground/playground.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/applications/components/playground/playground.tsx @@ -14,7 +14,7 @@ import { useValues } from 'kea'; import { i18n } from '@kbn/i18n'; import { KibanaLogic } from '../../../shared/kibana'; -import { EnterpriseSearchContentPageTemplate } from '../layout/page_template'; +import { EnterpriseSearchApplicationsPageTemplate } from '../layout/page_template'; export const Playground: React.FC = () => { const [searchParams] = useSearchParams(); @@ -32,7 +32,7 @@ export const Playground: React.FC = () => { indices: index ? [index] : [], }} > - { restrictWidth={false} customPageSections bottomBorder="extended" + docLink="playground" > - + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/playground/types.ts b/x-pack/plugins/enterprise_search/public/applications/applications/components/playground/types.ts similarity index 100% rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/playground/types.ts rename to x-pack/plugins/enterprise_search/public/applications/applications/components/playground/types.ts diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/index.tsx b/x-pack/plugins/enterprise_search/public/applications/applications/index.tsx index a09a4c98765ac..c9676137e70f2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/applications/index.tsx @@ -11,16 +11,20 @@ import { Redirect } from 'react-router-dom'; import { Routes, Route } from '@kbn/shared-ux-router'; import { NotFound } from './components/not_found'; +import { Playground } from './components/playground/playground'; import { SearchApplicationsRouter } from './components/search_applications/search_applications_router'; -import { ROOT_PATH, SEARCH_APPLICATIONS_PATH } from './routes'; +import { PLAYGROUND_PATH, ROOT_PATH, SEARCH_APPLICATIONS_PATH } from './routes'; export const Applications = () => { return ( - + + + + diff --git a/x-pack/plugins/enterprise_search/public/applications/applications/routes.ts b/x-pack/plugins/enterprise_search/public/applications/applications/routes.ts index e919de033b3fa..5779f544c3f34 100644 --- a/x-pack/plugins/enterprise_search/public/applications/applications/routes.ts +++ b/x-pack/plugins/enterprise_search/public/applications/applications/routes.ts @@ -17,6 +17,8 @@ export enum SearchApplicationViewTabs { export const SEARCH_APPLICATION_CREATION_PATH = `${SEARCH_APPLICATIONS_PATH}/new`; export const SEARCH_APPLICATION_PATH = `${SEARCH_APPLICATIONS_PATH}/:searchApplicationName`; export const SEARCH_APPLICATION_TAB_PATH = `${SEARCH_APPLICATION_PATH}/:tabId`; +export const PLAYGROUND_PATH = `${ROOT_PATH}playground`; + export const SEARCH_APPLICATION_CONNECT_PATH = `${SEARCH_APPLICATION_PATH}/${SearchApplicationViewTabs.CONNECT}/:connectTabId`; export enum SearchApplicationConnectTabs { SEARCHAPI = 'search_api', diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/layout/page_template.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/layout/page_template.tsx index a4d514e0ec1d8..0ff30a31ebd34 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/layout/page_template.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/layout/page_template.tsx @@ -17,7 +17,6 @@ export const EnterpriseSearchContentPageTemplate: React.FC = children, pageChrome, pageViewTelemetry, - restrictWidth = true, ...pageTemplateProps }) => { return ( @@ -27,7 +26,6 @@ export const EnterpriseSearchContentPageTemplate: React.FC = items: useEnterpriseSearchNav(), name: ENTERPRISE_SEARCH_CONTENT_PLUGIN.NAME, }} - restrictWidth={restrictWidth} setPageChrome={pageChrome && } > {pageViewTelemetry && ( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/search_playground_popover.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/search_playground_popover.tsx index 01a6e901af3f9..a0e83929d41fb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/search_playground_popover.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/search_playground_popover.tsx @@ -11,10 +11,9 @@ import { EuiButton } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { PLAYGROUND_PATH } from '../../../../../applications/routes'; import { KibanaLogic } from '../../../../../shared/kibana'; -import { PLAYGROUND_PATH } from '../../../../routes'; - export interface SearchPlaygroundPopoverProps { indexName: string; ingestionMethod: string; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx index ea219fe9fa6eb..2ec701aa9847b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/index.tsx @@ -23,7 +23,6 @@ import { VersionMismatchPage } from '../shared/version_mismatch'; import { ConnectorsRouter } from './components/connectors/connectors_router'; import { CrawlersRouter } from './components/connectors/crawlers_router'; import { NotFound } from './components/not_found'; -import { Playground } from './components/playground/playground'; import { SearchIndicesRouter } from './components/search_indices'; import { CONNECTORS_PATH, @@ -32,7 +31,6 @@ import { ROOT_PATH, SEARCH_INDICES_PATH, SETUP_GUIDE_PATH, - PLAYGROUND_PATH, } from './routes'; export const EnterpriseSearchContent: React.FC = (props) => { @@ -84,9 +82,6 @@ export const EnterpriseSearchContentConfigured: React.FC - - - diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts index 9ce2d02db36d6..6be30af4e986b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/routes.ts @@ -13,7 +13,6 @@ export const ERROR_STATE_PATH = '/error_state'; export const SEARCH_INDICES_PATH = `${ROOT_PATH}search_indices`; export const CONNECTORS_PATH = `${ROOT_PATH}connectors`; export const CRAWLERS_PATH = `${ROOT_PATH}crawlers`; -export const PLAYGROUND_PATH = `${ROOT_PATH}playground`; export const SETTINGS_PATH = `${ROOT_PATH}settings`; export const NEW_INDEX_PATH = `${SEARCH_INDICES_PATH}/new_index`; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts index 228321ef120c1..408d131289d7a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts @@ -124,6 +124,7 @@ class DocLinks { public licenseManagement: string; public machineLearningStart: string; public mlDocumentEnrichment: string; + public playground: string; public pluginsIngestAttachment: string; public queryDsl: string; public restApis: string; @@ -301,6 +302,7 @@ class DocLinks { this.licenseManagement = ''; this.machineLearningStart = ''; this.mlDocumentEnrichment = ''; + this.playground = ''; this.pluginsIngestAttachment = ''; this.queryDsl = ''; this.restApis = ''; @@ -480,6 +482,7 @@ class DocLinks { this.licenseManagement = docLinks.links.enterpriseSearch.licenseManagement; this.machineLearningStart = docLinks.links.enterpriseSearch.machineLearningStart; this.mlDocumentEnrichment = docLinks.links.enterpriseSearch.mlDocumentEnrichment; + this.playground = docLinks.links.enterpriseSearch.playground; this.pluginsIngestAttachment = docLinks.links.plugins.ingestAttachment; this.queryDsl = docLinks.links.query.queryDsl; this.restApis = docLinks.links.apis.restApis; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx index b24f5251af259..7ffb68ef228fa 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx @@ -57,18 +57,18 @@ const baseNavItems = [ items: undefined, name: 'Web crawlers', }, - { - href: '/app/enterprise_search/content/playground', - id: 'playground', - items: undefined, - name: 'Playground', - }, ], name: 'Content', }, { - id: 'applications', + id: 'build', items: [ + { + href: '/app/enterprise_search/applications/playground', + id: 'playground', + items: undefined, + name: 'Playground', + }, { href: '/app/enterprise_search/applications/search_applications', id: 'searchApplications', @@ -82,7 +82,7 @@ const baseNavItems = [ name: 'Behavioral Analytics', }, ], - name: 'Applications', + name: 'Build', }, { id: 'es_getting_started', @@ -243,11 +243,11 @@ describe('useEnterpriseSearchApplicationNav', () => { expect(navItems![0].id).toEqual('home'); expect(navItems?.slice(1).map((ni) => ni.name)).toEqual([ 'Content', - 'Applications', + 'Build', 'Getting started', 'Enterprise Search', ]); - const searchItem = navItems?.find((ni) => ni.id === 'applications'); + const searchItem = navItems?.find((ni) => ni.id === 'build'); expect(searchItem).not.toBeUndefined(); expect(searchItem!.items).not.toBeUndefined(); // @ts-ignore @@ -300,11 +300,11 @@ describe('useEnterpriseSearchApplicationNav', () => { expect(navItems![0].id).toEqual('home'); expect(navItems?.slice(1).map((ni) => ni.name)).toEqual([ 'Content', - 'Applications', + 'Build', 'Getting started', 'Enterprise Search', ]); - const searchItem = navItems?.find((ni) => ni.id === 'applications'); + const searchItem = navItems?.find((ni) => ni.id === 'build'); expect(searchItem).not.toBeUndefined(); expect(searchItem!.items).not.toBeUndefined(); // @ts-ignore @@ -330,7 +330,7 @@ describe('useEnterpriseSearchApplicationNav', () => { // @ts-ignore const engineItem = navItems - .find((ni: EuiSideNavItemType) => ni.id === 'applications') + .find((ni: EuiSideNavItemType) => ni.id === 'build') .items.find((ni: EuiSideNavItemType) => ni.id === 'searchApplications') .items[0].items.find( (ni: EuiSideNavItemType) => ni.id === 'enterpriseSearchApplicationsContent' @@ -398,9 +398,9 @@ describe('useEnterpriseSearchAnalyticsNav', () => { integration: '/integration-path', overview: '/overview-path', }); - const applicationsNav = navItems?.find((item) => item.id === 'applications'); + const applicationsNav = navItems?.find((item) => item.id === 'build'); expect(applicationsNav).not.toBeUndefined(); - const analyticsNav = applicationsNav?.items?.[1]; + const analyticsNav = applicationsNav?.items?.[2]; expect(analyticsNav).not.toBeUndefined(); expect(analyticsNav).toEqual({ href: '/app/enterprise_search/analytics', diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx index 4a3cb6dc197fc..ced35c94d6853 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx @@ -23,10 +23,13 @@ import { VECTOR_SEARCH_PLUGIN, WORKPLACE_SEARCH_PLUGIN, } from '../../../../common/constants'; -import { SEARCH_APPLICATIONS_PATH, SearchApplicationViewTabs } from '../../applications/routes'; -import { useIndicesNav } from '../../enterprise_search_content/components/search_index/indices/indices_nav'; import { + SEARCH_APPLICATIONS_PATH, + SearchApplicationViewTabs, PLAYGROUND_PATH, +} from '../../applications/routes'; +import { useIndicesNav } from '../../enterprise_search_content/components/search_index/indices/indices_nav'; +import { CONNECTORS_PATH, CRAWLERS_PATH, SEARCH_INDICES_PATH, @@ -93,6 +96,14 @@ export const useEnterpriseSearchNav = () => { to: ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + CRAWLERS_PATH, }), }, + ], + name: i18n.translate('xpack.enterpriseSearch.nav.contentTitle', { + defaultMessage: 'Content', + }), + }, + { + id: 'build', + items: [ { id: 'playground', name: i18n.translate('xpack.enterpriseSearch.nav.PlaygroundTitle', { @@ -101,17 +112,9 @@ export const useEnterpriseSearchNav = () => { ...generateNavLink({ shouldNotCreateHref: true, shouldShowActiveForSubroutes: true, - to: ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + PLAYGROUND_PATH, + to: APPLICATIONS_PLUGIN.URL + PLAYGROUND_PATH, }), }, - ], - name: i18n.translate('xpack.enterpriseSearch.nav.contentTitle', { - defaultMessage: 'Content', - }), - }, - { - id: 'applications', - items: [ { id: 'searchApplications', name: i18n.translate('xpack.enterpriseSearch.nav.searchApplicationsTitle', { @@ -134,7 +137,7 @@ export const useEnterpriseSearchNav = () => { }, ], name: i18n.translate('xpack.enterpriseSearch.nav.applicationsTitle', { - defaultMessage: 'Applications', + defaultMessage: 'Build', }), }, { @@ -226,7 +229,7 @@ export const useEnterpriseSearchApplicationNav = ( const navItems = useEnterpriseSearchNav(); if (!navItems) return undefined; if (!searchApplicationName) return navItems; - const applicationsItem = navItems.find((item) => item.id === 'applications'); + const applicationsItem = navItems.find((item) => item.id === 'build'); if (!applicationsItem || !applicationsItem.items) return navItems; const searchApplicationsItem = applicationsItem.items?.find( (item) => item.id === 'searchApplications' @@ -320,7 +323,7 @@ export const useEnterpriseSearchAnalyticsNav = ( if (!navItems) return undefined; - const applicationsNav = navItems.find((item) => item.id === 'applications'); + const applicationsNav = navItems.find((item) => item.id === 'build'); const analyticsNav = applicationsNav?.items?.find((item) => item.id === 'analyticsCollections'); if (!name || !paths || !analyticsNav) return navItems; diff --git a/x-pack/plugins/enterprise_search/public/plugin.ts b/x-pack/plugins/enterprise_search/public/plugin.ts index c46e888cb7168..60134aafd8534 100644 --- a/x-pack/plugins/enterprise_search/public/plugin.ts +++ b/x-pack/plugins/enterprise_search/public/plugin.ts @@ -55,12 +55,11 @@ import { import { ClientConfigType, InitialAppData } from '../common/types'; import { ENGINES_PATH } from './applications/app_search/routes'; -import { SEARCH_APPLICATIONS_PATH } from './applications/applications/routes'; +import { SEARCH_APPLICATIONS_PATH, PLAYGROUND_PATH } from './applications/applications/routes'; import { CONNECTORS_PATH, SEARCH_INDICES_PATH, CRAWLERS_PATH, - PLAYGROUND_PATH, } from './applications/enterprise_search_content/routes'; import { docLinks } from './applications/shared/doc_links'; @@ -122,16 +121,17 @@ const contentLinks: AppDeepLink[] = [ defaultMessage: 'Web crawlers', }), }, +]; + +const applicationsLinks: AppDeepLink[] = [ { id: 'playground', path: `/${PLAYGROUND_PATH}`, title: i18n.translate('xpack.enterpriseSearch.navigation.contentPlaygroundLinkLabel', { defaultMessage: 'Playground', }), + visibleIn: ['sideNav', 'globalSearch'], }, -]; - -const applicationsLinks: AppDeepLink[] = [ { id: 'searchApplications', path: `/${SEARCH_APPLICATIONS_PATH}`, @@ -141,6 +141,7 @@ const applicationsLinks: AppDeepLink[] = [ defaultMessage: 'Search Applications', } ), + visibleIn: ['globalSearch'], }, ]; @@ -359,6 +360,7 @@ export class EnterpriseSearchPlugin implements Plugin { return renderApp(Applications, kibanaDeps, pluginData); }, title: APPLICATIONS_PLUGIN.NAV_TITLE, + visibleIn: [], }); core.application.register({ diff --git a/x-pack/test/accessibility/apps/group3/enterprise_search.ts b/x-pack/test/accessibility/apps/group3/enterprise_search.ts index a7b7724e43181..3ef1c02c7b8a8 100644 --- a/x-pack/test/accessibility/apps/group3/enterprise_search.ts +++ b/x-pack/test/accessibility/apps/group3/enterprise_search.ts @@ -113,11 +113,25 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); - describe('Search Applications', () => { + describe('Playground', () => { before(async () => { await common.navigateToApp('enterprise_search/applications'); }); + it('loads playground', async function () { + await retry.waitFor( + 'playground docs link', + async () => await testSubjects.exists('playground-documentation-link') + ); + await a11y.testAppSnapshot(); + }); + }); + + describe('Search Applications', () => { + before(async () => { + await common.navigateToApp('enterprise_search/applications/search_applications'); + }); + it('loads search applications list', async function () { await retry.waitFor( 'search apps docs link', From add4c519e656e8a7d1e5be11eb95ede2e746a5b5 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Mon, 22 Apr 2024 22:17:57 +0700 Subject: [PATCH 031/183] [Fleet] Add proxy_id to fleet_server_hosts openAPI (#181316) --- .../plugins/fleet/common/openapi/bundled.json | 26 ++- .../plugins/fleet/common/openapi/bundled.yaml | 158 +++++------------- .../components/schemas/fleet_server_host.yaml | 2 + .../openapi/paths/fleet_server_hosts.yaml | 3 + .../paths/fleet_server_hosts@{item_id}.yaml | 4 + 5 files changed, 74 insertions(+), 119 deletions(-) diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index d10af2053ef4e..9a5c0b19f4d93 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -1,6 +1,5 @@ { "openapi": "3.0.0", - "tags": [], "info": { "title": "Fleet", "description": "OpenAPI schema for Fleet API endpoints", @@ -18,6 +17,12 @@ "url": "http://KIBANA_HOST:5601/api/fleet" } ], + "security": [ + { + "basicAuth": [] + } + ], + "tags": [], "paths": { "/health_check": { "post": { @@ -5228,6 +5233,10 @@ "is_internal": { "type": "boolean" }, + "proxy_id": { + "description": "The ID of the proxy to use for this fleet server host. See the proxies API for more information.", + "type": "string" + }, "host_urls": { "type": "array", "items": { @@ -5343,6 +5352,11 @@ "is_internal": { "type": "boolean" }, + "proxy_id": { + "description": "The ID of the proxy to use for this fleet server host. See the proxies API for more information.", + "type": "string", + "nullable": true + }, "host_urls": { "type": "array", "items": { @@ -9121,6 +9135,9 @@ "is_preconfigured": { "type": "boolean" }, + "proxy_id": { + "type": "string" + }, "host_urls": { "type": "array", "items": { @@ -9168,10 +9185,5 @@ ] } } - }, - "security": [ - { - "basicAuth": [] - } - ] + } } \ No newline at end of file diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 25850c8c6d811..30b4706e5628b 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -1,5 +1,4 @@ openapi: 3.0.0 -tags: [] info: title: Fleet description: OpenAPI schema for Fleet API endpoints @@ -11,6 +10,9 @@ info: url: https://www.elastic.co/licensing/elastic-license servers: - url: http://KIBANA_HOST:5601/api/fleet +security: + - basicAuth: [] +tags: [] paths: /health_check: post: @@ -179,9 +181,7 @@ paths: id: type: string nullable: true - description: >- - the key ID of the GPG key used to verify package - signatures + description: the key ID of the GPG key used to verify package signatures statusCode: type: number headers: @@ -244,9 +244,7 @@ paths: schema: type: boolean default: false - description: >- - Whether to include prerelease packages in categories count (e.g. beta, - rc, preview) + description: Whether to include prerelease packages in categories count (e.g. beta, rc, preview) - in: query name: experimental deprecated: true @@ -300,20 +298,13 @@ paths: schema: type: boolean default: false - description: >- - Whether to exclude the install status of each package. Enabling this - option will opt in to caching for the response via `cache-control` - headers. If you don't need up-to-date installation info for a - package, and are querying for a list of available packages, - providing this flag can improve performance substantially. + description: Whether to exclude the install status of each package. Enabling this option will opt in to caching for the response via `cache-control` headers. If you don't need up-to-date installation info for a package, and are querying for a list of available packages, providing this flag can improve performance substantially. - in: query name: prerelease schema: type: boolean default: false - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) + description: Whether to return prerelease versions of packages (e.g. beta, rc, preview) - in: query name: experimental deprecated: true @@ -378,9 +369,7 @@ paths: schema: type: boolean default: false - description: >- - skip data stream rollover during index template mapping or settings - update + description: skip data stream rollover during index template mapping or settings update requestBody: content: application/zip: @@ -412,9 +401,7 @@ paths: schema: type: boolean default: false - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) + description: Whether to return prerelease versions of packages (e.g. beta, rc, preview) requestBody: content: application/json: @@ -486,9 +473,7 @@ paths: schema: type: boolean default: false - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) + description: Whether to return prerelease versions of packages (e.g. beta, rc, preview) deprecated: true post: summary: Install package @@ -540,9 +525,7 @@ paths: schema: type: boolean default: false - description: >- - skip data stream rollover during index template mapping or settings - update + description: skip data stream rollover during index template mapping or settings update requestBody: content: application/json: @@ -661,18 +644,14 @@ paths: - schema: type: boolean name: full - description: >- - Return all fields from the package manifest, not just those supported - by the Elastic Package Registry + description: Return all fields from the package manifest, not just those supported by the Elastic Package Registry in: query - in: query name: prerelease schema: type: boolean default: false - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) + description: Whether to return prerelease versions of packages (e.g. beta, rc, preview) post: summary: Install package tags: @@ -727,9 +706,7 @@ paths: schema: type: boolean default: false - description: >- - skip data stream rollover during index template mapping or settings - update + description: skip data stream rollover during index template mapping or settings update requestBody: content: application/json: @@ -877,9 +854,7 @@ paths: schema: type: boolean default: false - description: >- - Whether to include prerelease packages in categories count (e.g. - beta, rc, preview) + description: Whether to include prerelease packages in categories count (e.g. beta, rc, preview) requestBody: content: application/json: @@ -1368,9 +1343,7 @@ paths: description: creation time of action latestErrors: type: array - description: >- - latest errors that happened when the agents executed - the action + description: latest errors that happened when the agents executed the action items: type: object properties: @@ -1838,9 +1811,7 @@ paths: description: Unenrolls hosted agents too includeInactive: type: boolean - description: >- - When passing agents by KQL query, unenrolls inactive agents - too + description: When passing agents by KQL query, unenrolls inactive agents too required: - agents example: @@ -2043,18 +2014,12 @@ paths: type: boolean in: query name: full - description: >- - When set to true, retrieve the related package policies for each - agent policy. + description: When set to true, retrieve the related package policies for each agent policy. - schema: type: boolean in: query name: noAgentCount - description: >- - When set to true, do not count how many agents are in the agent - policy, this can improve performance if you are searching over a - large number of agent policies. The "agents" property will always be - 0 if set to true. + description: When set to true, do not count how many agents are in the agent policy, this can improve performance if you are searching over a large number of agent policies. The "agents" property will always be 0 if set to true. description: '' post: summary: Create agent policy @@ -2634,9 +2599,7 @@ paths: '409': $ref: '#/components/responses/error' requestBody: - description: >- - You should use inputs as an object and not use the deprecated inputs - array. + description: You should use inputs as an object and not use the deprecated inputs array. content: application/json: schema: @@ -3260,6 +3223,9 @@ paths: type: boolean is_internal: type: boolean + proxy_id: + description: The ID of the proxy to use for this fleet server host. See the proxies API for more information. + type: string host_urls: type: array items: @@ -3332,6 +3298,10 @@ paths: type: boolean is_internal: type: boolean + proxy_id: + description: The ID of the proxy to use for this fleet server host. See the proxies API for more information. + type: string + nullable: true host_urls: type: array items: @@ -4122,9 +4092,7 @@ components: release: type: string deprecated: true - description: >- - release label is deprecated, derive from the version instead - (packages follow semver) + description: release label is deprecated, derive from the version instead (packages follow semver) enum: - experimental - beta @@ -4403,9 +4371,7 @@ components: properties: cpu_avg: type: number - description: >- - Average agent CPU usage during the last 5 minutes, number - between 0-1 + description: Average agent CPU usage during the last 5 minutes, number between 0-1 memory_size_byte_avg: type: number description: Average agent memory consumption during the last 5 minutes @@ -4672,9 +4638,7 @@ components: - metrics - logs keep_monitoring_alive: - description: >- - When set to true, monitoring will be enabled but logs/metrics - collection will be disabled + description: When set to true, monitoring will be enabled but logs/metrics collection will be disabled type: boolean nullable: true data_output_id: @@ -4694,10 +4658,7 @@ components: inactivity_timeout: type: integer package_policies: - description: >- - This field is present only when retrieving a single agent policy, or - when retrieving a list of agent policies with the ?full=true - parameter + description: This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter type: array items: $ref: '#/components/schemas/package_policy' @@ -4723,22 +4684,15 @@ components: - name - enabled is_protected: - description: >- - Indicates whether the agent policy has tamper protection enabled. - Default false. + description: Indicates whether the agent policy has tamper protection enabled. Default false. type: boolean overrides: type: object - description: >- - Override settings that are defined in the agent policy. Input - settings cannot be overridden. The override option should be used - only in unusual circumstances and not as a routine procedure. + description: Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure. nullable: true advanced_settings: type: object - description: >- - Advanced settings stored in the agent policy, e.g. - agent_limits_go_max_procs + description: Advanced settings stored in the agent policy, e.g. agent_limits_go_max_procs nullable: true required: - id @@ -5063,9 +5017,7 @@ components: example: my description namespace: type: string - description: >- - The package policy namespace. Leave blank to inherit the agent - policy's namespace. + description: The package policy namespace. Leave blank to inherit the agent policy's namespace. example: customnamespace policy_id: type: string @@ -5087,14 +5039,10 @@ components: - version vars: type: object - description: >- - Package root level variable (see integration documentation for more - information) + description: Package root level variable (see integration documentation for more information) inputs: type: object - description: >- - Package policy inputs (see integration documentation to know what - inputs are available) + description: Package policy inputs (see integration documentation to know what inputs are available) example: nginx-logfile: enabled: true @@ -5116,14 +5064,10 @@ components: description: enable or disable that input, (default to true) vars: type: object - description: >- - Input level variable (see integration documentation for more - information) + description: Input level variable (see integration documentation for more information) streams: type: object - description: >- - Input streams (see integration documentation to know what - streams are available) + description: Input streams (see integration documentation to know what streams are available) additionalProperties: type: object properties: @@ -5132,14 +5076,10 @@ components: description: enable or disable that stream, (default to true) vars: type: object - description: >- - Stream level variable (see integration documentation for - more information) + description: Stream level variable (see integration documentation for more information) force: type: boolean - description: >- - Force package policy creation even if package is not verified, or if - the agent policy is managed. + description: Force package policy creation even if package is not verified, or if the agent policy is managed. required: - name - policy_id @@ -5430,9 +5370,7 @@ components: type: string when: deprecated: true - description: >- - Deprecated, kafka output do not support conditionnal topics - anymore. + description: Deprecated, kafka output do not support conditionnal topics anymore. type: object properties: type: @@ -5777,9 +5715,7 @@ components: type: string when: deprecated: true - description: >- - Deprecated, kafka output do not support conditionnal topics - anymore. + description: Deprecated, kafka output do not support conditionnal topics anymore. type: object properties: type: @@ -5890,9 +5826,7 @@ components: host: type: string proxy_id: - description: >- - The ID of the proxy to use for this download source. See the proxies - API for more information. + description: The ID of the proxy to use for this download source. See the proxies API for more information. type: string nullable: true required: @@ -5913,6 +5847,8 @@ components: type: boolean is_preconfigured: type: boolean + proxy_id: + type: string host_urls: type: array items: @@ -5944,5 +5880,3 @@ components: required: - name - url -security: - - basicAuth: [] diff --git a/x-pack/plugins/fleet/common/openapi/components/schemas/fleet_server_host.yaml b/x-pack/plugins/fleet/common/openapi/components/schemas/fleet_server_host.yaml index 2bb08f3acc2a3..4bc977ec47706 100644 --- a/x-pack/plugins/fleet/common/openapi/components/schemas/fleet_server_host.yaml +++ b/x-pack/plugins/fleet/common/openapi/components/schemas/fleet_server_host.yaml @@ -11,6 +11,8 @@ properties: type: boolean is_preconfigured: type: boolean + proxy_id: + type: string host_urls: type: array items: diff --git a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml index 987f61cd7619b..907e7468751a3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml @@ -53,6 +53,9 @@ post: type: boolean is_internal: type: boolean + proxy_id: + description: The ID of the proxy to use for this fleet server host. See the proxies API for more information. + type: string host_urls: type: array items: diff --git a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml index 21d5342d18a5e..69c3635b87277 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml @@ -61,6 +61,10 @@ put: type: boolean is_internal: type: boolean + proxy_id: + description: The ID of the proxy to use for this fleet server host. See the proxies API for more information. + type: string + nullable: true host_urls: type: array items: From d8c41c89347cffc29232e116bb8ebdf31ac49987 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 22 Apr 2024 16:25:42 +0100 Subject: [PATCH 032/183] skip flaky suite (#170371) --- .../response_actions/response_console/process_operations.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts index f7c70ebf8c7e9..8529c68a2186d 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts @@ -31,7 +31,8 @@ describe('Response console', { tags: ['@ess', '@serverless'] }, () => { login(); }); - describe('Processes operations:', () => { + // FLAKY: https://github.com/elastic/kibana/issues/170371 + describe.skip('Processes operations:', () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse; From ebeea05efd66d5943160db58a1816c42d07c1298 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Mon, 22 Apr 2024 11:27:01 -0400 Subject: [PATCH 033/183] skip failing test suite (#170371) --- .../response_actions/response_console/process_operations.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts index 8529c68a2186d..d127be35f7a31 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts @@ -26,7 +26,8 @@ import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_ const AGENT_BEAT_FILE_PATH_SUFFIX = '/components/agentbeat'; -describe('Response console', { tags: ['@ess', '@serverless'] }, () => { +// Failing: See https://github.com/elastic/kibana/issues/170371 +describe.skip('Response console', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { login(); }); From 0643f63d77aa0fd43c8bc380f72f4d9e53874768 Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Mon, 22 Apr 2024 17:09:09 +0100 Subject: [PATCH 034/183] [Obs AI assistant] Relax validation on missing fallbacks (#181324) ## Summary Relaxes the validation which means that we can't quick fix the quotes problem but we are still fixing other syntax errors such as functions misspell etc. --- .../query/correct_query_with_actions.test.ts | 46 ++++--------------- .../query/correct_query_with_actions.ts | 4 +- 2 files changed, 12 insertions(+), 38 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.test.ts index c2cf207a6925d..818f4854e038d 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.test.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.test.ts @@ -33,42 +33,14 @@ describe('correctQueryWithActions', () => { expect(fixedQuery).toBe('from logstash-* | stats var0 = max(bytes) | eval abs(var0) | limit 1'); }); - it(`fixes errors correctly for a query with missing quotes`, async () => { - const fixedQuery = await correctQueryWithActions('from logstash-* | keep field-1'); - expect(fixedQuery).toBe('from logstash-* | keep `field-1`'); - }); - - it(`fixes errors correctly for a query with missing quotes in multiple commands`, async () => { - const fixedQuery = await correctQueryWithActions( - 'from logstash-* | stats avg(field-1) | eval abs(field-2)' - ); - expect(fixedQuery).toBe('from logstash-* | stats avg(`field-1`) | eval abs(`field-2`)'); - }); - - it(`fixes errors correctly for a query with missing quotes and keep with multiple fields`, async () => { - const fixedQuery = await correctQueryWithActions('from logstash-* | keep field-1, field-2'); - expect(fixedQuery).toBe('from logstash-* | keep `field-1`, `field-2`'); - }); - - it(`fixes errors correctly for a query with missing quotes with variable assignment`, async () => { - const fixedQuery = await correctQueryWithActions('from logstash-* | stats var1 = avg(field-1)'); - expect(fixedQuery).toBe('from logstash-* | stats var1 = avg(`field-1`)'); - }); - - it(`fixes errors correctly for a query with missing quotes in an aggregation`, async () => { - const fixedQuery = await correctQueryWithActions('from logstash-* | stats avg(field-1)'); - expect(fixedQuery).toBe('from logstash-* | stats avg(`field-1`)'); - }); - - it(`fixes errors correctly for a query with typo on stats and wrong quotes`, async () => { - const fixedQuery = await correctQueryWithActions('from logstash-* | stats aveg(field-1)'); - expect(fixedQuery).toBe('from logstash-* | stats avg(`field-1`)'); - }); - - it(`fixes errors correctly for a query with missing quotes on stats and keep`, async () => { - const fixedQuery = await correctQueryWithActions( - 'from logstash-* | stats avg(field-1) | keep field-2' - ); - expect(fixedQuery).toBe('from logstash-* | stats avg(`field-1`) | keep `field-2`'); + it(`doesnt complain for @timestamp column`, async () => { + const queryWithTimestamp = `FROM logstash-* + | WHERE @timestamp >= NOW() - 15 minutes + | EVAL bucket = DATE_TRUNC(1 minute, @timestamp) + | STATS avg_cpu = AVG(system.cpu.total.norm.pct) BY service.name, bucket + | SORT avg_cpu DESC + | LIMIT 10`; + const fixedQuery = await correctQueryWithActions(queryWithTimestamp); + expect(fixedQuery).toBe(queryWithTimestamp); }); }); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts index bc684d13841eb..213b7e967970a 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts @@ -8,7 +8,9 @@ import { validateQuery, getActions } from '@kbn/esql-validation-autocomplete'; import { getAstAndSyntaxErrors } from '@kbn/esql-ast'; const fixedQueryByOneAction = async (queryString: string) => { - const { errors } = await validateQuery(queryString, getAstAndSyntaxErrors); + const { errors } = await validateQuery(queryString, getAstAndSyntaxErrors, { + ignoreOnMissingCallbacks: true, + }); const actions = await getActions(queryString, errors, getAstAndSyntaxErrors, { relaxOnMissingCallbacks: true, From 2bbbed6fa1b48f1e98fe80b8e24c66c01ee0261a Mon Sep 17 00:00:00 2001 From: "Joey F. Poon" Date: Mon, 22 Apr 2024 09:18:46 -0700 Subject: [PATCH 035/183] [Security Solution] update endpoint cypress tests to use applied policy data (#180540) ## Summary Endpoint cypress e2e tests were previously set to check against configured instead of applied policy data. It appears that the issues that were causing policy to occasionally not get applied has been resolved upstream as it is no longer flaky: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5666 https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5690 This PR updates the tests to check against applied policy data again. ### For maintainers - [x] 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) --- .../management/cypress/e2e/endpoint_list/endpoints.cy.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts index 1e68dae07971c..4396937e57228 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts @@ -80,12 +80,13 @@ describe('Endpoints page', { tags: ['@ess', '@serverless'] }, () => { loadPage(APP_ENDPOINTS_PATH); const agentIdPath = 'response.body.data[0].metadata.agent.id'; - // ideally we should use applied policy instead: https://github.com/elastic/security-team/issues/8837 - const policyVersionPath = 'response.body.data[0].policy_info.endpoint.revision'; + const policyVersionPath = + 'response.body.data[0].metadata.Endpoint.policy.applied.endpoint_policy_version'; cy.wait('@metadataRequest', { timeout: 30000 }); cy.get('@metadataRequest').its(agentIdPath).should('be.a', 'string').as('endpointId'); cy.get('@metadataRequest') .its(policyVersionPath) + .then((version) => parseInt(version, 10)) .should('be.a', 'number') .as('originalPolicyRevision'); cy.get('@endpointId') @@ -195,8 +196,7 @@ describe('Endpoints page', { tags: ['@ess', '@serverless'] }, () => { .and('be.enabled'); cy.getByTestSubj(FLEET_REASSIGN_POLICY_MODAL_CONFIRM_BUTTON).click(); - // ideally we should use applied policy instead: https://github.com/elastic/security-team/issues/8837 - const policyIdPath = 'response.body.data[0].policy_info.agent.configured.id'; + const policyIdPath = 'response.body.data[0].policy_info.agent.applied.id'; // relies on multiple transforms so might take some extra time cy.get('@metadataRequest', { timeout: 120000 }) .its(policyIdPath) From 72e13c257eda6b23a1e73b9d7521b094513e3a18 Mon Sep 17 00:00:00 2001 From: Karen Grigoryan Date: Mon, 22 Apr 2024 18:19:58 +0200 Subject: [PATCH 036/183] [Security Solution] add error handling for buildEsQuery calls (#178848) This PR addresses issue #155419 by adding missing error handling to `buildEsQuery()` calls within investigation/explore domains. This PR underwent numerous iterations and remained in draft status for an extended period before reaching it's final shape. Initially, many changes were made to the `useInvalidFilterQuery()` hook, which manages the notification toasts in various locations under an assumption that some error toasts are not invoked when calling `buildEsQuery()`. During iteration the hook was corrected, and tests were written to better comprehend its behavior. After eventual realization that error toasts are invoked in most of the cases and subsequent cancellation of most of the work related to `useInvalidFilterQuery()` calls, it was decided to retain the tests and refactoring that occurred during the process as part of this PR anyways. Scope: The only file affected after numerous scope cuts is this `x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_alert_actions.tsx` --- .../common/components/top_n/index.test.tsx | 4 +- .../public/common/components/top_n/index.tsx | 4 +- .../common/components/top_n/top_n.test.tsx | 4 +- .../public/common/components/top_n/top_n.tsx | 6 +- .../hooks/use_invalid_filter_query.test.tsx | 286 ++++++++++++++++++ .../common/hooks/use_invalid_filter_query.tsx | 35 ++- .../common/lib/kibana/kibana_react.mock.ts | 10 +- .../public/common/mock/test_providers.tsx | 9 +- .../alerts_histogram_panel/helpers.tsx | 6 +- .../use_alert_actions.tsx | 28 +- .../components/events_by_dataset/index.tsx | 10 +- 11 files changed, 352 insertions(+), 50 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.test.tsx diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx index 5a8c5f3166ae7..217e0e2942d78 100644 --- a/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx @@ -221,7 +221,7 @@ describe('StatefulTopN', () => { test('it has undefined combinedQueries when rendering in a global context', () => { const props = wrapper.find('[data-test-subj="top-n"]').first().props() as Props; - expect(props.combinedQueries).toBeUndefined(); + expect(props.filterQuery).toBeUndefined(); }); test(`defaults to the 'Raw events' view when rendering in a global context`, () => { @@ -298,7 +298,7 @@ describe('StatefulTopN', () => { test('it has a combinedQueries value from Redux state composed of the timeline [data providers + kql + filter-bar-filters] when rendering in a timeline context', () => { const props = wrapper.find('[data-test-subj="top-n"]').first().props() as Props; - expect(props.combinedQueries).toEqual( + expect(props.filterQuery).toEqual( '{"bool":{"must":[],"filter":[{"bool":{"filter":[{"bool":{"should":[{"match_phrase":{"network.transport":"tcp"}}],"minimum_should_match":1}},{"bool":{"should":[{"exists":{"field":"host.name"}}],"minimum_should_match":1}}]}},{"match_phrase":{"source.port":{"query":"30045"}}}],"should":[],"must_not":[]}}' ); }); diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx index d845f2604c69b..b96110363a9c3 100644 --- a/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx @@ -126,7 +126,7 @@ const StatefulTopNComponent: React.FC = ({ language: 'kuery', query: activeTimelineKqlQueryExpression ?? '', }, - })?.filterQuery + }) : undefined, [ scopeId, @@ -147,7 +147,7 @@ const StatefulTopNComponent: React.FC = ({ return ( { }); const field = 'host.name'; -const combinedQueries = { +const filterQuery = { bool: { must: [], filter: [ @@ -200,7 +200,7 @@ describe('TopN', () => { }; wrapper = mount( - + ); }); diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx index 42ee8b8ed32f6..3b0547507e43f 100644 --- a/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx +++ b/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx @@ -45,7 +45,7 @@ const TopNContent = styled.div` `; export interface Props extends Pick { - combinedQueries?: string; + filterQuery?: string; defaultView: TimelineEventsType; field: AlertsStackByField; filters: Filter[]; @@ -61,7 +61,7 @@ export interface Props extends Pick = ({ - combinedQueries, + filterQuery, defaultView, deleteQuery, filters, @@ -115,7 +115,7 @@ const TopNComponent: React.FC = ({ {view === 'raw' || view === 'all' ? ( + createMockStore( + { + ...mockGlobalState, + app: { + ...mockGlobalState.app, + errors: [], + }, + }, + undefined, + kibanaMock + ); + +const getProps = () => ({ + id: 'test-id', + kqlError: new Error('boom'), + query: { query: ': :', language: 'kuery' }, + startDate: '2017-01-01T00:00:00.000Z', + endDate: '2018-01-02T00:00:00.000Z', +}); + +const getWrapper = (store: Store): React.FC => { + // eslint-disable-next-line react/display-name + return ({ children }) => ( + + {children} + + ); +}; + +describe('useInvalidFilterQuery', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('invokes error toast with error title and error instance without original stack', () => { + const store = getStore(); + const props = getProps(); + + renderHook(useInvalidFilterQuery, { initialProps: props, wrapper: getWrapper(store) }); + + expect(store.getState().app.errors).toEqual([ + { + displayError: true, + id: props.id, + hash: genHash(props.kqlError.message), + message: [props.kqlError.message], + title: props.kqlError.name, + }, + ]); + + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(1); + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledWith(props.kqlError, { + title: props.kqlError.name, + }); + expect(props.kqlError.stack).toBeUndefined(); + }); + + it('does not invoke error toast, when kqlError is missing', () => { + const store = getStore(); + const props = getProps(); + + renderHook(useInvalidFilterQuery, { + initialProps: { + id: props.id, + query: props.query, + startDate: props.startDate, + endDate: props.endDate, + }, + wrapper: getWrapper(store), + }); + + expect(kibanaMock.notifications.toasts.addError).not.toHaveBeenCalled(); + }); + + it('does not invoke error toast, when kqlError misses name property', () => { + const store = getStore(); + const props = getProps(); + + // @ts-expect-error + props.kqlError.name = null; + renderHook(useInvalidFilterQuery, { initialProps: props, wrapper: getWrapper(store) }); + + expect(kibanaMock.notifications.toasts.addError).not.toHaveBeenCalled(); + }); + + it('does not invoke error toast, when kqlError misses message property', () => { + const store = getStore(); + const props = getProps(); + + // @ts-expect-error + props.kqlError.message = null; + renderHook(useInvalidFilterQuery, { initialProps: props, wrapper: getWrapper(store) }); + + expect(kibanaMock.notifications.toasts.addError).not.toHaveBeenCalled(); + }); + + it('does not invoke error toast, when filterQuery is present', () => { + const store = getStore(); + const props = getProps(); + + renderHook(useInvalidFilterQuery, { + initialProps: { ...props, filterQuery: 'filterQuery' }, + wrapper: getWrapper(store), + }); + + expect(kibanaMock.notifications.toasts.addError).not.toHaveBeenCalled(); + }); + + // POTENTIAL BUG: + // + // id should ensure that only one toast is shown + // when you have different errors with the same id, + // but this test shows that it will currently show multiple toasts + // so we need to double check if this is the intended behavior and fix otherwise + it('invokes toast for each error, when called multiple times with same id and different errors, during a single render', async () => { + const store = getStore(); + const props = getProps(); + + const kqlError2 = new Error('boom2'); + const InvalidFilterComponent = () => { + useInvalidFilterQuery(props); + useInvalidFilterQuery({ + ...props, + kqlError: kqlError2, + }); + return null; + }; + render( + + + + ); + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(2); + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledWith(props.kqlError, { + title: props.kqlError.name, + }); + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledWith(kqlError2, { + title: kqlError2.name, + }); + }); + + // BUG: + // + // additional +1 toast invocation when called multiple times with same id and different errors + // should not happen, error invocation count should equal the number of unique errors + + it('invokes toast for each error +1, when called multiple times with same id and different errors, during multiple rerenders', async () => { + const store = getStore(); + const props = getProps(); + + const kqlError2 = new Error('boom2'); + const { rerender } = renderHook(useInvalidFilterQuery, { + initialProps: props, + wrapper: getWrapper(store), + }); + rerender({ ...props, kqlError: kqlError2 }); + + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(3); + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledWith(props.kqlError, { + title: props.kqlError.name, + }); + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledWith(kqlError2, { + title: kqlError2.name, + }); + }); + + // BUG: + // + // when invoked multiple times with same id and and error it should invoke the toast exactly once + it('does not invoke any toast, when called multiple times with same id and same error, during a single render', () => { + const store = getStore(); + const props = getProps(); + const InvalidFilterComponent = () => { + useInvalidFilterQuery(props); + useInvalidFilterQuery(props); + return null; + }; + render( + + + + ); + expect(kibanaMock.notifications.toasts.addError).not.toHaveBeenCalled(); + }); + + it('invokes toast once, when called multiple times with same id and same error, during multiple rerenders', () => { + const store = getStore(); + const props = getProps(); + + const { rerender } = renderHook(useInvalidFilterQuery, { + initialProps: props, + wrapper: getWrapper(store), + }); + rerender(); + rerender(); + + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(1); + }); + + it('invokes error toast with only the first error, when called multiple times with different id and same error', () => { + const store = getStore(); + const props = getProps(); + + const { rerender } = renderHook(useInvalidFilterQuery, { + initialProps: props, + wrapper: getWrapper(store), + }); + rerender({ + ...props, + id: 'test-id2', + }); + + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(1); + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledWith(props.kqlError, { + title: props.kqlError.name, + }); + }); + + it('does not invoke error toast, when query prop is changed', () => { + const store = getStore(); + const props = getProps(); + + const { rerender } = renderHook(useInvalidFilterQuery, { + initialProps: props, + wrapper: getWrapper(store), + }); + rerender({ + ...props, + query: { query: ': :::', language: 'kuery' }, + }); + + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(1); + }); + + it('does not invoke error toast, when startDate prop is changed', () => { + const store = getStore(); + const props = getProps(); + + const { rerender } = renderHook(useInvalidFilterQuery, { + initialProps: props, + wrapper: getWrapper(store), + }); + rerender({ + ...props, + startDate: '2015-01-01T00:00:00.000Z', + }); + + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(1); + }); + + it('does not invoke error toast, when endDate prop is changed', () => { + const store = getStore(); + const props = getProps(); + + const { rerender } = renderHook(useInvalidFilterQuery, { + initialProps: props, + wrapper: getWrapper(store), + }); + rerender({ + ...props, + endDate: '2019-01-02T00:00:00.000Z', + }); + + expect(kibanaMock.notifications.toasts.addError).toHaveBeenCalledTimes(1); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx b/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx index 04165a66154e0..2c950acb11c81 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx +++ b/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx @@ -13,6 +13,22 @@ import { appActions } from '../store/app'; import { useAppToasts } from './use_app_toasts'; import { useDeepEqualSelector } from './use_selector'; +export const genHash = (message: string) => + message + .split('') + // eslint-disable-next-line no-bitwise + .reduce((a, b) => ((a << 5) - a + b.charCodeAt(0)) | 0, 0) + .toString(); + +interface UseInvalidFilterQueryProps { + id: string; + filterQuery?: string; + kqlError?: Error; + query?: Query; + startDate?: string; + endDate?: string; +} + /** * Adds a toast error message whenever invalid KQL is submitted through the search bar */ @@ -20,17 +36,12 @@ export const useInvalidFilterQuery = ({ id, filterQuery, kqlError, + // TODO: Review and remove these (query, startDate, endDate) props. + // Change of any of these props will not trigger new error toast. query, startDate, endDate, -}: { - id: string; - filterQuery?: string; - kqlError?: Error; - query: Query; - startDate: string; - endDate: string; -}) => { +}: UseInvalidFilterQueryProps): void => { const { addError } = useAppToasts(); const dispatch = useDispatch(); const getErrorsSelector = useMemo(() => appSelectors.errorsSelector(), []); @@ -41,16 +52,10 @@ export const useInvalidFilterQuery = ({ useEffect(() => { if (!filterQuery && message && name) { - // Local util for creating an replicatable error hash - const hashCode = message - .split('') - // eslint-disable-next-line no-bitwise - .reduce((a, b) => ((a << 5) - a + b.charCodeAt(0)) | 0, 0) - .toString(); dispatch( appActions.addErrorHash({ id, - hash: hashCode, + hash: genHash(message), title: name, message: [message], }) diff --git a/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts b/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts index f950d53d1212f..e0e484ea1e017 100644 --- a/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts +++ b/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts @@ -266,10 +266,16 @@ export const createKibanaContextProviderMock = () => { const services = createStartServicesMock(); // eslint-disable-next-line react/display-name - return ({ children }: { children: React.ReactNode }) => + return ({ + children, + startServices: startServicesMock, + }: { + children: React.ReactNode; + startServices?: StartServices; + }) => React.createElement( KibanaContextProvider, - { services }, + { services: startServicesMock || services }, React.createElement(NavigationProvider, { core: services }, children) ); }; diff --git a/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx b/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx index 3d97f62767837..1a0689b53b229 100644 --- a/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx +++ b/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx @@ -34,11 +34,14 @@ import { ASSISTANT_FEATURE_ID, CASES_FEATURE_ID } from '../../../common/constant import { UserPrivilegesProvider } from '../components/user_privileges/user_privileges_context'; import { MockDiscoverInTimelineContext } from '../components/discover_in_timeline/mocks/discover_in_timeline_provider'; import { createMockStore } from './create_store'; +import type { StartServices } from '../../types'; + interface Props { children?: React.ReactNode; store?: Store; onDragEnd?: (result: DropResult, provided: ResponderProvided) => void; cellActions?: Action[]; + startServices?: StartServices; } export const kibanaMock = createStartServicesMock(); @@ -53,6 +56,7 @@ const MockKibanaContextProvider = createKibanaContextProviderMock(); export const TestProvidersComponent: React.FC = ({ children, store = createMockStore(), + startServices, onDragEnd = jest.fn(), cellActions = [], }) => { @@ -71,7 +75,7 @@ export const TestProvidersComponent: React.FC = ({ return ( - + ({ eui: euiDarkVars, darkMode: true })}> @@ -112,6 +116,7 @@ const TestProvidersWithPrivilegesComponent: React.FC = ({ children, store = createMockStore(), onDragEnd = jest.fn(), + startServices, cellActions = [], }) => { const queryClient = new QueryClient({ @@ -123,7 +128,7 @@ const TestProvidersWithPrivilegesComponent: React.FC = ({ }); return ( - + ({ eui: euiDarkVars, darkMode: true })}> diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/helpers.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/helpers.tsx index 8eacaafde7750..cbeb7e9c3d0a5 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/helpers.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/helpers.tsx @@ -108,7 +108,7 @@ export const showInitialLoadingSpinner = ({ isLoadingAlerts: boolean; }): boolean => isInitialLoading && isLoadingAlerts; -export const parseCombinedQueries = (query?: string) => { +export const parseFilterQuery = (query?: string) => { try { return query != null && !isEmpty(query) ? JSON.parse(query) : {}; } catch { @@ -116,9 +116,9 @@ export const parseCombinedQueries = (query?: string) => { } }; -export const buildCombinedQueries = (query?: string) => { +export const buildFilterQuery = (query?: string) => { try { - return isEmpty(query) ? [] : [parseCombinedQueries(query)]; + return isEmpty(query) ? [] : [parseFilterQuery(query)]; } catch { return []; } diff --git a/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_alert_actions.tsx b/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_alert_actions.tsx index 8a45dfb45db74..f4d211713b0f7 100644 --- a/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_alert_actions.tsx +++ b/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_alert_actions.tsx @@ -100,21 +100,21 @@ export const useBulkAlertActionItems = ({ clearSelection, refresh ) => { - let ids: string[] | undefined = items.map((item) => item._id); - let query: Record | undefined; - - if (isSelectAllChecked) { - const timeFilter = buildTimeRangeFilter(from, to); - query = buildEsQuery(undefined, [], [...timeFilter, ...filters], undefined); - ids = undefined; - startTransaction({ name: APM_USER_INTERACTIONS.BULK_QUERY_STATUS_UPDATE }); - } else if (items.length > 1) { - startTransaction({ name: APM_USER_INTERACTIONS.BULK_STATUS_UPDATE }); - } else { - startTransaction({ name: APM_USER_INTERACTIONS.STATUS_UPDATE }); - } - try { + let ids: string[] | undefined = items.map((item) => item._id); + let query: Record | undefined; + + if (isSelectAllChecked) { + const timeFilter = buildTimeRangeFilter(from, to); + query = buildEsQuery(undefined, [], [...timeFilter, ...filters], undefined); + ids = undefined; + startTransaction({ name: APM_USER_INTERACTIONS.BULK_QUERY_STATUS_UPDATE }); + } else if (items.length > 1) { + startTransaction({ name: APM_USER_INTERACTIONS.BULK_STATUS_UPDATE }); + } else { + startTransaction({ name: APM_USER_INTERACTIONS.STATUS_UPDATE }); + } + setAlertLoading(true); const response = await updateAlertStatus({ status, diff --git a/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx b/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx index 5d673674225fd..3f7e72b15163b 100644 --- a/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx @@ -44,7 +44,7 @@ const ID = 'eventsByDatasetOverview'; const CHART_HEIGHT = 160; interface Props extends Pick { - combinedQueries?: string; + filterQuery?: string; filters: Filter[]; headerChildren?: React.ReactNode; indexPattern: DataViewBase; @@ -77,7 +77,7 @@ const StyledLinkButton = styled(EuiButton)` `; const EventsByDatasetComponent: React.FC = ({ - combinedQueries, + filterQuery: filterQueryFromProps, deleteQuery, filters, from, @@ -138,7 +138,7 @@ const EventsByDatasetComponent: React.FC = ({ ); const [filterQuery, kqlError] = useMemo(() => { - if (combinedQueries == null) { + if (filterQueryFromProps == null) { return convertToBuildEsQuery({ config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, @@ -146,8 +146,8 @@ const EventsByDatasetComponent: React.FC = ({ filters, }); } - return [combinedQueries]; - }, [combinedQueries, kibana, indexPattern, query, filters]); + return [filterQueryFromProps]; + }, [filterQueryFromProps, kibana, indexPattern, query, filters]); useInvalidFilterQuery({ id: uniqueQueryId, From 737a72c1ff5838d4c96ce906f5585928c5c95c5d Mon Sep 17 00:00:00 2001 From: Maxim Kholod Date: Mon, 22 Apr 2024 18:46:50 +0200 Subject: [PATCH 037/183] [Cloud Security] filter in only billable assets for cloud security metering task (#180884) ## Summary Count only billable assets in Cloud Security metering task for serverless, based on the list created in https://github.com/elastic/security-team/issues/8970 Closes: - https://github.com/elastic/security-team/issues/9146 ### Checklist Delete any items that are not applicable to this PR. - [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 ### How to test locally 1. Update TASK_INTERVAL to a smaller value to make the metering task to run more often 2. Run Kibana with `--verbose` flag to see DEBUG logs and ES and ingest some CSPM data 3. Look for `received usage records:` log line and compare its output with the output of ``` POST /logs-cloud_security_posture.findings_latest-default/_search { "size": 0, "query": { "bool": { "must": [ { "range": { "@timestamp": { "gte": "now-24h" } } }, { "term": { "rule.benchmark.posture_type": { "value": "cspm" } } }, { "terms": { "resource.sub_type": [ "aws-ebs", "aws-ec2", "aws-s3", "aws-rds", "azure-disk", "azure-document-db-database-account", "azure-flexible-mysql-server-db", "azure-flexible-postgresql-server-db", "azure-mysql-server-db", "azure-postgresql-server-db", "azure-sql-server", "azure-vm", "gcp-bigquery-dataset", "gcp-bigquery-table", "gcp-compute-disk", "gcp-compute-instance", "gcp-logging-log-bucket", "gcp-sqladmin-instance", "gcp-storage-bucket" ] } } ] } }, "aggs": { "unique_assets": { "cardinality": { "field": "resource.id", "precision_threshold": 40000 } }, "min_timestamp": { "min": { "field": "@timestamp" } } } } ``` The reported `unique_assets` should be the same --- .../cloud_security_metering_task.test.ts | 126 +++++++++++++++++- .../cloud_security_metering_task.ts | 10 ++ .../server/cloud_security/constants.ts | 31 +++++ 3 files changed, 166 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.test.ts b/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.test.ts index 9b5e2281b09e9..d306b85938f9d 100644 --- a/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.test.ts +++ b/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.test.ts @@ -8,7 +8,10 @@ import Chance from 'chance'; import { elasticsearchServiceMock, loggingSystemMock } from '@kbn/core/server/mocks'; import { getCloudProductTier } from './cloud_security_metering'; -import { getCloudSecurityUsageRecord } from './cloud_security_metering_task'; +import { + getCloudSecurityUsageRecord, + getSearchQueryByCloudSecuritySolution, +} from './cloud_security_metering_task'; import type { ServerlessSecurityConfig } from '../config'; import type { CloudSecuritySolutions } from './types'; @@ -156,6 +159,127 @@ describe('getCloudSecurityUsageRecord', () => { }); }); +describe('getSearchQueryByCloudSecuritySolution', () => { + it('should return the correct search query for CLOUD_DEFEND', () => { + const searchFrom = new Date('2023-07-30T15:11:41.738Z'); + + const result = getSearchQueryByCloudSecuritySolution('cloud_defend', searchFrom); + + expect(result).toEqual({ + bool: { + must: [ + { + range: { + '@timestamp': { + gt: '2023-07-30T15:11:41.738Z', + }, + }, + }, + ], + }, + }); + }); + + it('should return the correct search query for CSPM', () => { + const searchFrom = new Date('2023-07-30T15:11:41.738Z'); + + const result = getSearchQueryByCloudSecuritySolution('cspm', searchFrom); + + expect(result).toEqual({ + bool: { + must: [ + { + range: { + '@timestamp': { + gte: 'now-24h', + }, + }, + }, + { + term: { + 'rule.benchmark.posture_type': 'cspm', + }, + }, + { + terms: { + 'resource.sub_type': [ + 'aws-ebs', + 'aws-ec2', + 'aws-s3', + 'aws-rds', + 'azure-disk', + 'azure-document-db-database-account', + 'azure-flexible-mysql-server-db', + 'azure-flexible-postgresql-server-db', + 'azure-mysql-server-db', + 'azure-postgresql-server-db', + 'azure-sql-server', + 'azure-vm', + 'gcp-bigquery-dataset', + 'gcp-bigquery-table', + 'gcp-compute-disk', + 'gcp-compute-instance', + 'gcp-sqladmin-instance', + 'gcp-storage-bucket', + ], + }, + }, + ], + }, + }); + }); + + it('should return the correct search query for KSPM', () => { + const searchFrom = new Date('2023-07-30T15:11:41.738Z'); + + const result = getSearchQueryByCloudSecuritySolution('kspm', searchFrom); + + expect(result).toEqual({ + bool: { + must: [ + { + range: { + '@timestamp': { + gte: 'now-24h', + }, + }, + }, + { + term: { + 'rule.benchmark.posture_type': 'kspm', + }, + }, + { + terms: { + 'resource.sub_type': ['Node', 'node'], + }, + }, + ], + }, + }); + }); + + it('should return the correct search query for CNVM', () => { + const searchFrom = new Date('2023-07-30T15:11:41.738Z'); + + const result = getSearchQueryByCloudSecuritySolution(CNVM, searchFrom); + + expect(result).toEqual({ + bool: { + must: [ + { + range: { + '@timestamp': { + gte: 'now-24h', + }, + }, + }, + ], + }, + }); + }); +}); + describe('should return the relevant product tier', () => { it('should return the relevant product tier for cloud product line', async () => { const serverlessSecurityConfig = { diff --git a/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.ts b/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.ts index ab7d559d13eca..714ee177212c1 100644 --- a/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.ts +++ b/x-pack/plugins/security_solution_serverless/server/cloud_security/cloud_security_metering_task.ts @@ -17,6 +17,7 @@ import { KSPM, METERING_CONFIGS, THRESHOLD_MINUTES, + BILLABLE_ASSETS_CONFIG, } from './constants'; import type { Tier, UsageRecord } from '../types'; import type { @@ -148,11 +149,20 @@ export const getSearchQueryByCloudSecuritySolution = ( } if (cloudSecuritySolution === CSPM || cloudSecuritySolution === KSPM) { + const billableAssetsConfig = BILLABLE_ASSETS_CONFIG[cloudSecuritySolution]; + mustFilters.push({ term: { 'rule.benchmark.posture_type': cloudSecuritySolution, }, }); + + // filter in only billable assets + mustFilters.push({ + terms: { + [billableAssetsConfig.filter_attribute]: billableAssetsConfig.values, + }, + }); } return { diff --git a/x-pack/plugins/security_solution_serverless/server/cloud_security/constants.ts b/x-pack/plugins/security_solution_serverless/server/cloud_security/constants.ts index 43cf1f06c47f8..66f4a1c0d1f0d 100644 --- a/x-pack/plugins/security_solution_serverless/server/cloud_security/constants.ts +++ b/x-pack/plugins/security_solution_serverless/server/cloud_security/constants.ts @@ -43,3 +43,34 @@ export const METERING_CONFIGS = { assets_identifier: 'agent.id', }, }; + +// see https://github.com/elastic/security-team/issues/8970 for billable asset definition +export const BILLABLE_ASSETS_CONFIG = { + [CSPM]: { + filter_attribute: 'resource.sub_type', + values: [ + 'aws-ebs', + 'aws-ec2', + 'aws-s3', + 'aws-rds', + 'azure-disk', + 'azure-document-db-database-account', + 'azure-flexible-mysql-server-db', + 'azure-flexible-postgresql-server-db', + 'azure-mysql-server-db', + 'azure-postgresql-server-db', + 'azure-sql-server', + 'azure-vm', + 'gcp-bigquery-dataset', + 'gcp-bigquery-table', + 'gcp-compute-disk', + 'gcp-compute-instance', + 'gcp-sqladmin-instance', + 'gcp-storage-bucket', + ], + }, + [KSPM]: { + filter_attribute: 'resource.sub_type', + values: ['Node', 'node'], + }, +}; From 8aa7606a21e25741eb131b648733c3da67a56487 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 22 Apr 2024 12:56:15 -0400 Subject: [PATCH 038/183] [Observability Onboarding] Hide integrations grid when search term is cleared (#180979) ## Summary Resolves #180821. Resolves #180813. Resolves [#180811](https://github.com/elastic/kibana/issues/180811). As noted in the linked issue, we want to clear the integrations list whenever the search bar's query is empty. ### Testing You should see the list disappear whenever the search query is empty. Collection selection and user-entered queries should continue to operate normally. ### Note A possible area of improvement is the janky behavior when clearing a large list, or as the user is entering a query. This is captured a bit in the attached GIF. I played with using the `visibility` property of the list's container but this has the opposite negative side effect of causing the page to stay very large when the list is hidden. ![20240416162832](https://github.com/elastic/kibana/assets/18429259/d8f01ec5-5cfa-42c3-9e30-a7c1dcf0dd37) --------- Co-authored-by: Joe Reuter --- .../use_custom_cards_for_category.ts | 4 ++-- .../application/packages_list/index.tsx | 20 +++++-------------- .../public/application/packages_list/utils.ts | 2 +- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts index f6031ce97f159..a9cc265b753af 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts @@ -132,11 +132,11 @@ export function useCustomCardsForCategory( integration: '', }, { - id: 'logs-logs', + id: 'custom-logs', type: 'generated', title: 'Stream log files', description: 'Stream any logs into Elastic in a simple way and explore their data', - name: 'logs-logs-generated', + name: 'custom-logs-generated', categories: ['observability'], icons: [ { diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx index 77d38e1159608..85627f9411bf3 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { EuiButton, EuiCallOut, EuiSearchBar, EuiSkeletonText } from '@elastic/eui'; import { css } from '@emotion/react'; -import React, { useRef, Suspense, useState } from 'react'; +import React, { useRef, Suspense } from 'react'; import useAsyncRetry from 'react-use/lib/useAsyncRetry'; import { PackageList, fetchAvailablePackagesHook } from './lazy'; import { useIntegrationCardList } from './use_integration_card_list'; @@ -54,7 +54,6 @@ const PackageListGridWrapper = ({ customCards, joinCardLists = false, }: WrapperProps) => { - const [isInitialHidden, setIsInitialHidden] = useState(showSearchBar); const customMargin = useCustomMargin(); const { filteredCards, isLoading } = useAvailablePackages({ prereleaseIntegrationsEnabled: false, @@ -67,15 +66,9 @@ const PackageListGridWrapper = ({ joinCardLists ); - React.useEffect(() => { - if (isInitialHidden && searchQuery) { - setIsInitialHidden(false); - } - }, [searchQuery, isInitialHidden]); + if (isLoading) return ; - if (!isInitialHidden && isLoading) return ; - - const showPackageList = (showSearchBar && !isInitialHidden) || showSearchBar === false; + const showPackageList = (showSearchBar && !!searchQuery) || showSearchBar === false; return ( }> @@ -91,12 +84,9 @@ const PackageListGridWrapper = ({ incremental: true, }} onChange={(arg) => { - if (setSearchQuery) { - setSearchQuery(arg.queryText); - } - setIsInitialHidden(false); + setSearchQuery?.(arg.queryText); }} - query={searchQuery} + query={searchQuery ?? ''} />
)} diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts index 014aa4314f104..22552f9df44fa 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts @@ -7,7 +7,7 @@ import { IntegrationCardItem } from '@kbn/fleet-plugin/public'; -export const QUICKSTART_FLOWS = ['kubernetes', 'nginx', 'system-logs-generated']; +export const QUICKSTART_FLOWS = ['system-logs-generated', 'custom-logs-generated']; export const toCustomCard = (card: IntegrationCardItem) => ({ ...card, From 98c596a5e135ec1a55078d92b2482c6ee7c7be8e Mon Sep 17 00:00:00 2001 From: Angela Chuang <6295984+angorayc@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:39:31 +0100 Subject: [PATCH 039/183] [SecuritySolution] Reveal data quality entry on the side-nav in serverless (#180816) ## Summary Test env serverless: https://p.elstc.co/paste/4JjGBmXv#Yogkkphe2hFyBRWIhsAZ3ivsvAve4TJkS2BzOqPQp3w ~ESS: https://p.elstc.co/paste/EsCQBV7V#P18h4HGLZkrPm66+KB2WVH6srVwDwXqVsciQDtI8vbc~ Screenshot 2024-04-17 at 13 48 08 Screenshot 2024-04-17 at 13 48 26 https://github.com/elastic/kibana/assets/6295984/5776c9c2-2957-480e-8a2c-fdd687cdebc5 We can merge this PR once all the dependencies are merged. dependencies: 1. https://github.com/elastic/kibana/pull/179666 2. https://github.com/elastic/elasticsearch-serverless/pull/1482 3. ~https://github.com/elastic/elasticsearch-serverless/pull/1705~ 4. https://github.com/elastic/elasticsearch-serverless/pull/1753 Steps to verify: 0. Enable Docker 1. Start serverless ES with the commit where the stats api was merged: ``` yarn es serverless --projectType security --tag git-2eb724699bc0 ``` start Kibana ``` yarn serverless-security --no-base-path ``` 2. ~Endable the settings~ This step in no longer needed. ``` curl -u {YOUR_ELASTIC_USERNAME}:{ELASTIC_PASSWORD} -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { "persistent" : { "metering.index-info-task.enabled" : true } } ``` 3. In Kibana dev tool, add some testing data: ``` PUT my-test-index PUT my-test-index/_mapping { "properties": { "@timestamp": { "type": "date" }, "agent.type": { "type": "constant_keyword" }, "event.category": { "type": "constant_keyword" } } } POST my-test-index/_doc { "@timestamp": "2024-04-22T09:41:49.668Z", "host": { "name": "foo" }, "event": { "category": "an_invalid_category" }, "some.field": "this", "source": { "port": 90210, "ip": "10.1.2.3" } } POST my-test-index/_doc { "@timestamp": "2024-04-22T09:42:22.123Z", "host": { "name": "bar" }, "event": { "category": "an_invalid_category" }, "some.field": "space", "source": { "port": 867, "ip": "10.9.8.7" } } ``` 5. Go to /app/management/kibana/dataViews/dataView/security-solution-default , and add `my-test-*` to default index pattern 6. Go to `/app/security/data_quality` and verify that there's no doc size in the dashboard. Dashboard and treemap render correctly. --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Sergi Massaneda --- .../index_properties/index.tsx | 2 +- .../summary_table/helpers.test.tsx | 20 ++++++++ .../summary_table/helpers.tsx | 47 +++++++++---------- .../impl/data_quality/types.ts | 2 +- .../data_quality/use_results_rollup/index.tsx | 4 +- .../lib/data_stream/results_field_map.ts | 4 +- .../server/schemas/result.ts | 4 +- .../solution_navigation/links/app_links.ts | 8 +--- .../telemetry/events/data_quality/types.ts | 2 +- 9 files changed, 50 insertions(+), 43 deletions(-) diff --git a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/index_properties/index.tsx b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/index_properties/index.tsx index 0f2fc4b2d44b2..9a00f588a15d7 100644 --- a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/index_properties/index.tsx +++ b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/index_properties/index.tsx @@ -270,7 +270,7 @@ const IndexPropertiesComponent: React.FC = ({ }; updatePatternRollup(updatedRollup); - if (indexId && requestTime != null && requestTime > 0 && partitionedFieldMetadata) { + if (indexName && requestTime != null && requestTime > 0 && partitionedFieldMetadata) { const report = { batchId: uuidv4(), ecsVersion: EcsVersion, diff --git a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.test.tsx b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.test.tsx index 673a74e357b66..f79c64ab0387c 100644 --- a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.test.tsx +++ b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.test.tsx @@ -22,6 +22,7 @@ import { getShowPagination, getSummaryTableColumns, getSummaryTableILMPhaseColumn, + getSummaryTableSizeInBytesColumn, getToggleButtonId, IndexSummaryTableItem, } from './helpers'; @@ -468,6 +469,25 @@ describe('helpers', () => { }); }); + describe('getSummaryTableSizeInBytesColumn', () => { + test('it returns the expected column configuration when `isILMAvailable` is true', () => { + const column = getSummaryTableSizeInBytesColumn({ + isILMAvailable: true, + formatBytes: jest.fn(), + }); + expect(column.length).toEqual(1); + expect(column[0].name).toEqual('Size'); + }); + + test('it returns an emptry array when `isILMAvailable` is false', () => { + const column = getSummaryTableSizeInBytesColumn({ + isILMAvailable: false, + formatBytes: jest.fn(), + }); + expect(column.length).toEqual(0); + }); + }); + describe('ilmPhase column render()', () => { test('it renders the expected ilmPhase badge content', () => { const columns = getSummaryTableColumns({ diff --git a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.tsx b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.tsx index 6d135477b9af3..07c4335c0cd17 100644 --- a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.tsx +++ b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/data_quality_panel/summary_table/helpers.tsx @@ -121,23 +121,29 @@ export const getSummaryTableILMPhaseColumn = ( : []; export const getSummaryTableSizeInBytesColumn = ({ + isILMAvailable, formatBytes, }: { + isILMAvailable: boolean; formatBytes: (value: number | undefined) => string; -}): Array> => [ - { - field: 'sizeInBytes', - name: i18n.SIZE, - render: (_, { sizeInBytes }) => - Number.isInteger(sizeInBytes) ? ( - - {formatBytes(sizeInBytes)} - - ) : null, - sortable: true, - truncateText: false, - }, -]; +}): Array> => + isILMAvailable + ? [ + { + field: 'sizeInBytes', + name: i18n.SIZE, + render: (_, { sizeInBytes }) => + Number.isInteger(sizeInBytes) ? ( + + {formatBytes(sizeInBytes)} + + ) : null, + sortable: true, + truncateText: false, + }, + ] + : []; + export const getSummaryTableColumns = ({ formatBytes, formatNumber, @@ -247,18 +253,7 @@ export const getSummaryTableColumns = ({ truncateText: false, }, ...getSummaryTableILMPhaseColumn(isILMAvailable), - { - field: 'sizeInBytes', - name: i18n.SIZE, - render: (_, { sizeInBytes }) => - Number.isInteger(sizeInBytes) ? ( - - {formatBytes(sizeInBytes)} - - ) : null, - sortable: true, - truncateText: false, - }, + ...getSummaryTableSizeInBytesColumn({ isILMAvailable, formatBytes }), { field: 'checkedAt', name: i18n.LAST_CHECK, diff --git a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/types.ts b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/types.ts index 8ebb273a2b4b8..bd551d80f531b 100644 --- a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/types.ts +++ b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/types.ts @@ -199,7 +199,7 @@ export interface MeteringIndicesStatsResponse { export type DataQualityIndexCheckedParams = DataQualityCheckAllCompletedParams & { errorCount?: number; ilmPhase?: string; - indexId?: string; + indexId?: string | null; indexName: string; sameFamilyFields?: string[]; unallowedMappingFields?: string[]; diff --git a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/use_results_rollup/index.tsx b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/use_results_rollup/index.tsx index 8a96e3b975cd6..7a53eedc3c562 100644 --- a/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/use_results_rollup/index.tsx +++ b/x-pack/packages/security-solution/ecs_data_quality_dashboard/impl/data_quality/use_results_rollup/index.tsx @@ -185,10 +185,8 @@ export const useResultsRollup = ({ ilmPhases, patterns }: Props): UseResultsRoll const indexId = getIndexId({ indexName, stats }); if ( - indexId != null && stats && results && - ilmExplain && requestTime != null && requestTime > 0 && partitionedFieldMetadata @@ -197,7 +195,7 @@ export const useResultsRollup = ({ ilmPhases, patterns }: Props): UseResultsRoll batchId, ecsVersion: EcsVersion, errorCount: error ? 1 : 0, - ilmPhase: getIlmPhase(ilmExplain[indexName], isILMAvailable), + ilmPhase: getIlmPhase(ilmExplain?.[indexName], isILMAvailable), indexId, indexName, isCheckAll: true, diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/data_stream/results_field_map.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/data_stream/results_field_map.ts index 7a472b0a96502..a8d4fadb72ca1 100644 --- a/x-pack/plugins/ecs_data_quality_dashboard/server/lib/data_stream/results_field_map.ts +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/lib/data_stream/results_field_map.ts @@ -24,9 +24,9 @@ export const resultsFieldMap: FieldMap = { unallowedMappingFields: { type: 'keyword', required: true, array: true }, unallowedValueFields: { type: 'keyword', required: true, array: true }, sizeInBytes: { type: 'long', required: true }, - ilmPhase: { type: 'keyword', required: true }, + ilmPhase: { type: 'keyword', required: false }, markdownComments: { type: 'text', required: true, array: true }, ecsVersion: { type: 'keyword', required: true }, - indexId: { type: 'keyword', required: true }, + indexId: { type: 'keyword', required: false }, error: { type: 'text', required: false }, }; diff --git a/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/result.ts b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/result.ts index 590147fbcf89e..9e8b7540bf2e5 100644 --- a/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/result.ts +++ b/x-pack/plugins/ecs_data_quality_dashboard/server/schemas/result.ts @@ -22,16 +22,16 @@ const ResultDocumentInterface = t.interface({ unallowedMappingFields: t.array(t.string), unallowedValueFields: t.array(t.string), sizeInBytes: t.number, - ilmPhase: t.string, markdownComments: t.array(t.string), ecsVersion: t.string, - indexId: t.string, error: t.union([t.string, t.null]), }); const ResultDocumentOptional = t.partial({ indexPattern: t.string, checkedBy: t.string, + indexId: t.string, + ilmPhase: t.string, }); export const ResultDocument = t.intersection([ResultDocumentInterface, ResultDocumentOptional]); diff --git a/x-pack/plugins/security_solution/public/app/solution_navigation/links/app_links.ts b/x-pack/plugins/security_solution/public/app/solution_navigation/links/app_links.ts index f7ed8cbc6036f..3107bb93de269 100644 --- a/x-pack/plugins/security_solution/public/app/solution_navigation/links/app_links.ts +++ b/x-pack/plugins/security_solution/public/app/solution_navigation/links/app_links.ts @@ -6,7 +6,7 @@ */ import { SecurityPageName } from '@kbn/security-solution-navigation'; -import { cloneDeep, find, remove } from 'lodash'; +import { cloneDeep, remove } from 'lodash'; import type { AppLinkItems, LinkItem } from '../../../common/links/types'; import { createInvestigationsLinkFromTimeline } from './sections/investigations_links'; import { mlAppLink } from './sections/ml_links'; @@ -26,12 +26,6 @@ export const solutionAppLinksSwitcher = (appLinks: AppLinkItems): AppLinkItems = solutionAppLinks.push(createInvestigationsLinkFromTimeline(timelineLinkItem)); } - // Remove data quality dashboard link - const dashboardLinkItem = find(solutionAppLinks, { id: SecurityPageName.dashboards }); - if (dashboardLinkItem && dashboardLinkItem.links) { - remove(dashboardLinkItem.links, { id: SecurityPageName.dataQuality }); - } - // Remove manage link const [manageLinkItem] = remove(solutionAppLinks, { id: SecurityPageName.administration }); diff --git a/x-pack/plugins/security_solution/public/common/lib/telemetry/events/data_quality/types.ts b/x-pack/plugins/security_solution/public/common/lib/telemetry/events/data_quality/types.ts index 8e24420aa0499..2b31e6cefea4f 100644 --- a/x-pack/plugins/security_solution/public/common/lib/telemetry/events/data_quality/types.ts +++ b/x-pack/plugins/security_solution/public/common/lib/telemetry/events/data_quality/types.ts @@ -11,7 +11,7 @@ import type { TelemetryEventTypes } from '../../constants'; export type ReportDataQualityIndexCheckedParams = ReportDataQualityCheckAllCompletedParams & { errorCount?: number; ilmPhase?: string; - indexId?: string; + indexId?: string | null; indexName: string; sameFamilyFields?: string[]; unallowedMappingFields?: string[]; From 9ea94d10b6588c93fea9cd08bfbc73f017b0c76c Mon Sep 17 00:00:00 2001 From: christineweng <18648970+christineweng@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:29:03 -0500 Subject: [PATCH 040/183] [Security Solution][Alert Details] Fix alert flyout reseting to overview tab (#181202) ## Summary This PR fixes a bug introduced by https://github.com/elastic/kibana/pull/180318. If user has not completed the flyout tour and click exit. Upon refresh, the tabs in alerts flyout always reset to overview. This is because the tour step is stuck in step 1 and it will keep calling `goToOverview` tab to start the tour. This PR adds additional guard to check the tour is active before navigating. --- .../flyout/document_details/shared/components/flyout_tour.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/shared/components/flyout_tour.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/shared/components/flyout_tour.tsx index 05e6813802642..c5ee76ca558a9 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/shared/components/flyout_tour.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/shared/components/flyout_tour.tsx @@ -68,7 +68,7 @@ export const FlyoutTour: FC = ({ useEffect(() => { storage.set(NEW_FEATURES_TOUR_STORAGE_KEYS.FLYOUT, tourState); - if (tourState.currentTourStep === 1 && goToOverviewTab) { + if (tourState.isTourActive && tourState.currentTourStep === 1 && goToOverviewTab) { goToOverviewTab(); } }, [storage, tourState, goToOverviewTab]); From 6b0e38ad4e98e37646f311f80fa1a9273d475790 Mon Sep 17 00:00:00 2001 From: Paul Tavares <56442535+paul-tavares@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:33:53 -0400 Subject: [PATCH 041/183] [Security Solution][Endpoint] SentinelOne API support for `get-file` response action (#180856) ## Summary With this PR: - Adds API support for `get-file` for SentinelOne agent types - New feature flag to gate this functionality - `responseActionsSentinelOneGetFileEnabled` --- .../is_response_action_supported.ts | 12 +- .../service/response_actions/sentinel_one.ts | 6 + .../common/endpoint/types/sentinel_one.ts | 10 + .../common/experimental_features.ts | 3 + .../actions/clients/sentinelone/mocks.ts | 63 ++++- .../sentinel_one_actions_client.test.ts | 241 ++++++++++++++++-- .../sentinel_one_actions_client.ts | 206 ++++++++++++--- 7 files changed, 479 insertions(+), 62 deletions(-) diff --git a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts index 106b48706fac2..31dd195f00e03 100644 --- a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts +++ b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/is_response_action_supported.ts @@ -92,7 +92,7 @@ const RESPONSE_ACTIONS_SUPPORT_MAP: SupportMap = { }, unisolate: { automated: { - endpoint: true, + endpoint: false, sentinel_one: false, }, manual: { @@ -102,7 +102,7 @@ const RESPONSE_ACTIONS_SUPPORT_MAP: SupportMap = { }, upload: { automated: { - endpoint: true, + endpoint: false, sentinel_one: false, }, manual: { @@ -112,12 +112,12 @@ const RESPONSE_ACTIONS_SUPPORT_MAP: SupportMap = { }, 'get-file': { automated: { - endpoint: true, + endpoint: false, sentinel_one: false, }, manual: { endpoint: true, - sentinel_one: false, + sentinel_one: true, }, }, 'kill-process': { @@ -132,7 +132,7 @@ const RESPONSE_ACTIONS_SUPPORT_MAP: SupportMap = { }, execute: { automated: { - endpoint: true, + endpoint: false, sentinel_one: false, }, manual: { @@ -152,7 +152,7 @@ const RESPONSE_ACTIONS_SUPPORT_MAP: SupportMap = { }, 'running-processes': { automated: { - endpoint: true, + endpoint: false, sentinel_one: false, }, manual: { diff --git a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/sentinel_one.ts b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/sentinel_one.ts index 761e1de67cd28..55892e16392ca 100644 --- a/x-pack/plugins/security_solution/common/endpoint/service/response_actions/sentinel_one.ts +++ b/x-pack/plugins/security_solution/common/endpoint/service/response_actions/sentinel_one.ts @@ -9,3 +9,9 @@ * Index name where the SentinelOne activity log is written to by the SentinelOne integration */ export const SENTINEL_ONE_ACTIVITY_INDEX = 'logs-sentinel_one.activity-default'; + +/** + * The passcode to be used when initiating actions in SentinelOne that require a passcode to be + * set for the resulting zip file + */ +export const SENTINEL_ONE_ZIP_PASSCODE = 'Elastic@123'; diff --git a/x-pack/plugins/security_solution/common/endpoint/types/sentinel_one.ts b/x-pack/plugins/security_solution/common/endpoint/types/sentinel_one.ts index 447fc6d037a2b..c7e0b1d9a4581 100644 --- a/x-pack/plugins/security_solution/common/endpoint/types/sentinel_one.ts +++ b/x-pack/plugins/security_solution/common/endpoint/types/sentinel_one.ts @@ -53,3 +53,13 @@ export interface SentinelOneIsolationResponseMeta { /** The SentinelOne activity log primary description */ activityLogEntryDescription: string; } + +export interface SentinelOneGetFileRequestMeta extends SentinelOneActionRequestCommonMeta { + /** The SentinelOne activity log entry id for the Get File request */ + activityId: string; + /** + * The command batch UUID is a value that appears in both the Request and the Response, thus it + * is stored in the request to facilitate locating the response later by the background task + */ + commandBatchUuid: string; +} diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts index 7bd1834513e30..6004c15b222c5 100644 --- a/x-pack/plugins/security_solution/common/experimental_features.ts +++ b/x-pack/plugins/security_solution/common/experimental_features.ts @@ -85,6 +85,9 @@ export const allowedExperimentalValues = Object.freeze({ */ responseActionsSentinelOneV2Enabled: false, + /** Enables the `get-file` response action for SentinelOne */ + responseActionsSentinelOneGetFileEnabled: false, + /** * 8.15 * Enables use of agent status service to get agent status information diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/mocks.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/mocks.ts index bb51ebe917c6d..0971ed7045655 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/mocks.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/mocks.ts @@ -5,7 +5,10 @@ * 2.0. */ -import type { SentinelOneGetAgentsResponse } from '@kbn/stack-connectors-plugin/common/sentinelone/types'; +import type { + SentinelOneGetAgentsResponse, + SentinelOneGetActivitiesResponse, +} from '@kbn/stack-connectors-plugin/common/sentinelone/types'; import { SENTINELONE_CONNECTOR_ID, SUB_ACTION, @@ -127,6 +130,58 @@ const createSentinelOneAgentDetailsMock = ( ); }; +const createSentinelOneGetActivitiesApiResponseMock = (): SentinelOneGetActivitiesResponse => { + return { + errors: undefined, + pagination: { + nextCursor: null, + totalItems: 1, + }, + data: [ + { + accountId: '1392053568574369781', + accountName: 'Elastic', + activityType: 81, + activityUuid: 'ee9227f5-8f59-4f6d-bd46-3b74f93fd939', + agentId: '1913920934584665209', + agentUpdatedVersion: null, + comments: null, + createdAt: '2024-04-16T19:21:08.492444Z', + data: { + accountName: 'Elastic', + commandBatchUuid: '7011777f-77e7-4a01-a674-e5f767808895', + computerName: 'ptavares-sentinelone-1371', + externalIp: '108.77.84.191', + fullScopeDetails: 'Group Default Group in Site Default site of Account Elastic', + fullScopeDetailsPath: 'Global / Elastic / Default site / Default Group', + groupName: 'Default Group', + groupType: 'Manual', + ipAddress: '108.77.84.191', + scopeLevel: 'Group', + scopeName: 'Default Group', + siteName: 'Default site', + username: 'Defend Workflows Automation', + uuid: 'c06d63d9-9fa2-046d-e91e-dc94cf6695d8', + }, + description: null, + groupId: '1392053568591146999', + groupName: 'Default Group', + hash: null, + id: '1929937418124016884', + osFamily: null, + primaryDescription: + 'The management user Defend Workflows Automation initiated a fetch file command to the agent ptavares-sentinelone-1371 (108.77.84.191).', + secondaryDescription: 'IP address: 108.77.84.191', + siteId: '1392053568582758390', + siteName: 'Default site', + threatId: null, + updatedAt: '2024-04-16T19:21:08.492450Z', + userId: '1796254913836217560', + }, + ], + }; +}; + const createSentinelOneGetAgentsApiResponseMock = ( data: SentinelOneGetAgentsResponse['data'] = [createSentinelOneAgentDetailsMock()] ): SentinelOneGetAgentsResponse => { @@ -165,6 +220,11 @@ const createConnectorActionsClientMock = (): ActionsClientMock => { data: createSentinelOneGetAgentsApiResponseMock(), }); + case SUB_ACTION.GET_ACTIVITIES: + return responseActionsClientMock.createConnectorActionExecuteResponse({ + data: createSentinelOneGetActivitiesApiResponseMock(), + }); + default: return responseActionsClientMock.createConnectorActionExecuteResponse(); } @@ -188,4 +248,5 @@ export const sentinelOneMock = { createSentinelOneAgentDetails: createSentinelOneAgentDetailsMock, createConnectorActionsClient: createConnectorActionsClientMock, createConstructorOptions: createConstructorOptionsMock, + createSentinelOneActivitiesApiResponse: createSentinelOneGetActivitiesApiResponseMock, }; diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.test.ts index 9d96ca462c53d..00a84b5495464 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.test.ts @@ -29,6 +29,9 @@ import type { SentinelOneIsolationRequestMeta, } from '../../../../../../common/endpoint/types'; import type { SearchHit } from '@elastic/elasticsearch/lib/api/types'; +import type { ResponseActionGetFileRequestBody } from '../../../../../../common/api/endpoint'; +import { SENTINEL_ONE_ZIP_PASSCODE } from '../../../../../../common/endpoint/service/response_actions/sentinel_one'; +import { SUB_ACTION } from '@kbn/stack-connectors-plugin/common/sentinelone/constants'; jest.mock('../../action_details_by_id', () => { const originalMod = jest.requireActual('../../action_details_by_id'); @@ -59,22 +62,14 @@ describe('SentinelOneActionsClient class', () => { s1ActionsClient = new SentinelOneActionsClient(classConstructorOptions); }); - it.each([ - 'killProcess', - 'suspendProcess', - 'runningProcesses', - 'getFile', - 'execute', - 'upload', - ] as Array)( - 'should throw an un-supported error for %s', - async (methodName) => { - // @ts-expect-error Purposely passing in empty object for options - await expect(s1ActionsClient[methodName]({})).rejects.toBeInstanceOf( - ResponseActionsNotSupportedError - ); - } - ); + it.each(['killProcess', 'suspendProcess', 'runningProcesses', 'execute', 'upload'] as Array< + keyof ResponseActionsClient + >)('should throw an un-supported error for %s', async (methodName) => { + // @ts-expect-error Purposely passing in empty object for options + await expect(s1ActionsClient[methodName]({})).rejects.toBeInstanceOf( + ResponseActionsNotSupportedError + ); + }); it('should error if multiple agent ids are received', async () => { const payload = createS1IsolationOptions(); @@ -560,4 +555,218 @@ describe('SentinelOneActionsClient class', () => { }); }); }); + + describe('#getFile()', () => { + let getFileReqOptions: ResponseActionGetFileRequestBody; + + beforeEach(() => { + // @ts-expect-error readonly prop assignment + classConstructorOptions.endpointService.experimentalFeatures.responseActionsSentinelOneGetFileEnabled = + true; + + getFileReqOptions = responseActionsClientMock.createGetFileOptions(); + }); + + it('should error if feature flag is not enabled', async () => { + // @ts-expect-error readonly prop assignment + classConstructorOptions.endpointService.experimentalFeatures.responseActionsSentinelOneGetFileEnabled = + false; + + await expect(s1ActionsClient.getFile(getFileReqOptions)).rejects.toHaveProperty( + 'message', + 'get-file not supported for sentinel_one agent type. Feature disabled' + ); + }); + + it('should call the fetch agent files connector method with expected params', async () => { + await s1ActionsClient.getFile(getFileReqOptions); + + expect(connectorActionsMock.execute).toHaveBeenCalledWith({ + params: { + subAction: SUB_ACTION.FETCH_AGENT_FILES, + subActionParams: { + agentUUID: '1-2-3', + files: [getFileReqOptions.parameters.path], + zipPassCode: SENTINEL_ONE_ZIP_PASSCODE, + }, + }, + }); + }); + + it('should throw if sentinelone api generated an error (manual mode)', async () => { + const executeMockFn = (connectorActionsMock.execute as jest.Mock).getMockImplementation(); + const err = new Error('oh oh'); + (connectorActionsMock.execute as jest.Mock).mockImplementation(async (options) => { + if (options.params.subAction === SUB_ACTION.FETCH_AGENT_FILES) { + throw err; + } + return executeMockFn!(options); + }); + + await expect(s1ActionsClient.getFile(getFileReqOptions)).rejects.toEqual(err); + await expect(connectorActionsMock.execute).not.toHaveBeenCalledWith({ + params: expect.objectContaining({ + subAction: SUB_ACTION.GET_ACTIVITIES, + }), + }); + }); + + it('should create failed response action when calling sentinelone api generated an error (automated mode)', async () => { + const subActionsClient = sentinelOneMock.createConnectorActionsClient(); + classConstructorOptions = sentinelOneMock.createConstructorOptions(); + classConstructorOptions.isAutomated = true; + classConstructorOptions.connectorActions = + responseActionsClientMock.createNormalizedExternalConnectorClient(subActionsClient); + connectorActionsMock = classConstructorOptions.connectorActions; + // @ts-expect-error readonly prop assignment + classConstructorOptions.endpointService.experimentalFeatures.responseActionsSentinelOneGetFileEnabled = + true; + s1ActionsClient = new SentinelOneActionsClient(classConstructorOptions); + + const executeMockFn = (subActionsClient.execute as jest.Mock).getMockImplementation(); + const err = new Error('oh oh'); + (subActionsClient.execute as jest.Mock).mockImplementation(async (options) => { + if (options.params.subAction === SUB_ACTION.FETCH_AGENT_FILES) { + throw err; + } + return executeMockFn!.call(SentinelOneActionsClient.prototype, options); + }); + + await expect(s1ActionsClient.getFile(getFileReqOptions)).resolves.toBeTruthy(); + expect(classConstructorOptions.esClient.index).toHaveBeenCalledWith( + { + document: { + '@timestamp': expect.any(String), + EndpointActions: { + action_id: expect.any(String), + data: { + command: 'get-file', + comment: 'test comment', + parameters: { + path: '/some/file', + }, + hosts: { + '1-2-3': { + name: 'sentinelone-1460', + }, + }, + }, + expiration: expect.any(String), + input_type: 'sentinel_one', + type: 'INPUT_ACTION', + }, + agent: { id: ['1-2-3'] }, + user: { id: 'foo' }, + error: { + // The error message here is "not supported" because `get-file` is not currently supported + // for automated response actions. if that changes in the future the message below should + // be changed to `err.message` (`err` is defined and used in the mock setup above) + message: 'Action [get-file] not supported', + }, + meta: { + agentId: '1845174760470303882', + agentUUID: '1-2-3', + hostName: 'sentinelone-1460', + }, + }, + index: ENDPOINT_ACTIONS_INDEX, + refresh: 'wait_for', + }, + { meta: true } + ); + }); + + it('should query for the activity log entry record after successful submit of action', async () => { + await s1ActionsClient.getFile(getFileReqOptions); + + expect(connectorActionsMock.execute).toHaveBeenNthCalledWith(3, { + params: { + subAction: SUB_ACTION.GET_ACTIVITIES, + subActionParams: { + activityTypes: '81', + limit: 1, + sortBy: 'createdAt', + sortOrder: 'asc', + // eslint-disable-next-line @typescript-eslint/naming-convention + createdAt__gte: expect.any(String), + agentIds: '1845174760470303882', + }, + }, + }); + }); + + it('should create action request ES document with expected meta content', async () => { + await s1ActionsClient.getFile(getFileReqOptions); + + expect(classConstructorOptions.esClient.index).toHaveBeenCalledWith( + { + document: { + '@timestamp': expect.any(String), + EndpointActions: { + action_id: expect.any(String), + data: { + command: 'get-file', + comment: 'test comment', + parameters: { + path: '/some/file', + }, + hosts: { + '1-2-3': { + name: 'sentinelone-1460', + }, + }, + }, + expiration: expect.any(String), + input_type: 'sentinel_one', + type: 'INPUT_ACTION', + }, + agent: { id: ['1-2-3'] }, + user: { id: 'foo' }, + meta: { + agentId: '1845174760470303882', + agentUUID: '1-2-3', + hostName: 'sentinelone-1460', + activityId: '1929937418124016884', + commandBatchUuid: '7011777f-77e7-4a01-a674-e5f767808895', + }, + }, + index: ENDPOINT_ACTIONS_INDEX, + refresh: 'wait_for', + }, + { meta: true } + ); + }); + + it('should return action details', async () => { + await expect(s1ActionsClient.getFile(getFileReqOptions)).resolves.toEqual( + // Only validating that a ActionDetails is returned. The data is mocked, + // so it does not make sense to validate the property values + { + action: expect.any(String), + agentState: expect.any(Object), + agentType: expect.any(String), + agents: expect.any(Array), + command: expect.any(String), + comment: expect.any(String), + createdBy: expect.any(String), + hosts: expect.any(Object), + id: expect.any(String), + isCompleted: expect.any(Boolean), + isExpired: expect.any(Boolean), + outputs: expect.any(Object), + startedAt: expect.any(String), + status: expect.any(String), + wasSuccessful: expect.any(Boolean), + } + ); + }); + + it('should update cases', async () => { + await s1ActionsClient.getFile( + responseActionsClientMock.createGetFileOptions({ case_ids: ['case-1'] }) + ); + + expect(classConstructorOptions.casesClient?.attachments.bulkCreate).toHaveBeenCalled(); + }); + }); }); diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.ts index f70305e4bac07..bf2c04940a549 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/clients/sentinelone/sentinel_one_actions_client.ts @@ -14,15 +14,18 @@ import type { ActionTypeExecutorResult } from '@kbn/actions-plugin/common'; import type { SentinelOneGetAgentsParams, SentinelOneGetAgentsResponse, + SentinelOneGetActivitiesParams, + SentinelOneGetActivitiesResponse, } from '@kbn/stack-connectors-plugin/common/sentinelone/types'; import type { QueryDslQueryContainer, SearchHit, SearchRequest, } from '@elastic/elasticsearch/lib/api/types'; +import { SENTINEL_ONE_ZIP_PASSCODE } from '../../../../../../common/endpoint/service/response_actions/sentinel_one'; import type { - NormalizedExternalConnectorClientExecuteOptions, NormalizedExternalConnectorClient, + NormalizedExternalConnectorClientExecuteOptions, } from '../lib/normalized_external_connector_client'; import { SENTINEL_ONE_ACTIVITY_INDEX } from '../../../../../../common'; import { catchAndWrapError } from '../../../../utils'; @@ -42,12 +45,18 @@ import type { EndpointActionResponseDataOutput, LogsEndpointAction, LogsEndpointActionResponse, + ResponseActionGetFileOutputContent, + ResponseActionGetFileParameters, SentinelOneActionRequestCommonMeta, SentinelOneActivityEsDoc, + SentinelOneGetFileRequestMeta, SentinelOneIsolationRequestMeta, SentinelOneIsolationResponseMeta, } from '../../../../../../common/endpoint/types'; -import type { IsolationRouteRequestBody } from '../../../../../../common/api/endpoint'; +import type { + IsolationRouteRequestBody, + ResponseActionGetFileRequestBody, +} from '../../../../../../common/api/endpoint'; import type { ResponseActionsClientOptions, ResponseActionsClientValidateRequestResponse, @@ -69,6 +78,48 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { connectorActions.setup(SENTINELONE_CONNECTOR_ID); } + private async handleResponseActionCreation< + TParameters extends EndpointActionDataParameterTypes = EndpointActionDataParameterTypes, + TOutputContent extends EndpointActionResponseDataOutput = EndpointActionResponseDataOutput, + TMeta extends {} = {} + >( + reqIndexOptions: ResponseActionsClientWriteActionRequestToEndpointIndexOptions< + TParameters, + TOutputContent, + Partial + > + ): Promise<{ + actionEsDoc: LogsEndpointAction; + actionDetails: ActionDetails; + }> { + const actionRequestDoc = await this.writeActionRequestToEndpointIndex< + TParameters, + TOutputContent, + TMeta + >(reqIndexOptions); + + await this.updateCases({ + command: reqIndexOptions.command, + caseIds: reqIndexOptions.case_ids, + alertIds: reqIndexOptions.alert_ids, + actionId: actionRequestDoc.EndpointActions.action_id, + hosts: reqIndexOptions.endpoint_ids.map((agentId) => { + return { + hostId: agentId, + hostname: actionRequestDoc.EndpointActions.data.hosts?.[agentId].name ?? '', + }; + }), + comment: reqIndexOptions.comment, + }); + + return { + actionEsDoc: actionRequestDoc, + actionDetails: await this.fetchActionDetails>( + actionRequestDoc.EndpointActions.action_id + ), + }; + } + protected async writeActionRequestToEndpointIndex< TParameters extends EndpointActionDataParameterTypes = EndpointActionDataParameterTypes, TOutputContent extends EndpointActionResponseDataOutput = EndpointActionResponseDataOutput, @@ -77,7 +128,7 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { actionRequest: ResponseActionsClientWriteActionRequestToEndpointIndexOptions< TParameters, TOutputContent, - TMeta + Partial // Partial<> because the common Meta properties are actually set in this method for all requests > ): Promise< LogsEndpointAction @@ -110,10 +161,10 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { * Sends actions to SentinelOne directly (via Connector) * @private */ - private async sendAction( + private async sendAction( actionType: SUB_ACTION, actionParams: object - ): Promise> { + ): Promise> { const executeOptions: Parameters[0] = { params: { subAction: actionType, @@ -141,7 +192,7 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { this.log.debug(`Response:\n${stringify(actionSendResponse)}`); - return actionSendResponse; + return actionSendResponse as ActionTypeExecutorResult; } /** Gets agent details directly from SentinelOne */ @@ -174,7 +225,7 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { s1ApiResponse = response.data; } catch (err) { throw new ResponseActionsClientError( - `Error while attempting to retrieve SentinelOne host with agent id [${agentUUID}]`, + `Error while attempting to retrieve SentinelOne host with agent id [${agentUUID}]: ${err.message}`, 500, err ); @@ -236,21 +287,8 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { } } - const actionRequestDoc = await this.writeActionRequestToEndpointIndex(reqIndexOptions); - - await this.updateCases({ - command: reqIndexOptions.command, - caseIds: reqIndexOptions.case_ids, - alertIds: reqIndexOptions.alert_ids, - actionId: actionRequestDoc.EndpointActions.action_id, - hosts: actionRequest.endpoint_ids.map((agentId) => { - return { - hostId: agentId, - hostname: actionRequestDoc.EndpointActions.data.hosts?.[agentId].name ?? '', - }; - }), - comment: reqIndexOptions.comment, - }); + const { actionDetails, actionEsDoc: actionRequestDoc } = + await this.handleResponseActionCreation(reqIndexOptions); if ( !actionRequestDoc.error && @@ -263,9 +301,11 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { command: actionRequestDoc.EndpointActions.data.command, }, }); + + return this.fetchActionDetails(actionRequestDoc.EndpointActions.action_id); } - return this.fetchActionDetails(actionRequestDoc.EndpointActions.action_id); + return actionDetails; } async release( @@ -300,21 +340,8 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { } } - const actionRequestDoc = await this.writeActionRequestToEndpointIndex(reqIndexOptions); - - await this.updateCases({ - command: reqIndexOptions.command, - caseIds: reqIndexOptions.case_ids, - alertIds: reqIndexOptions.alert_ids, - actionId: actionRequestDoc.EndpointActions.action_id, - hosts: actionRequest.endpoint_ids.map((agentId) => { - return { - hostId: agentId, - hostname: actionRequestDoc.EndpointActions.data.hosts?.[agentId].name ?? '', - }; - }), - comment: reqIndexOptions.comment, - }); + const { actionDetails, actionEsDoc: actionRequestDoc } = + await this.handleResponseActionCreation(reqIndexOptions); if ( !actionRequestDoc.error && @@ -327,9 +354,110 @@ export class SentinelOneActionsClient extends ResponseActionsClientImpl { command: actionRequestDoc.EndpointActions.data.command, }, }); + + return this.fetchActionDetails(actionRequestDoc.EndpointActions.action_id); + } + + return actionDetails; + } + + async getFile( + actionRequest: ResponseActionGetFileRequestBody, + options?: CommonResponseActionMethodOptions + ): Promise> { + if ( + !this.options.endpointService.experimentalFeatures.responseActionsSentinelOneGetFileEnabled + ) { + throw new ResponseActionsClientError( + `get-file not supported for ${this.agentType} agent type. Feature disabled`, + 400 + ); + } + + const reqIndexOptions: ResponseActionsClientWriteActionRequestToEndpointIndexOptions< + ResponseActionGetFileParameters, + ResponseActionGetFileOutputContent, + Partial + > = { + ...actionRequest, + ...this.getMethodOptions(options), + command: 'get-file', + }; + + if (!reqIndexOptions.error) { + let error = (await this.validateRequest(reqIndexOptions)).error; + const timestamp = new Date().toISOString(); + + if (!error) { + try { + await this.sendAction(SUB_ACTION.FETCH_AGENT_FILES, { + agentUUID: actionRequest.endpoint_ids[0], + files: [actionRequest.parameters.path], + zipPassCode: SENTINEL_ONE_ZIP_PASSCODE, + }); + } catch (err) { + error = err; + } + } + + reqIndexOptions.error = error?.message; + + if (!this.options.isAutomated && error) { + throw error; + } + + if (!error) { + const { id: agentId } = await this.getAgentDetails(actionRequest.endpoint_ids[0]); + + const activitySearchCriteria: SentinelOneGetActivitiesParams = { + // Activity type for fetching a file from a host machine in SentinelOne: + // { + // "id": 81 + // "action": "User Requested Fetch Files", + // "descriptionTemplate": "The management user {{ username }} initiated a fetch file command to the agent {{ computer_name }} ({{ external_ip }}).", + // }, + activityTypes: '81', + limit: 1, + sortBy: 'createdAt', + sortOrder: 'asc', + // eslint-disable-next-line @typescript-eslint/naming-convention + createdAt__gte: timestamp, + agentIds: agentId, + }; + + // Fetch the Activity log entry for this get-file request and store needed data + const activityLogSearchResponse = await this.sendAction< + SentinelOneGetActivitiesResponse<{ commandBatchUuid: string }> + >(SUB_ACTION.GET_ACTIVITIES, activitySearchCriteria); + + this.log.debug( + `Search of activity log with:\n${stringify( + activitySearchCriteria + )}\n returned:\n${stringify(activityLogSearchResponse.data)}` + ); + + if (activityLogSearchResponse.data?.data.length) { + const activityLogItem = activityLogSearchResponse.data?.data[0]; + + reqIndexOptions.meta = { + commandBatchUuid: activityLogItem?.data.commandBatchUuid, + activityId: activityLogItem?.id, + }; + } else { + this.log.warn( + `Unable to find a fetch file command entry in SentinelOne activity log. May be unable to complete response action` + ); + } + } } - return this.fetchActionDetails(actionRequestDoc.EndpointActions.action_id); + return ( + await this.handleResponseActionCreation< + ResponseActionGetFileParameters, + ResponseActionGetFileOutputContent, + SentinelOneGetFileRequestMeta + >(reqIndexOptions) + ).actionDetails; } async processPendingActions({ From 1e79cfc47d1d989f97b813d8ad91594a892aec75 Mon Sep 17 00:00:00 2001 From: Rodney Norris Date: Mon, 22 Apr 2024 13:46:55 -0500 Subject: [PATCH 042/183] [Console] show persistent console on pipelines list page (#180422) --- x-pack/plugins/ingest_pipelines/kibana.jsonc | 3 +- .../public/application/index.tsx | 2 + .../application/mount_management_section.ts | 1 + .../pipelines_create/pipelines_create.tsx | 3 ++ .../pipelines_create_from_csv/main.tsx | 3 ++ .../pipelines_edit/pipelines_edit.tsx | 3 ++ .../sections/pipelines_list/main.tsx | 3 ++ .../plugins/ingest_pipelines/public/types.ts | 2 + x-pack/plugins/ingest_pipelines/tsconfig.json | 1 + .../apps/dev_tools/embedded_console.ts | 19 ++++++++ .../ingest_pipelines_security.ts | 17 ++++++- .../page_objects/embedded_console.ts | 47 +++++++++++++++++++ x-pack/test/functional/page_objects/index.ts | 2 + .../functional/page_objects/index.ts | 2 + .../page_objects/svl_ingest_pipelines.ts | 11 +++++ .../functional/test_suites/search/index.ts | 1 + .../test_suites/search/pipelines.ts | 33 +++++++++++++ 17 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 x-pack/test/functional/apps/dev_tools/embedded_console.ts create mode 100644 x-pack/test/functional/page_objects/embedded_console.ts create mode 100644 x-pack/test_serverless/functional/page_objects/svl_ingest_pipelines.ts create mode 100644 x-pack/test_serverless/functional/test_suites/search/pipelines.ts diff --git a/x-pack/plugins/ingest_pipelines/kibana.jsonc b/x-pack/plugins/ingest_pipelines/kibana.jsonc index 86185e7d772d2..55fa46c61b377 100644 --- a/x-pack/plugins/ingest_pipelines/kibana.jsonc +++ b/x-pack/plugins/ingest_pipelines/kibana.jsonc @@ -19,7 +19,8 @@ ], "optionalPlugins": [ "security", - "usageCollection" + "usageCollection", + "console" ], "requiredBundles": [ "esUiShared", diff --git a/x-pack/plugins/ingest_pipelines/public/application/index.tsx b/x-pack/plugins/ingest_pipelines/public/application/index.tsx index 8f0adf677677e..982fc487957d1 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/index.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/index.tsx @@ -12,6 +12,7 @@ import { render, unmountComponentAtNode } from 'react-dom'; import { ApplicationStart } from '@kbn/core/public'; import { NotificationsSetup, IUiSettingsClient } from '@kbn/core/public'; import { ManagementAppMountParams } from '@kbn/management-plugin/public'; +import type { ConsolePluginStart } from '@kbn/console-plugin/public'; import type { SharePluginStart } from '@kbn/share-plugin/public'; import type { FileUploadPluginStart } from '@kbn/file-upload-plugin/public'; import type { SettingsStart } from '@kbn/core-ui-settings-browser'; @@ -46,6 +47,7 @@ export interface AppServices { fileUpload: FileUploadPluginStart; application: ApplicationStart; license: ILicense | null; + consolePlugin?: ConsolePluginStart; } type StartServices = Pick; diff --git a/x-pack/plugins/ingest_pipelines/public/application/mount_management_section.ts b/x-pack/plugins/ingest_pipelines/public/application/mount_management_section.ts index b2978d4b18fc6..ea6a229cfb73c 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/mount_management_section.ts +++ b/x-pack/plugins/ingest_pipelines/public/application/mount_management_section.ts @@ -48,6 +48,7 @@ export async function mountManagementSection( application, executionContext, license, + consolePlugin: depsStart.console, }; return renderApp(element, services, { ...coreStart, http }); diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create/pipelines_create.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create/pipelines_create.tsx index 763751b2fabc9..06f3b5a7bc0d2 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create/pipelines_create.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create/pipelines_create.tsx @@ -130,6 +130,9 @@ export const PipelinesCreate: React.FunctionComponent + {services.consolePlugin?.EmbeddableConsole ? ( + + ) : null} ); }; diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create_from_csv/main.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create_from_csv/main.tsx index 259950919c06f..4a61011fb05aa 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create_from_csv/main.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_create_from_csv/main.tsx @@ -213,6 +213,9 @@ export const PipelinesCreateFromCsv: React.FunctionComponent )} + {services.consolePlugin?.EmbeddableConsole ? ( + + ) : null} ); }; diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_edit/pipelines_edit.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_edit/pipelines_edit.tsx index fbac7f1106bea..bfc08e1d09985 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_edit/pipelines_edit.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_edit/pipelines_edit.tsx @@ -201,6 +201,9 @@ export const PipelinesEdit: React.FunctionComponent + {services.consolePlugin?.EmbeddableConsole ? ( + + ) : null} ); }; diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/main.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/main.tsx index cf972abe5db59..901b8c78a4eee 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/main.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/main.tsx @@ -264,6 +264,9 @@ export const PipelinesList: React.FunctionComponent = ({ pipelinesToDelete={pipelinesToDelete} /> ) : null} + {services.consolePlugin?.EmbeddableConsole ? ( + + ) : null} ); }; diff --git a/x-pack/plugins/ingest_pipelines/public/types.ts b/x-pack/plugins/ingest_pipelines/public/types.ts index d6c249c0b0410..bfa1ac4300b3a 100644 --- a/x-pack/plugins/ingest_pipelines/public/types.ts +++ b/x-pack/plugins/ingest_pipelines/public/types.ts @@ -9,6 +9,7 @@ import { ManagementSetup } from '@kbn/management-plugin/public'; import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public'; import { SharePluginStart, SharePluginSetup } from '@kbn/share-plugin/public'; import type { FileUploadPluginStart } from '@kbn/file-upload-plugin/public'; +import type { ConsolePluginStart } from '@kbn/console-plugin/public'; import { LicensingPluginStart } from '@kbn/licensing-plugin/public'; export type { LicenseType, ILicense } from '@kbn/licensing-plugin/public'; @@ -22,4 +23,5 @@ export interface StartDependencies { share: SharePluginStart; fileUpload: FileUploadPluginStart; licensing?: LicensingPluginStart; + console?: ConsolePluginStart; } diff --git a/x-pack/plugins/ingest_pipelines/tsconfig.json b/x-pack/plugins/ingest_pipelines/tsconfig.json index b77ba94996751..71f0cb792a92c 100644 --- a/x-pack/plugins/ingest_pipelines/tsconfig.json +++ b/x-pack/plugins/ingest_pipelines/tsconfig.json @@ -32,6 +32,7 @@ "@kbn/core-ui-settings-browser", "@kbn/code-editor", "@kbn/react-kibana-context-render", + "@kbn/console-plugin" ], "exclude": [ "target/**/*", diff --git a/x-pack/test/functional/apps/dev_tools/embedded_console.ts b/x-pack/test/functional/apps/dev_tools/embedded_console.ts new file mode 100644 index 0000000000000..8b663ea4aa5a7 --- /dev/null +++ b/x-pack/test/functional/apps/dev_tools/embedded_console.ts @@ -0,0 +1,19 @@ +/* + * 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 { FtrProviderContext } from '../../ftr_provider_context'; + +type PageObjects = Pick, 'embeddedConsole'>; + +export async function testEmbeddedConsole(pageObjects: PageObjects) { + await pageObjects.embeddedConsole.expectEmbeddedConsoleControlBarExists(); + await pageObjects.embeddedConsole.expectEmbeddedConsoleToBeClosed(); + await pageObjects.embeddedConsole.clickEmbeddedConsoleControlBar(); + await pageObjects.embeddedConsole.expectEmbeddedConsoleToBeOpen(); + await pageObjects.embeddedConsole.clickEmbeddedConsoleControlBar(); + await pageObjects.embeddedConsole.expectEmbeddedConsoleToBeClosed(); +} diff --git a/x-pack/test/functional/apps/ingest_pipelines/feature_controls/ingest_pipelines_security.ts b/x-pack/test/functional/apps/ingest_pipelines/feature_controls/ingest_pipelines_security.ts index 350170160c71d..ee984ecc0a557 100644 --- a/x-pack/test/functional/apps/ingest_pipelines/feature_controls/ingest_pipelines_security.ts +++ b/x-pack/test/functional/apps/ingest_pipelines/feature_controls/ingest_pipelines_security.ts @@ -7,11 +7,12 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../../ftr_provider_context'; +import { testEmbeddedConsole } from '../../dev_tools/embedded_console'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const kibanaServer = getService('kibanaServer'); const security = getService('security'); - const PageObjects = getPageObjects(['common', 'settings', 'security']); + const PageObjects = getPageObjects(['common', 'settings', 'security', 'embeddedConsole']); const appsMenu = getService('appsMenu'); const managementMenu = getService('managementMenu'); @@ -69,5 +70,19 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }); }); }); + + describe('ingest user with dev tools', () => { + before(async () => { + await security.testUser.setRoles(['global_devtools_read', 'ingest_pipelines_user']); + }); + after(async () => { + await security.testUser.restoreDefaults(); + }); + + it('should have the embedded console', async () => { + await PageObjects.common.navigateToApp('ingestPipelines'); + await testEmbeddedConsole(PageObjects); + }); + }); }); } diff --git a/x-pack/test/functional/page_objects/embedded_console.ts b/x-pack/test/functional/page_objects/embedded_console.ts new file mode 100644 index 0000000000000..b6b54365f7031 --- /dev/null +++ b/x-pack/test/functional/page_objects/embedded_console.ts @@ -0,0 +1,47 @@ +/* + * 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 { FtrProviderContext } from '../ftr_provider_context'; + +export function EmbeddedConsoleProvider({ getService }: FtrProviderContext) { + const testSubjects = getService('testSubjects'); + + return { + async expectEmbeddedConsoleControlBarExists() { + await testSubjects.existOrFail('consoleEmbeddedSection'); + }, + async expectEmbeddedConsoleToBeOpen() { + await testSubjects.existOrFail('consoleEmbeddedBody'); + }, + async expectEmbeddedConsoleToBeClosed() { + await testSubjects.missingOrFail('consoleEmbeddedBody'); + }, + async clickEmbeddedConsoleControlBar() { + await testSubjects.click('consoleEmbeddedControlBar'); + }, + async expectEmbeddedConsoleNotebooksButtonExists() { + await testSubjects.existOrFail('consoleEmbeddedNotebooksButton'); + }, + async clickEmbeddedConsoleNotebooksButton() { + await testSubjects.click('consoleEmbeddedNotebooksButton'); + }, + async expectEmbeddedConsoleNotebooksToBeOpen() { + await testSubjects.existOrFail('consoleEmbeddedNotebooksContainer'); + }, + async expectEmbeddedConsoleNotebooksToBeClosed() { + await testSubjects.missingOrFail('consoleEmbeddedNotebooksContainer'); + }, + async expectEmbeddedConsoleNotebookListItemToBeAvailable(id: string) { + await testSubjects.existOrFail(`console-embedded-notebook-select-btn-${id}`); + }, + async clickEmbeddedConsoleNotebook(id: string) { + await testSubjects.click(`console-embedded-notebook-select-btn-${id}`); + }, + async expectEmbeddedConsoleNotebookToBeAvailable(id: string) { + await testSubjects.click(`console-embedded-notebook-select-btn-${id}`); + }, + }; +} diff --git a/x-pack/test/functional/page_objects/index.ts b/x-pack/test/functional/page_objects/index.ts index 80b7b74095ab9..7a459ad74f980 100644 --- a/x-pack/test/functional/page_objects/index.ts +++ b/x-pack/test/functional/page_objects/index.ts @@ -15,6 +15,7 @@ import { CanvasPageProvider } from './canvas_page'; import { CopySavedObjectsToSpacePageProvider } from './copy_saved_objects_to_space_page'; import { CrossClusterReplicationPageProvider } from './cross_cluster_replication_page'; import { DetectionsPageObject } from '../../security_solution_ftr/page_objects/detections'; +import { EmbeddedConsoleProvider } from './embedded_console'; import { GeoFileUploadPageObject } from './geo_file_upload'; import { GisPageObject } from './gis_page'; import { GraphPageObject } from './graph_page'; @@ -65,6 +66,7 @@ export const pageObjects = { copySavedObjectsToSpace: CopySavedObjectsToSpacePageProvider, crossClusterReplication: CrossClusterReplicationPageProvider, detections: DetectionsPageObject, + embeddedConsole: EmbeddedConsoleProvider, geoFileUpload: GeoFileUploadPageObject, graph: GraphPageObject, grokDebugger: GrokDebuggerPageObject, diff --git a/x-pack/test_serverless/functional/page_objects/index.ts b/x-pack/test_serverless/functional/page_objects/index.ts index 0fcc12cd25bb4..f1604d48508e2 100644 --- a/x-pack/test_serverless/functional/page_objects/index.ts +++ b/x-pack/test_serverless/functional/page_objects/index.ts @@ -20,6 +20,7 @@ import { SvlTriggersActionsPageProvider } from './svl_triggers_actions_ui_page'; import { SvlRuleDetailsPageProvider } from './svl_rule_details_ui_page'; import { SvlSearchConnectorsPageProvider } from './svl_search_connectors_page'; import { SvlManagementPageProvider } from './svl_management_page'; +import { SvlIngestPipelines } from './svl_ingest_pipelines'; export const pageObjects = { ...xpackFunctionalPageObjects, @@ -36,4 +37,5 @@ export const pageObjects = { svlTriggersActionsUI: SvlTriggersActionsPageProvider, svlRuleDetailsUI: SvlRuleDetailsPageProvider, svlManagementPage: SvlManagementPageProvider, + svlIngestPipelines: SvlIngestPipelines, }; diff --git a/x-pack/test_serverless/functional/page_objects/svl_ingest_pipelines.ts b/x-pack/test_serverless/functional/page_objects/svl_ingest_pipelines.ts new file mode 100644 index 0000000000000..dbc083e578596 --- /dev/null +++ b/x-pack/test_serverless/functional/page_objects/svl_ingest_pipelines.ts @@ -0,0 +1,11 @@ +/* + * 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 { FtrProviderContext } from '../ftr_provider_context'; +export function SvlIngestPipelines({}: FtrProviderContext) { + return {}; +} diff --git a/x-pack/test_serverless/functional/test_suites/search/index.ts b/x-pack/test_serverless/functional/test_suites/search/index.ts index f9c8e67594ec8..2e62cf4fbee38 100644 --- a/x-pack/test_serverless/functional/test_suites/search/index.ts +++ b/x-pack/test_serverless/functional/test_suites/search/index.ts @@ -13,6 +13,7 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./connectors/connectors_overview')); loadTestFile(require.resolve('./default_dataview')); loadTestFile(require.resolve('./navigation')); + loadTestFile(require.resolve('./pipelines')); loadTestFile(require.resolve('./cases/attachment_framework')); loadTestFile(require.resolve('./dashboards/build_dashboard')); loadTestFile(require.resolve('./dashboards/import_dashboard')); diff --git a/x-pack/test_serverless/functional/test_suites/search/pipelines.ts b/x-pack/test_serverless/functional/test_suites/search/pipelines.ts new file mode 100644 index 0000000000000..4ad1b685edf2a --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/search/pipelines.ts @@ -0,0 +1,33 @@ +/* + * 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 { FtrProviderContext } from '../../ftr_provider_context'; +import { testHasEmbeddedConsole } from './embedded_console'; + +export default function ({ getPageObjects }: FtrProviderContext) { + const pageObjects = getPageObjects([ + 'svlCommonPage', + 'svlCommonNavigation', + 'common', + 'svlIngestPipelines', + ]); + describe('ingest pipelines', function () { + before(async () => { + await pageObjects.svlCommonPage.login(); + await pageObjects.svlCommonNavigation.sidenav.clickLink({ + deepLinkId: 'management:ingest_pipelines', + }); + }); + + after(async () => { + await pageObjects.svlCommonPage.forceLogout(); + }); + + it('has embedded console', async () => { + await testHasEmbeddedConsole(pageObjects); + }); + }); +} From 585ec64e6d558fe65116a9d830602f6371ec80f9 Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Mon, 22 Apr 2024 23:09:30 +0200 Subject: [PATCH 043/183] Display results instead of errors after search timeout (#179679) ## Summary Replaces https://github.com/elastic/kibana/pull/176026. Resolves https://github.com/elastic/kibana/issues/172263. An advanced setting, `search:timeout` determines how long we let search requests continue before actively cancelling them. The default is 10 minutes. Prior to this PR, after waiting on screen for that 10 minutes, if the user didn't send to background, the request would cancel and an error would be shown. This PR changes the behavior to not just show an error, but to actually retrieve the latest results from the search request and display them (along with a warning). Before this PR: ![before](https://github.com/elastic/kibana/assets/1178348/d1752287-e6c5-4a6e-b79d-e8e61b6a156a) After this PR: ![after](https://github.com/elastic/kibana/assets/1178348/5c8f284f-666f-4365-9021-b93d995a2576) ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) ### Release notes When a long-running search times out, instead of showing an error, any results that are available will be shown (along with a warning that the results are incomplete). --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Matthew Kime Co-authored-by: Julia Rechkunova --- .../view_details_popover.tsx | 21 +- src/plugins/data/common/search/types.ts | 8 + .../search_interceptor.test.ts | 61 +++++- .../search_interceptor/search_interceptor.ts | 14 ++ .../to_partial_response.test.ts | 204 ++++++++++++++++++ .../search_interceptor/to_partial_response.ts | 67 ++++++ .../ese_search/ese_search_strategy.ts | 8 +- .../__snapshots__/cluster_view.test.tsx.snap | 5 + .../clusters_table/cluster_view.tsx | 2 +- .../clusters_table/clusters_table.tsx | 1 + .../ccs_compatibility/_timeout_results.ts | 155 +++++++++++++ .../apps/discover/ccs_compatibility/index.ts | 3 + .../dashboard/async_search/async_search.ts | 5 +- 13 files changed, 537 insertions(+), 17 deletions(-) create mode 100644 src/plugins/data/public/search/search_interceptor/to_partial_response.test.ts create mode 100644 src/plugins/data/public/search/search_interceptor/to_partial_response.ts create mode 100644 test/functional/apps/discover/ccs_compatibility/_timeout_results.ts diff --git a/packages/kbn-search-response-warnings/src/components/search_response_warnings/view_details_popover.tsx b/packages/kbn-search-response-warnings/src/components/search_response_warnings/view_details_popover.tsx index 98c5a08f9b2d8..6bf614412f3b6 100644 --- a/packages/kbn-search-response-warnings/src/components/search_response_warnings/view_details_popover.tsx +++ b/packages/kbn-search-response-warnings/src/components/search_response_warnings/view_details_popover.tsx @@ -32,11 +32,19 @@ export const ViewDetailsPopover = (props: Props) => { if (props.warnings.length === 1) { return props.displayAsLink ? ( - + {viewDetailsLabel} ) : ( - + {viewDetailsLabel} ); @@ -69,7 +77,11 @@ export const ViewDetailsPopover = (props: Props) => { id="ViewDetailsPopover" button={ props.displayAsLink ? ( - setIsPopoverOpen(!isPopoverOpen)}> + setIsPopoverOpen(!isPopoverOpen)} + data-test-subj="searchResponseWarningsViewDetails" + > <> {viewDetailsLabel} @@ -80,6 +92,7 @@ export const ViewDetailsPopover = (props: Props) => { onClick={() => setIsPopoverOpen(!isPopoverOpen)} iconSide="right" iconType="arrowRight" + data-test-subj="searchResponseWarningsViewDetails" > {viewDetailsLabel} @@ -90,7 +103,7 @@ export const ViewDetailsPopover = (props: Props) => { panelPaddingSize="none" anchorPosition="downCenter" > - + ); }; diff --git a/src/plugins/data/common/search/types.ts b/src/plugins/data/common/search/types.ts index 7187ac7b9748d..51c56541366f0 100644 --- a/src/plugins/data/common/search/types.ts +++ b/src/plugins/data/common/search/types.ts @@ -153,6 +153,13 @@ export interface ISearchOptions { */ isRestore?: boolean; + /** + * By default, when polling, we don't retrieve the results of the search request (until it is complete). (For async + * search, this is the difference between calling _async_search/{id} and _async_search/status/{id}.) setting this to + * `true` will request the search results, regardless of whether or not the search is complete. + */ + retrieveResults?: boolean; + /** * Represents a meta-information about a Kibana entity intitating a saerch request. */ @@ -182,5 +189,6 @@ export type ISearchOptionsSerializable = Pick< | 'isStored' | 'isSearchStored' | 'isRestore' + | 'retrieveResults' | 'executionContext' >; diff --git a/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts b/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts index 4a2b6f27e9e9b..8c01ea615fd37 100644 --- a/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts +++ b/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts @@ -358,8 +358,6 @@ describe('SearchInterceptor', () => { await timeTravel(1000); - expect(error).toHaveBeenCalled(); - expect(error.mock.calls[0][0]).toBeInstanceOf(SearchTimeoutError); expect(fetchMock).toHaveBeenCalled(); expect(mockCoreSetup.http.delete).not.toHaveBeenCalled(); }); @@ -400,12 +398,65 @@ describe('SearchInterceptor', () => { // Long enough to reach the timeout but not long enough to reach the next response await timeTravel(1000); - expect(error).toHaveBeenCalled(); - expect(error.mock.calls[0][0]).toBeInstanceOf(SearchTimeoutError); - expect(fetchMock).toHaveBeenCalledTimes(2); + // Expect 3 calls to fetch - the two polls and a final request for the results before deleting + expect(fetchMock).toHaveBeenCalledTimes(3); expect(mockCoreSetup.http.delete).toHaveBeenCalledTimes(1); }); + test('should return the last response on async timeout', async () => { + const responses = [ + { + time: 10, + value: { + isPartial: true, + isRunning: true, + rawResponse: {}, + id: 1, + }, + }, + { + time: 2000, + value: { + isPartial: false, + isRunning: false, + rawResponse: {}, + id: 1, + }, + }, + ]; + mockFetchImplementation(responses); + + const response = searchInterceptor.search({}, { pollInterval: 0 }); + response.subscribe({ next, error }); + + await timeTravel(10); + + expect(next).toHaveBeenCalled(); + expect(error).not.toHaveBeenCalled(); + expect(fetchMock).toHaveBeenCalled(); + expect(mockCoreSetup.http.delete).not.toHaveBeenCalled(); + + // Long enough to reach the timeout but not long enough to reach the next response + await timeTravel(1000); + + expect(next).toHaveBeenCalledTimes(2); + expect(next.mock.calls[1]).toMatchInlineSnapshot(` + Array [ + Object { + "id": 1, + "isPartial": true, + "isRunning": false, + "meta": Object { + "size": 10, + }, + "rawResponse": Object { + "timed_out": true, + }, + }, + ] + `); + }); + test('should DELETE a running async search on async timeout on error from fetch', async () => { const responses = [ { diff --git a/src/plugins/data/public/search/search_interceptor/search_interceptor.ts b/src/plugins/data/public/search/search_interceptor/search_interceptor.ts index e08faa03c6c69..5da9d4c2f7120 100644 --- a/src/plugins/data/public/search/search_interceptor/search_interceptor.ts +++ b/src/plugins/data/public/search/search_interceptor/search_interceptor.ts @@ -66,6 +66,7 @@ import { import { SearchUsageCollector } from '../collectors'; import { SearchTimeoutError, TimeoutErrorMode } from './timeout_error'; import { SearchSessionIncompleteWarning } from './search_session_incomplete_warning'; +import { toPartialResponseAfterTimeout } from './to_partial_response'; import { ISessionService, SearchSessionState } from '../session'; import { SearchResponseCache } from './search_response_cache'; import { SearchAbortController } from './search_abort_controller'; @@ -257,6 +258,8 @@ export class SearchInterceptor { if (combined.sessionId !== undefined) serializableOptions.sessionId = combined.sessionId; if (combined.isRestore !== undefined) serializableOptions.isRestore = combined.isRestore; + if (combined.retrieveResults !== undefined) + serializableOptions.retrieveResults = combined.retrieveResults; if (combined.legacyHitsTotal !== undefined) serializableOptions.legacyHitsTotal = combined.legacyHitsTotal; if (combined.strategy !== undefined) serializableOptions.strategy = combined.strategy; @@ -509,6 +512,17 @@ export class SearchInterceptor { return response$.pipe( takeUntil(aborted$), catchError((e) => { + // If we aborted (search:timeout advanced setting) and there was a partial response, return it instead of just erroring out + if (searchAbortController.isTimeout()) { + return from( + this.runSearch(request, { ...searchOptions, retrieveResults: true }) + ).pipe( + tap(() => + this.handleSearchError(e, request?.params?.body ?? {}, searchOptions, true) + ), + map(toPartialResponseAfterTimeout) + ); + } return throwError( this.handleSearchError( e, diff --git a/src/plugins/data/public/search/search_interceptor/to_partial_response.test.ts b/src/plugins/data/public/search/search_interceptor/to_partial_response.test.ts new file mode 100644 index 0000000000000..dacdade55f41a --- /dev/null +++ b/src/plugins/data/public/search/search_interceptor/to_partial_response.test.ts @@ -0,0 +1,204 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { toPartialResponseAfterTimeout } from './to_partial_response'; +import { IEsSearchResponse } from '../../../common'; + +describe('toPartialResponseAfterTimeout', () => { + it('should transform a non-CCS response', () => { + const response = { + id: 'FnRKOG10dG5OUXItUTNGUE5HNW9iU1Eed3l6LUVycTVTVGl1LWtDSVdta2VkQToxODQ5NzQ3', + rawResponse: { + took: 4498, + timed_out: false, + terminated_early: false, + num_reduce_phases: 0, + _shards: { + total: 15, + successful: 0, + skipped: 10, + failed: 0, + }, + hits: { + total: 0, + max_score: null, + hits: [], + }, + }, + isPartial: true, + isRunning: true, + total: 15, + loaded: 0, + isRestored: true, + requestParams: { + method: 'POST', + path: '/kibana_sample_data_logs/_async_search', + querystring: + 'batched_reduce_size=64&ccs_minimize_roundtrips=true&wait_for_completion_timeout=200ms&keep_on_completion=true&keep_alive=60000ms&ignore_unavailable=true&expand_wildcards=all&preference=1706739464897', + }, + }; + + const expected = { + id: 'FnRKOG10dG5OUXItUTNGUE5HNW9iU1Eed3l6LUVycTVTVGl1LWtDSVdta2VkQToxODQ5NzQ3', + rawResponse: { + took: 4498, + timed_out: true, + terminated_early: false, + num_reduce_phases: 0, + _shards: { + total: 15, + successful: 0, + skipped: 10, + failed: 0, + }, + hits: { + total: 0, + max_score: null, + hits: [], + }, + }, + isPartial: true, + isRunning: false, + total: 15, + loaded: 0, + isRestored: true, + requestParams: { + method: 'POST', + path: '/kibana_sample_data_logs/_async_search', + querystring: + 'batched_reduce_size=64&ccs_minimize_roundtrips=true&wait_for_completion_timeout=200ms&keep_on_completion=true&keep_alive=60000ms&ignore_unavailable=true&expand_wildcards=all&preference=1706739464897', + }, + }; + + const actual = toPartialResponseAfterTimeout(response); + expect(actual).toEqual(expected); + }); + + it('should transform a CCS response', () => { + const response: IEsSearchResponse = { + id: 'FmZBc2NuYlhsU1JxSk5LZXNRczVxdEEed3l6LUVycTVTVGl1LWtDSVdta2VkQToxODUzODUx', + rawResponse: { + took: 4414, + timed_out: false, + terminated_early: false, + num_reduce_phases: 2, + _shards: { + total: 22, + successful: 8, + skipped: 11, + failed: 0, + }, + _clusters: { + total: 2, + successful: 1, + skipped: 0, + running: 1, + partial: 0, + failed: 0, + details: { + '(local)': { + status: 'running', + indices: + 'qbserve-2024-01-22,qbserve-2024-01-23,qbserve-2024-01-31,qbserve-2024-01-30,qbserve-2024-01-19,qbserve-2024-01-17,qbserve-2024-01-18,qbserve-2024-01-29,qbserve-2024-01-15,qbserve-2024-01-26,qbserve-2024-01-16,qbserve-2024-01-27,qbserve-2024-01-24,qbserve-2024-01-25', + timed_out: false, + }, + remote1: { + status: 'successful', + indices: 'kibana_sample_data_logs', + took: 13, + timed_out: false, + _shards: { + total: 8, + successful: 8, + skipped: 2, + failed: 0, + }, + }, + }, + }, + hits: { + max_score: null, + hits: [], + }, + }, + isPartial: true, + isRunning: true, + total: 22, + loaded: 8, + isRestored: true, + requestParams: { + method: 'POST', + path: '/kibana_sample_data_logs%2C*%3Akibana_sample_data_logs/_async_search', + querystring: + 'batched_reduce_size=64&ccs_minimize_roundtrips=true&wait_for_completion_timeout=200ms&keep_on_completion=true&keep_alive=60000ms&ignore_unavailable=true&preference=1706739464897', + }, + }; + + const expected = { + id: 'FmZBc2NuYlhsU1JxSk5LZXNRczVxdEEed3l6LUVycTVTVGl1LWtDSVdta2VkQToxODUzODUx', + rawResponse: { + took: 4414, + timed_out: false, + terminated_early: false, + num_reduce_phases: 2, + _shards: { + total: 22, + successful: 8, + skipped: 11, + failed: 0, + }, + _clusters: { + total: 2, + successful: 1, + skipped: 0, + running: 1, + partial: 0, + failed: 0, + details: { + '(local)': { + status: 'partial', + indices: + 'qbserve-2024-01-22,qbserve-2024-01-23,qbserve-2024-01-31,qbserve-2024-01-30,qbserve-2024-01-19,qbserve-2024-01-17,qbserve-2024-01-18,qbserve-2024-01-29,qbserve-2024-01-15,qbserve-2024-01-26,qbserve-2024-01-16,qbserve-2024-01-27,qbserve-2024-01-24,qbserve-2024-01-25', + timed_out: true, + }, + remote1: { + status: 'successful', + indices: 'kibana_sample_data_logs', + took: 13, + timed_out: false, + _shards: { + total: 8, + successful: 8, + skipped: 2, + failed: 0, + }, + }, + }, + }, + hits: { + max_score: null, + hits: [], + }, + }, + isPartial: true, + isRunning: false, + total: 22, + loaded: 8, + isRestored: true, + requestParams: { + method: 'POST', + path: '/kibana_sample_data_logs%2C*%3Akibana_sample_data_logs/_async_search', + querystring: + 'batched_reduce_size=64&ccs_minimize_roundtrips=true&wait_for_completion_timeout=200ms&keep_on_completion=true&keep_alive=60000ms&ignore_unavailable=true&preference=1706739464897', + }, + }; + + const actual = toPartialResponseAfterTimeout(response); + expect(actual).toEqual(expected); + }); +}); diff --git a/src/plugins/data/public/search/search_interceptor/to_partial_response.ts b/src/plugins/data/public/search/search_interceptor/to_partial_response.ts new file mode 100644 index 0000000000000..8c6af82bb31e4 --- /dev/null +++ b/src/plugins/data/public/search/search_interceptor/to_partial_response.ts @@ -0,0 +1,67 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + ClusterDetails, + ClusterStatistics, + SearchResponse, +} from '@elastic/elasticsearch/lib/api/types'; +import { IEsSearchResponse } from '../../../common'; + +/** + * When we hit the advanced setting `search:timeout`, we cancel in-progress search requests. This method takes the + * active raw response from ES (status: "running") and returns a request in the format expected by our helper utilities + * (status: "partial") that display cluster info, warnings, & errors. + * @param response The raw ES response + */ +export function toPartialResponseAfterTimeout(response: IEsSearchResponse): IEsSearchResponse { + const { rawResponse } = response; + const { _clusters: clusters } = rawResponse as SearchResponse & { + _clusters: ClusterStatistics & { + details: Record; + }; + }; + if (clusters) { + // CCS response + const details = Object.fromEntries( + Object.keys(clusters.details).map((key) => { + return [ + key, + clusters.details[key].status !== 'running' + ? clusters.details[key] + : { + ...clusters.details[key], + status: 'partial', + timed_out: true, + }, + ]; + }) + ); + return { + ...response, + isRunning: false, + rawResponse: { + ...rawResponse, + _clusters: { + ...clusters, + details, + }, + }, + } as IEsSearchResponse; + } else { + // Non-CCS response + return { + ...response, + isRunning: false, + rawResponse: { + ...rawResponse, + timed_out: true, + }, + }; + } +} diff --git a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts index 94276ba639d7f..2bf9775cd5288 100644 --- a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts +++ b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts @@ -73,9 +73,11 @@ export const enhancedEsSearchStrategyProvider = ( options: IAsyncSearchOptions, { esClient }: SearchStrategyDependencies ) { - // First, request the status of the async search, and return the status if incomplete - const status = await asyncSearchStatus({ id, ...request }, options, { esClient }); - if (isRunningResponse(status)) return status; + if (!options.retrieveResults) { + // First, request the status of the async search, and return the status if incomplete + const status = await asyncSearchStatus({ id, ...request }, options, { esClient }); + if (isRunningResponse(status)) return status; + } // Then, if the search is complete, request & return the final results const client = useInternalUser ? esClient.asInternalUser : esClient.asCurrentUser; diff --git a/src/plugins/inspector/public/views/requests/components/details/clusters_view/clusters_table/__snapshots__/cluster_view.test.tsx.snap b/src/plugins/inspector/public/views/requests/components/details/clusters_view/clusters_table/__snapshots__/cluster_view.test.tsx.snap index 66f1352ce8aab..e063ccea48cc2 100644 --- a/src/plugins/inspector/public/views/requests/components/details/clusters_view/clusters_table/__snapshots__/cluster_view.test.tsx.snap +++ b/src/plugins/inspector/public/views/requests/components/details/clusters_view/clusters_table/__snapshots__/cluster_view.test.tsx.snap @@ -2,6 +2,7 @@ exports[`render partial should display callout when request timed out 1`] = ` + {clusterDetails.timed_out ? ( toggleDetails(name)} aria-label={ name in expandedRows diff --git a/test/functional/apps/discover/ccs_compatibility/_timeout_results.ts b/test/functional/apps/discover/ccs_compatibility/_timeout_results.ts new file mode 100644 index 0000000000000..f8f81a44bdf8c --- /dev/null +++ b/test/functional/apps/discover/ccs_compatibility/_timeout_results.ts @@ -0,0 +1,155 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const filterBar = getService('filterBar'); + const kibanaServer = getService('kibanaServer'); + const retry = getService('retry'); + const testSubjects = getService('testSubjects'); + const toasts = getService('toasts'); + const PageObjects = getPageObjects(['common', 'discover', 'header', 'timePicker']); + const dataViews = getService('dataViews'); + + const esArchiver = getService('esArchiver'); + const remoteEsArchiver = getService('remoteEsArchiver' as 'esArchiver'); + + describe('discover search CCS timeout', () => { + before(async () => { + await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); + await remoteEsArchiver.loadIfNeeded( + 'test/functional/fixtures/es_archiver/logstash_functional' + ); + await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json'); + await kibanaServer.uiSettings.update({ 'search:timeout': 3000 }); + }); + + after(async () => { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + await remoteEsArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover.json'); + await kibanaServer.uiSettings.unset('search:timeout'); + }); + + describe('bfetch enabled', async () => { + it('timeout on single shard shows warning and results with bfetch enabled', async () => { + await PageObjects.common.navigateToApp('discover'); + await dataViews.createFromSearchBar({ + name: 'ftr-remote:logstash-*,logstash-*', + hasTimeField: false, + adHoc: true, + }); + + // Add a stall time to the remote indices + await filterBar.addDslFilter( + ` + { + "query": { + "error_query": { + "indices": [ + { + "name": "*:*", + "error_type": "exception", + "message": "'Watch out!'", + "stall_time_seconds": 5 + } + ] + } + } + }`, + true + ); + + // Warning callout is shown + await testSubjects.exists('searchResponseWarningsCallout'); + + // Timed out error notification is shown + const { title } = await toasts.getErrorByIndex(1, true); + expect(title).to.be('Timed out'); + + // View cluster details shows timed out + await testSubjects.click('searchResponseWarningsViewDetails'); + await testSubjects.click('viewDetailsContextMenu'); + await testSubjects.click('inspectorRequestToggleClusterDetailsftr-remote'); + const txt = await testSubjects.getVisibleText('inspectorRequestClustersDetails'); + expect(txt).to.be( + 'Request timed out before completion. Results may be incomplete or empty.' + ); + + // Ensure documents are still returned for the successful shards + await retry.try(async function tryingForTime() { + const hitCount = await PageObjects.discover.getHitCount(); + expect(hitCount).to.be('14,004'); + }); + }); + }); + + describe('bfetch disabled', async () => { + before(async () => { + await kibanaServer.uiSettings.update({ 'bfetch:disable': true }); + }); + + after(async () => { + await kibanaServer.uiSettings.unset('bfetch:disabled'); + }); + + it('timeout on single shard shows warning and results', async () => { + await PageObjects.common.navigateToApp('discover'); + await dataViews.createFromSearchBar({ + name: 'ftr-remote:logstash-*,logstash-*', + hasTimeField: false, + adHoc: true, + }); + + // Add a stall time to the remote indices + await filterBar.addDslFilter( + ` + { + "query": { + "error_query": { + "indices": [ + { + "name": "*:*", + "error_type": "exception", + "message": "'Watch out!'", + "stall_time_seconds": 5 + } + ] + } + } + }`, + true + ); + + // Warning callout is shown + await testSubjects.exists('searchResponseWarningsCallout'); + + // Timed out error notification is shown + const { title } = await toasts.getErrorByIndex(1, true); + expect(title).to.be('Timed out'); + + // View cluster details shows timed out + await testSubjects.click('searchResponseWarningsViewDetails'); + await testSubjects.click('viewDetailsContextMenu'); + await testSubjects.click('inspectorRequestToggleClusterDetailsftr-remote'); + const txt = await testSubjects.getVisibleText('inspectorRequestClustersDetails'); + expect(txt).to.be( + 'Request timed out before completion. Results may be incomplete or empty.' + ); + + // Ensure documents are still returned for the successful shards + await retry.try(async function tryingForTime() { + const hitCount = await PageObjects.discover.getHitCount(); + expect(hitCount).to.be('14,004'); + }); + }); + }); + }); +} diff --git a/test/functional/apps/discover/ccs_compatibility/index.ts b/test/functional/apps/discover/ccs_compatibility/index.ts index 4f932c3993831..b4a4932f7317c 100644 --- a/test/functional/apps/discover/ccs_compatibility/index.ts +++ b/test/functional/apps/discover/ccs_compatibility/index.ts @@ -10,6 +10,8 @@ import { FtrProviderContext } from '../ftr_provider_context'; export default function ({ getService, loadTestFile }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const browser = getService('browser'); + const config = getService('config'); + const isCcsTest = config.get('esTestCluster.ccs'); describe('discover/ccs_compatible', function () { before(async function () { @@ -23,5 +25,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./_data_view_editor')); loadTestFile(require.resolve('./_saved_queries')); loadTestFile(require.resolve('./_search_errors')); + if (isCcsTest) loadTestFile(require.resolve('./_timeout_results')); }); } diff --git a/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/async_search.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/async_search.ts index 465681a1a210f..eabb15dd1cd4c 100644 --- a/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/async_search.ts +++ b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/async_search.ts @@ -58,7 +58,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.common.navigateToApp('dashboard'); await PageObjects.dashboard.loadSavedDashboard('Delayed 15s'); await PageObjects.header.waitUntilLoadingHasFinished(); - await testSubjects.existOrFail('embeddableError'); await testSubjects.existOrFail('searchTimeoutError'); }); @@ -66,9 +65,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.common.navigateToApp('dashboard'); await PageObjects.dashboard.loadSavedDashboard('Multiple delayed'); await PageObjects.header.waitUntilLoadingHasFinished(); - await testSubjects.existOrFail('embeddableError'); - // there should be two failed panels - expect((await testSubjects.findAll('embeddableError')).length).to.be(2); + // but only single error toast because searches are grouped expect((await testSubjects.findAll('searchTimeoutError')).length).to.be(1); From 298802a313dbf92351493e0df8370aca89246028 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Mon, 22 Apr 2024 19:42:13 -0500 Subject: [PATCH 044/183] [Security solution] LangChain ESQL tool fix, renaming, and LangSmith tracing fix (#181088) --- .../chat_openai.ts} | 21 +++++++++++--- .../impl/language_models/constants.ts | 21 ++++++++++++++ .../{llm => language_models}/helpers.test.ts | 0 .../impl/{llm => language_models}/helpers.ts | 0 .../impl/{llm => language_models}/index.ts | 4 +-- .../llm.test.ts} | 2 +- .../llm.ts} | 8 ++---- .../impl/{llm => language_models}/types.ts | 0 .../execute_custom_llm_chain/index.test.ts | 9 ++++-- .../execute_custom_llm_chain/index.ts | 11 +++++++- .../executors/openai_functions_executor.ts | 2 +- .../server/routes/evaluate/post_evaluate.ts | 2 +- .../server/routes/insights/alerts/helpers.ts | 2 +- .../insights/alerts/post_alerts_insights.ts | 2 +- .../plugins/elastic_assistant/server/types.ts | 5 +++- .../server/utils/get_chat_params.test.ts | 7 +++-- .../server/utils/get_chat_params.ts | 5 +++- .../esql_language_knowledge_base_tool.ts | 28 +++++++++++++------ .../server/connector_types/bedrock/bedrock.ts | 1 - 19 files changed, 96 insertions(+), 34 deletions(-) rename x-pack/packages/kbn-elastic-assistant-common/impl/{llm/openai.ts => language_models/chat_openai.ts} (88%) create mode 100644 x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts rename x-pack/packages/kbn-elastic-assistant-common/impl/{llm => language_models}/helpers.test.ts (100%) rename x-pack/packages/kbn-elastic-assistant-common/impl/{llm => language_models}/helpers.ts (100%) rename x-pack/packages/kbn-elastic-assistant-common/impl/{llm => language_models}/index.ts (69%) rename x-pack/packages/kbn-elastic-assistant-common/impl/{llm/actions_client_llm.test.ts => language_models/llm.test.ts} (98%) rename x-pack/packages/kbn-elastic-assistant-common/impl/{llm/actions_client_llm.ts => language_models/llm.ts} (92%) rename x-pack/packages/kbn-elastic-assistant-common/impl/{llm => language_models}/types.ts (100%) diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/openai.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/chat_openai.ts similarity index 88% rename from x-pack/packages/kbn-elastic-assistant-common/impl/llm/openai.ts rename to x-pack/packages/kbn-elastic-assistant-common/impl/language_models/chat_openai.ts index 0e81cd1af155e..fb00873a0b0bb 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/openai.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/chat_openai.ts @@ -18,6 +18,7 @@ import { ChatCompletionCreateParamsStreaming, ChatCompletionCreateParamsNonStreaming, } from 'openai/resources/chat/completions'; +import { DEFAULT_OPEN_AI_MODEL } from './constants'; import { InvokeAIActionParamsSchema } from './types'; const LLM_TYPE = 'ActionsClientChatOpenAI'; @@ -32,6 +33,7 @@ interface ActionsClientChatOpenAIParams { traceId?: string; maxRetries?: number; model?: string; + temperature?: number; signal?: AbortSignal; } @@ -53,6 +55,7 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { azureOpenAIApiKey = ''; openAIApiKey = ''; model?: string; + #temperature?: number; // Kibana variables #actions: ActionsPluginStart; @@ -72,10 +75,13 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { maxRetries, model, signal, + temperature, }: ActionsClientChatOpenAIParams) { super({ maxRetries, streaming: true, + // matters only for the LangSmith logs (Metadata > Invocation Params), which are misleading if this is not set + modelName: model ?? DEFAULT_OPEN_AI_MODEL, // these have to be initialized, but are not actually used since we override the openai client with the actions client azureOpenAIApiKey: 'nothing', azureOpenAIApiDeploymentName: 'nothing', @@ -94,6 +100,11 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { this.streaming = true; this.#signal = signal; this.model = model; + // to be passed to the actions client + this.#temperature = temperature; + // matters only for LangSmith logs (Metadata > Invocation Params) + // the connector can be passed an undefined temperature through #temperature + this.temperature = temperature ?? this.temperature; } getActionResultData(): string { @@ -172,13 +183,15 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { // langchain expects stream to be of type AsyncIterator subAction: 'invokeAsyncIterator', subActionParams: { + temperature: this.#temperature, + // possible client model override + // security sends this from connectors, it is only missing from preconfigured connectors + // this should be undefined otherwise so the connector handles the model (stack_connector has access to preconfigured connector model values) + model: this.model, + // ensure we take the messages from the completion request, not the client request n: completionRequest.n, stop: completionRequest.stop, - temperature: completionRequest.temperature, functions: completionRequest.functions, - // possible client model override - model: this.model ?? completionRequest.model, - // ensure we take the messages from the completion request, not the client request messages: completionRequest.messages.map((message) => ({ role: message.role, content: message.content ?? '', diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts new file mode 100644 index 0000000000000..11e8369b01dcf --- /dev/null +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts @@ -0,0 +1,21 @@ +/* + * 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 const getDefaultArguments = (llmType?: string, temperature?: number, stop?: string[]) => + llmType === 'bedrock' + ? { + temperature: temperature ?? DEFAULT_BEDROCK_TEMPERATURE, + stopSequences: stop ?? DEFAULT_BEDROCK_STOP_SEQUENCES, + } + : { n: 1, stop: stop ?? null, temperature: temperature ?? DEFAULT_OPEN_AI_TEMPERATURE }; + +export const DEFAULT_OPEN_AI_TEMPERATURE = 0.2; +// this is a fallback for logging, connector will default to the connector model +// x-pack/plugins/stack_connectors/common/openai/constants.ts +export const DEFAULT_OPEN_AI_MODEL = 'gpt-4'; +const DEFAULT_BEDROCK_TEMPERATURE = 0; +const DEFAULT_BEDROCK_STOP_SEQUENCES = ['\n\nHuman:', '\nObservation:']; diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/helpers.test.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/helpers.test.ts similarity index 100% rename from x-pack/packages/kbn-elastic-assistant-common/impl/llm/helpers.test.ts rename to x-pack/packages/kbn-elastic-assistant-common/impl/language_models/helpers.test.ts diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/helpers.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/helpers.ts similarity index 100% rename from x-pack/packages/kbn-elastic-assistant-common/impl/llm/helpers.ts rename to x-pack/packages/kbn-elastic-assistant-common/impl/language_models/helpers.ts diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/index.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/index.ts similarity index 69% rename from x-pack/packages/kbn-elastic-assistant-common/impl/llm/index.ts rename to x-pack/packages/kbn-elastic-assistant-common/impl/language_models/index.ts index 07015185eb5bb..791ba33b18a18 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/index.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/index.ts @@ -5,5 +5,5 @@ * 2.0. */ -export { ActionsClientChatOpenAI } from './openai'; -export { ActionsClientLlm } from './actions_client_llm'; +export { ActionsClientChatOpenAI } from './chat_openai'; +export { ActionsClientLlm } from './llm'; diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/actions_client_llm.test.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.test.ts similarity index 98% rename from x-pack/packages/kbn-elastic-assistant-common/impl/llm/actions_client_llm.test.ts rename to x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.test.ts index 9a0b98c02586e..7ef6d4a15db28 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/actions_client_llm.test.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.test.ts @@ -9,7 +9,7 @@ import { KibanaRequest } from '@kbn/core/server'; import type { PluginStartContract as ActionsPluginStart } from '@kbn/actions-plugin/server'; import { loggerMock } from '@kbn/logging-mocks'; -import { ActionsClientLlm } from './actions_client_llm'; +import { ActionsClientLlm } from './llm'; import { mockActionResponse } from '../mock/mock_action_response'; const connectorId = 'mock-connector-id'; diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/actions_client_llm.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.ts similarity index 92% rename from x-pack/packages/kbn-elastic-assistant-common/impl/llm/actions_client_llm.ts rename to x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.ts index 8df4c60817c6c..b67c617b84b14 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/actions_client_llm.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.ts @@ -10,15 +10,13 @@ import { KibanaRequest, Logger } from '@kbn/core/server'; import { LLM } from '@langchain/core/language_models/llms'; import { get } from 'lodash/fp'; import { v4 as uuidv4 } from 'uuid'; +import { getDefaultArguments } from './constants'; import { getMessageContentAndRole } from './helpers'; import { TraceOptions } from './types'; const LLM_TYPE = 'ActionsClientLlm'; -const DEFAULT_OPEN_AI_TEMPERATURE = 0.2; -const DEFAULT_TEMPERATURE = 0; - interface ActionsClientLlmParams { actions: ActionsPluginStart; connectorId: string; @@ -98,9 +96,7 @@ export class ActionsClientLlm extends LLM { subActionParams: { model: this.model, messages: [assistantMessage], // the assistant message - ...(this.llmType === 'openai' - ? { n: 1, stop: null, temperature: this.temperature ?? DEFAULT_OPEN_AI_TEMPERATURE } - : { temperature: this.temperature ?? DEFAULT_TEMPERATURE, stopSequences: [] }), + ...getDefaultArguments(this.llmType, this.temperature), }, }, }; diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/llm/types.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/types.ts similarity index 100% rename from x-pack/packages/kbn-elastic-assistant-common/impl/llm/types.ts rename to x-pack/packages/kbn-elastic-assistant-common/impl/language_models/types.ts diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.test.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.test.ts index eebadb6488a19..103c0932f86c3 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.test.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.test.ts @@ -17,9 +17,12 @@ import { langChainMessages } from '../../../__mocks__/lang_chain_messages'; import { ESQL_RESOURCE } from '../../../routes/knowledge_base/constants'; import { callAgentExecutor } from '.'; import { PassThrough, Stream } from 'stream'; -import { ActionsClientChatOpenAI, ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { + ActionsClientChatOpenAI, + ActionsClientLlm, +} from '@kbn/elastic-assistant-common/impl/language_models'; -jest.mock('@kbn/elastic-assistant-common/impl/llm', () => ({ +jest.mock('@kbn/elastic-assistant-common/impl/language_models', () => ({ ActionsClientChatOpenAI: jest.fn(), ActionsClientLlm: jest.fn(), })); @@ -141,6 +144,7 @@ describe('callAgentExecutor', () => { maxRetries: 0, request: mockRequest, streaming: false, + temperature: 0.2, llmType: 'openai', }); }); @@ -179,6 +183,7 @@ describe('callAgentExecutor', () => { maxRetries: 0, request: mockRequest, streaming: true, + temperature: 0.2, llmType: 'openai', }); }); diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts index e1ad0c241a15b..e6863fa5550fe 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/execute_custom_llm_chain/index.ts @@ -12,7 +12,11 @@ import { ToolInterface } from '@langchain/core/tools'; import { streamFactory } from '@kbn/ml-response-stream/server'; import { transformError } from '@kbn/securitysolution-es-utils'; import { RetrievalQAChain } from 'langchain/chains'; -import { ActionsClientChatOpenAI, ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { + ActionsClientChatOpenAI, + ActionsClientLlm, +} from '@kbn/elastic-assistant-common/impl/language_models'; +import { getDefaultArguments } from '@kbn/elastic-assistant-common/impl/language_models/constants'; import { ElasticsearchStore } from '../elasticsearch_store/elasticsearch_store'; import { KNOWLEDGE_BASE_INDEX_PATTERN } from '../../../routes/knowledge_base/constants'; import { AgentExecutor } from '../executors/types'; @@ -59,7 +63,12 @@ export const callAgentExecutor: AgentExecutor = async ({ request, llmType, logger, + // possible client model override, + // let this be undefined otherwise so the connector handles the model model: request.body.model, + // ensure this is defined because we default to it in the language_models + // This is where the LangSmith logs (Metadata > Invocation Params) are set + temperature: getDefaultArguments(llmType).temperature, signal: abortSignal, streaming: isStream, // prevents the agent from retrying on failure diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/openai_functions_executor.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/openai_functions_executor.ts index 989e2935c82ef..2b3d07708e2e1 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/openai_functions_executor.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/openai_functions_executor.ts @@ -10,7 +10,7 @@ import { RetrievalQAChain } from 'langchain/chains'; import { BufferMemory, ChatMessageHistory } from 'langchain/memory'; import { ChainTool } from 'langchain/tools/chain'; -import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/language_models'; import { ElasticsearchStore } from '../elasticsearch_store/elasticsearch_store'; import { KNOWLEDGE_BASE_INDEX_PATTERN } from '../../../routes/knowledge_base/constants'; import { AgentExecutor } from './types'; diff --git a/x-pack/plugins/elastic_assistant/server/routes/evaluate/post_evaluate.ts b/x-pack/plugins/elastic_assistant/server/routes/evaluate/post_evaluate.ts index 6b3cc92da1936..cde838afa8c28 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/evaluate/post_evaluate.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/evaluate/post_evaluate.ts @@ -17,7 +17,7 @@ import { PostEvaluateResponse, ExecuteConnectorRequestBody, } from '@kbn/elastic-assistant-common'; -import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/language_models'; import { buildRouteValidationWithZod } from '@kbn/elastic-assistant-common/impl/schemas/common'; import { ESQL_RESOURCE } from '../knowledge_base/constants'; import { buildResponse } from '../../lib/build_response'; diff --git a/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/helpers.ts b/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/helpers.ts index 85b22e4c428fe..97167ea76bd4a 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/helpers.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/helpers.ts @@ -12,7 +12,7 @@ import { ExecuteConnectorRequestBody, Replacements, } from '@kbn/elastic-assistant-common'; -import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/language_models'; import { AnonymizationFieldResponse } from '@kbn/elastic-assistant-common/impl/schemas/anonymization_fields/bulk_crud_anonymization_fields_route.gen'; import { v4 as uuidv4 } from 'uuid'; diff --git a/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/post_alerts_insights.ts b/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/post_alerts_insights.ts index e58e4cd0f8e20..248e366646a8e 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/post_alerts_insights.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/insights/alerts/post_alerts_insights.ts @@ -6,7 +6,7 @@ */ import { buildRouteValidationWithZod } from '@kbn/elastic-assistant-common/impl/schemas/common'; -import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/language_models'; import { type IKibanaResponse, IRouter, Logger } from '@kbn/core/server'; import { AlertsInsightsPostRequestBody, diff --git a/x-pack/plugins/elastic_assistant/server/types.ts b/x-pack/plugins/elastic_assistant/server/types.ts index 7f3ef14fba08b..9fe2be7ae1fc6 100755 --- a/x-pack/plugins/elastic_assistant/server/types.ts +++ b/x-pack/plugins/elastic_assistant/server/types.ts @@ -34,7 +34,10 @@ import { } from '@kbn/elastic-assistant-common'; import { AnonymizationFieldResponse } from '@kbn/elastic-assistant-common/impl/schemas/anonymization_fields/bulk_crud_anonymization_fields_route.gen'; import { LicensingApiRequestHandlerContext } from '@kbn/licensing-plugin/server'; -import { ActionsClientChatOpenAI, ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { + ActionsClientChatOpenAI, + ActionsClientLlm, +} from '@kbn/elastic-assistant-common/impl/language_models'; import { AIAssistantConversationsDataClient } from './ai_assistant_data_clients/conversations'; import type { GetRegisteredFeatures, GetRegisteredTools } from './services/app_context'; diff --git a/x-pack/plugins/search_playground/server/utils/get_chat_params.test.ts b/x-pack/plugins/search_playground/server/utils/get_chat_params.test.ts index 579f4c9454b18..cb409461d0a48 100644 --- a/x-pack/plugins/search_playground/server/utils/get_chat_params.test.ts +++ b/x-pack/plugins/search_playground/server/utils/get_chat_params.test.ts @@ -6,7 +6,10 @@ */ import { getChatParams } from './get_chat_params'; -import { ActionsClientChatOpenAI, ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { + ActionsClientChatOpenAI, + ActionsClientLlm, +} from '@kbn/elastic-assistant-common/impl/language_models'; import { OPENAI_CONNECTOR_ID, BEDROCK_CONNECTOR_ID, @@ -15,7 +18,7 @@ import { Prompt } from '../../common/prompt'; import { KibanaRequest, Logger } from '@kbn/core/server'; import { PluginStartContract as ActionsPluginStartContract } from '@kbn/actions-plugin/server'; -jest.mock('@kbn/elastic-assistant-common/impl/llm', () => ({ +jest.mock('@kbn/elastic-assistant-common/impl/language_models', () => ({ ActionsClientChatOpenAI: jest.fn(), ActionsClientLlm: jest.fn(), })); diff --git a/x-pack/plugins/search_playground/server/utils/get_chat_params.ts b/x-pack/plugins/search_playground/server/utils/get_chat_params.ts index 56a379eaf1777..324870430b819 100644 --- a/x-pack/plugins/search_playground/server/utils/get_chat_params.ts +++ b/x-pack/plugins/search_playground/server/utils/get_chat_params.ts @@ -6,7 +6,10 @@ */ import { OPENAI_CONNECTOR_ID } from '@kbn/stack-connectors-plugin/common/openai/constants'; -import { ActionsClientChatOpenAI, ActionsClientLlm } from '@kbn/elastic-assistant-common/impl/llm'; +import { + ActionsClientChatOpenAI, + ActionsClientLlm, +} from '@kbn/elastic-assistant-common/impl/language_models'; import { v4 as uuidv4 } from 'uuid'; import { BEDROCK_CONNECTOR_ID } from '@kbn/stack-connectors-plugin/common/bedrock/constants'; import { PluginStartContract as ActionsPluginStartContract } from '@kbn/actions-plugin/server'; diff --git a/x-pack/plugins/security_solution/server/assistant/tools/esql_language_knowledge_base/esql_language_knowledge_base_tool.ts b/x-pack/plugins/security_solution/server/assistant/tools/esql_language_knowledge_base/esql_language_knowledge_base_tool.ts index 5decc3ab0fc4b..567182d042339 100644 --- a/x-pack/plugins/security_solution/server/assistant/tools/esql_language_knowledge_base/esql_language_knowledge_base_tool.ts +++ b/x-pack/plugins/security_solution/server/assistant/tools/esql_language_knowledge_base/esql_language_knowledge_base_tool.ts @@ -5,17 +5,20 @@ * 2.0. */ -import { ChainTool } from 'langchain/tools/chain'; +import { DynamicTool } from '@langchain/core/tools'; import type { AssistantTool, AssistantToolParams } from '@kbn/elastic-assistant-plugin/server'; import { APP_UI_ID } from '../../../../common'; export type EsqlKnowledgeBaseToolParams = AssistantToolParams; -export const ESQL_KNOWLEDGE_BASE_TOOL: AssistantTool = { +const toolDetails = { + description: + 'Call this for knowledge on how to build an ESQL query, or answer questions about the ES|QL query language. Input must always be the query on a single line, with no other text. Only output valid ES|QL queries as described above. Do not add any additional text to describe your output.', id: 'esql-knowledge-base-tool', name: 'ESQLKnowledgeBaseTool', - description: - 'Call this for knowledge on how to build an ESQL query, or answer questions about the ES|QL query language.', +}; +export const ESQL_KNOWLEDGE_BASE_TOOL: AssistantTool = { + ...toolDetails, sourceRegister: APP_UI_ID, isSupported: (params: AssistantToolParams): params is EsqlKnowledgeBaseToolParams => { const { chain, isEnabledKnowledgeBase, modelExists } = params; @@ -27,11 +30,18 @@ export const ESQL_KNOWLEDGE_BASE_TOOL: AssistantTool = { const { chain } = params as EsqlKnowledgeBaseToolParams; if (chain == null) return null; - return new ChainTool({ - name: 'ESQLKnowledgeBaseTool', - description: - 'Call this for knowledge on how to build an ESQL query, or answer questions about the ES|QL query language.', - chain, + return new DynamicTool({ + name: toolDetails.name, + description: toolDetails.description, + func: async (input, _, cbManager) => { + const result = await chain.invoke( + { + query: input, + }, + cbManager + ); + return result.text; + }, tags: ['esql', 'query-generation', 'knowledge-base'], }); }, diff --git a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts index bca91289d7daa..c652d5fd55f53 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts @@ -328,7 +328,6 @@ const formatBedrockBody = ({ /** * Ensures that the messages are in the correct format for the Bedrock API - * Bedrock only accepts assistant and user roles. * If 2 user or 2 assistant messages are sent in a row, Bedrock throws an error * We combine the messages into a single message to avoid this error * @param messages From 5c39f1b55219876ef50af3b9969238bd90971ad2 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Mon, 22 Apr 2024 21:00:27 -0500 Subject: [PATCH 045/183] [GenAI Connectors] Add optional timeout parameter to GenAI connectors (#181207) --- .../impl/language_models/chat_openai.ts | 9 +- .../impl/language_models/constants.ts | 1 + .../impl/language_models/llm.ts | 8 +- .../impl/language_models/types.ts | 1 + .../connector_types.test.ts.snap | 52 +++++++++ .../common/bedrock/constants.ts | 1 + .../stack_connectors/common/bedrock/schema.ts | 2 + .../common/openai/constants.ts | 2 + .../stack_connectors/common/openai/schema.ts | 3 + .../connector_types/bedrock/bedrock.test.ts | 26 +++-- .../server/connector_types/bedrock/bedrock.ts | 15 ++- .../connector_types/openai/openai.test.ts | 104 ++++++++++++------ .../server/connector_types/openai/openai.ts | 23 ++-- 13 files changed, 190 insertions(+), 57 deletions(-) diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/chat_openai.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/chat_openai.ts index fb00873a0b0bb..b334ae3a0928a 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/chat_openai.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/chat_openai.ts @@ -18,7 +18,7 @@ import { ChatCompletionCreateParamsStreaming, ChatCompletionCreateParamsNonStreaming, } from 'openai/resources/chat/completions'; -import { DEFAULT_OPEN_AI_MODEL } from './constants'; +import { DEFAULT_OPEN_AI_MODEL, DEFAULT_TIMEOUT } from './constants'; import { InvokeAIActionParamsSchema } from './types'; const LLM_TYPE = 'ActionsClientChatOpenAI'; @@ -35,6 +35,7 @@ interface ActionsClientChatOpenAIParams { model?: string; temperature?: number; signal?: AbortSignal; + timeout?: number; } /** @@ -65,6 +66,8 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { #actionResultData: string; #traceId: string; #signal?: AbortSignal; + #timeout?: number; + constructor({ actions, connectorId, @@ -76,6 +79,7 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { model, signal, temperature, + timeout, }: ActionsClientChatOpenAIParams) { super({ maxRetries, @@ -96,6 +100,7 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { this.llmType = llmType ?? LLM_TYPE; this.#logger = logger; this.#request = request; + this.#timeout = timeout; this.#actionResultData = ''; this.streaming = true; this.#signal = signal; @@ -201,6 +206,8 @@ export class ActionsClientChatOpenAI extends ChatOpenAI { ...('tool_call_id' in message ? { tool_call_id: message?.tool_call_id } : {}), })), signal: this.#signal, + // This timeout is large because LangChain prompts can be complicated and take a long time + timeout: this.#timeout ?? DEFAULT_TIMEOUT, }, }, signal: this.#signal, diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts index 11e8369b01dcf..d4d38d172f975 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/constants.ts @@ -19,3 +19,4 @@ export const DEFAULT_OPEN_AI_TEMPERATURE = 0.2; export const DEFAULT_OPEN_AI_MODEL = 'gpt-4'; const DEFAULT_BEDROCK_TEMPERATURE = 0; const DEFAULT_BEDROCK_STOP_SEQUENCES = ['\n\nHuman:', '\nObservation:']; +export const DEFAULT_TIMEOUT = 180000; diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.ts index b67c617b84b14..9708a8d3a5d7f 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/llm.ts @@ -10,7 +10,7 @@ import { KibanaRequest, Logger } from '@kbn/core/server'; import { LLM } from '@langchain/core/language_models/llms'; import { get } from 'lodash/fp'; import { v4 as uuidv4 } from 'uuid'; -import { getDefaultArguments } from './constants'; +import { DEFAULT_TIMEOUT, getDefaultArguments } from './constants'; import { getMessageContentAndRole } from './helpers'; import { TraceOptions } from './types'; @@ -25,6 +25,7 @@ interface ActionsClientLlmParams { request: KibanaRequest; model?: string; temperature?: number; + timeout?: number; traceId?: string; traceOptions?: TraceOptions; } @@ -35,6 +36,7 @@ export class ActionsClientLlm extends LLM { #logger: Logger; #request: KibanaRequest; #traceId: string; + #timeout?: number; // Local `llmType` as it can change and needs to be accessed by abstract `_llmType()` method // Not using getter as `this._llmType()` is called in the constructor via `super({})` @@ -52,6 +54,7 @@ export class ActionsClientLlm extends LLM { model, request, temperature, + timeout, traceOptions, }: ActionsClientLlmParams) { super({ @@ -64,6 +67,7 @@ export class ActionsClientLlm extends LLM { this.llmType = llmType ?? LLM_TYPE; this.#logger = logger; this.#request = request; + this.#timeout = timeout; this.model = model; this.temperature = temperature; } @@ -97,6 +101,8 @@ export class ActionsClientLlm extends LLM { model: this.model, messages: [assistantMessage], // the assistant message ...getDefaultArguments(this.llmType, this.temperature), + // This timeout is large because LangChain prompts can be complicated and take a long time + timeout: this.#timeout ?? DEFAULT_TIMEOUT, }, }, }; diff --git a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/types.ts b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/types.ts index 5fd08e6ee4e2d..e4d582f02495d 100644 --- a/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/types.ts +++ b/x-pack/packages/kbn-elastic-assistant-common/impl/language_models/types.ts @@ -38,6 +38,7 @@ export interface InvokeAIActionParamsSchema { temperature?: ChatCompletionCreateParamsNonStreaming['temperature']; functions?: ChatCompletionCreateParamsNonStreaming['functions']; signal?: AbortSignal; + timeout?: number; } export interface TraceOptions { diff --git a/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap b/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap index 77ee286e4b70f..ffe337fdcde4d 100644 --- a/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap +++ b/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap @@ -58,6 +58,19 @@ Object { ], "type": "any", }, + "timeout": Object { + "flags": Object { + "default": [Function], + "error": [Function], + "presence": "optional", + }, + "metas": Array [ + Object { + "x-oas-optional": true, + }, + ], + "type": "number", + }, }, "preferences": Object { "stripUnknown": Object { @@ -160,6 +173,19 @@ Object { ], "type": "any", }, + "timeout": Object { + "flags": Object { + "default": [Function], + "error": [Function], + "presence": "optional", + }, + "metas": Array [ + Object { + "x-oas-optional": true, + }, + ], + "type": "number", + }, }, "preferences": Object { "stripUnknown": Object { @@ -331,6 +357,19 @@ Object { ], "type": "number", }, + "timeout": Object { + "flags": Object { + "default": [Function], + "error": [Function], + "presence": "optional", + }, + "metas": Array [ + Object { + "x-oas-optional": true, + }, + ], + "type": "number", + }, }, "preferences": Object { "stripUnknown": Object { @@ -502,6 +541,19 @@ Object { ], "type": "number", }, + "timeout": Object { + "flags": Object { + "default": [Function], + "error": [Function], + "presence": "optional", + }, + "metas": Array [ + Object { + "x-oas-optional": true, + }, + ], + "type": "number", + }, }, "preferences": Object { "stripUnknown": Object { diff --git a/x-pack/plugins/stack_connectors/common/bedrock/constants.ts b/x-pack/plugins/stack_connectors/common/bedrock/constants.ts index f17e4f8005c68..053ca82e0e274 100644 --- a/x-pack/plugins/stack_connectors/common/bedrock/constants.ts +++ b/x-pack/plugins/stack_connectors/common/bedrock/constants.ts @@ -22,6 +22,7 @@ export enum SUB_ACTION { TEST = 'test', } +export const DEFAULT_TIMEOUT_MS = 120000; export const DEFAULT_TOKEN_LIMIT = 8191; export const DEFAULT_BEDROCK_MODEL = 'anthropic.claude-3-sonnet-20240229-v1:0'; diff --git a/x-pack/plugins/stack_connectors/common/bedrock/schema.ts b/x-pack/plugins/stack_connectors/common/bedrock/schema.ts index fced4b4d9c818..2fade1be5fc40 100644 --- a/x-pack/plugins/stack_connectors/common/bedrock/schema.ts +++ b/x-pack/plugins/stack_connectors/common/bedrock/schema.ts @@ -24,6 +24,7 @@ export const RunActionParamsSchema = schema.object({ model: schema.maybe(schema.string()), // abort signal from client signal: schema.maybe(schema.any()), + timeout: schema.maybe(schema.number()), }); export const InvokeAIActionParamsSchema = schema.object({ @@ -39,6 +40,7 @@ export const InvokeAIActionParamsSchema = schema.object({ system: schema.maybe(schema.string()), // abort signal from client signal: schema.maybe(schema.any()), + timeout: schema.maybe(schema.number()), }); export const InvokeAIActionResponseSchema = schema.object({ diff --git a/x-pack/plugins/stack_connectors/common/openai/constants.ts b/x-pack/plugins/stack_connectors/common/openai/constants.ts index 09f791796d234..8614d5ce43780 100644 --- a/x-pack/plugins/stack_connectors/common/openai/constants.ts +++ b/x-pack/plugins/stack_connectors/common/openai/constants.ts @@ -29,6 +29,8 @@ export enum OpenAiProviderType { AzureAi = 'Azure OpenAI', } +export const DEFAULT_TIMEOUT_MS = 120000; + export const DEFAULT_OPENAI_MODEL = 'gpt-4'; export const OPENAI_CHAT_URL = 'https://api.openai.com/v1/chat/completions' as const; diff --git a/x-pack/plugins/stack_connectors/common/openai/schema.ts b/x-pack/plugins/stack_connectors/common/openai/schema.ts index 4608eade318eb..a9e5b0e722dbd 100644 --- a/x-pack/plugins/stack_connectors/common/openai/schema.ts +++ b/x-pack/plugins/stack_connectors/common/openai/schema.ts @@ -30,6 +30,7 @@ export const RunActionParamsSchema = schema.object({ body: schema.string(), // abort signal from client signal: schema.maybe(schema.any()), + timeout: schema.maybe(schema.number()), }); const AIMessage = schema.object({ @@ -98,6 +99,7 @@ export const InvokeAIActionParamsSchema = schema.object({ temperature: schema.maybe(schema.number()), // abort signal from client signal: schema.maybe(schema.any()), + timeout: schema.maybe(schema.number()), }); export const InvokeAIActionResponseSchema = schema.object({ @@ -118,6 +120,7 @@ export const StreamActionParamsSchema = schema.object({ stream: schema.boolean({ defaultValue: false }), // abort signal from client signal: schema.maybe(schema.any()), + timeout: schema.maybe(schema.number()), }); export const StreamingResponseSchema = schema.any(); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts index 49291bd789bc0..24564488ddf57 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts @@ -20,6 +20,7 @@ import { DEFAULT_BEDROCK_MODEL, DEFAULT_BEDROCK_URL, DEFAULT_TOKEN_LIMIT, + DEFAULT_TIMEOUT_MS, } from '../../../common/bedrock/constants'; import { DEFAULT_BODY } from '../../../public/connector_types/bedrock/constants'; import { initDashboard } from '../lib/gen_ai/create_gen_ai_dashboard'; @@ -104,7 +105,7 @@ describe('BedrockConnector', () => { expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ signed: true, - timeout: 120000, + timeout: DEFAULT_TIMEOUT_MS, url: `${DEFAULT_BEDROCK_URL}/model/${DEFAULT_BEDROCK_MODEL}/invoke`, method: 'post', responseSchema: RunApiLatestResponseSchema, @@ -131,7 +132,7 @@ describe('BedrockConnector', () => { expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ signed: true, - timeout: 120000, + timeout: DEFAULT_TIMEOUT_MS, url: `${DEFAULT_BEDROCK_URL}/model/${DEFAULT_BEDROCK_MODEL}/invoke`, method: 'post', responseSchema: RunActionResponseSchema, @@ -200,9 +201,10 @@ describe('BedrockConnector', () => { }); }); - it('signal is properly passed to streamApi', async () => { + it('signal and timeout is properly passed to streamApi', async () => { const signal = jest.fn(); - await connector.invokeStream({ ...aiAssistantBody, signal }); + const timeout = 180000; + await connector.invokeStream({ ...aiAssistantBody, timeout, signal }); expect(mockRequest).toHaveBeenCalledWith({ signed: true, @@ -211,6 +213,7 @@ describe('BedrockConnector', () => { responseSchema: StreamingResponseSchema, responseType: 'stream', data: JSON.stringify({ ...JSON.parse(DEFAULT_BODY), temperature: 0 }), + timeout, signal, }); }); @@ -377,7 +380,7 @@ describe('BedrockConnector', () => { expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ signed: true, - timeout: 120000, + timeout: DEFAULT_TIMEOUT_MS, url: `${DEFAULT_BEDROCK_URL}/model/${DEFAULT_BEDROCK_MODEL}/invoke`, method: 'post', responseSchema: RunApiLatestResponseSchema, @@ -415,7 +418,7 @@ describe('BedrockConnector', () => { expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ signed: true, - timeout: 120000, + timeout: DEFAULT_TIMEOUT_MS, url: `${DEFAULT_BEDROCK_URL}/model/${DEFAULT_BEDROCK_MODEL}/invoke`, method: 'post', responseSchema: RunApiLatestResponseSchema, @@ -455,7 +458,7 @@ describe('BedrockConnector', () => { expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ signed: true, - timeout: 120000, + timeout: DEFAULT_TIMEOUT_MS, url: `${DEFAULT_BEDROCK_URL}/model/${DEFAULT_BEDROCK_MODEL}/invoke`, method: 'post', responseSchema: RunApiLatestResponseSchema, @@ -499,7 +502,7 @@ describe('BedrockConnector', () => { expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ signed: true, - timeout: 120000, + timeout: DEFAULT_TIMEOUT_MS, url: `${DEFAULT_BEDROCK_URL}/model/${DEFAULT_BEDROCK_MODEL}/invoke`, method: 'post', responseSchema: RunApiLatestResponseSchema, @@ -517,13 +520,13 @@ describe('BedrockConnector', () => { }); expect(response.message).toEqual(mockResponseString); }); - it('signal is properly passed to runApi', async () => { + it('signal and timeout is properly passed to runApi', async () => { const signal = jest.fn(); - await connector.invokeAI({ ...aiAssistantBody, signal }); + const timeout = 180000; + await connector.invokeAI({ ...aiAssistantBody, timeout, signal }); expect(mockRequest).toHaveBeenCalledWith({ signed: true, - timeout: 120000, url: `${DEFAULT_BEDROCK_URL}/model/${DEFAULT_BEDROCK_MODEL}/invoke`, method: 'post', responseSchema: RunApiLatestResponseSchema, @@ -533,6 +536,7 @@ describe('BedrockConnector', () => { max_tokens: DEFAULT_TOKEN_LIMIT, temperature: 0, }), + timeout, signal, }); }); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts index c652d5fd55f53..1a4b6aad6653e 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts @@ -28,7 +28,11 @@ import { InvokeAIActionResponse, RunApiLatestResponse, } from '../../../common/bedrock/types'; -import { SUB_ACTION, DEFAULT_TOKEN_LIMIT } from '../../../common/bedrock/constants'; +import { + SUB_ACTION, + DEFAULT_TOKEN_LIMIT, + DEFAULT_TIMEOUT_MS, +} from '../../../common/bedrock/constants'; import { DashboardActionParams, DashboardActionResponse, @@ -207,6 +211,7 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B body, model: reqModel, signal, + timeout, }: RunActionParams): Promise { // set model on per request basis const currentModel = reqModel ?? this.model; @@ -219,7 +224,7 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B data: body, signal, // give up to 2 minutes for response - timeout: 120000, + timeout: timeout ?? DEFAULT_TIMEOUT_MS, }; // possible api received deprecated arguments, which will still work with the deprecated Claude 2 models if (usesDeprecatedArguments(body)) { @@ -240,6 +245,7 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B body, model: reqModel, signal, + timeout, }: RunActionParams): Promise { // set model on per request basis const path = `/model/${reqModel ?? this.model}/invoke-with-response-stream`; @@ -253,6 +259,7 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B data: body, responseType: 'stream', signal, + timeout, }); return response.data.pipe(new PassThrough()); @@ -273,11 +280,13 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B system, temperature, signal, + timeout, }: InvokeAIActionParams): Promise { const res = (await this.streamApi({ body: JSON.stringify(formatBedrockBody({ messages, stopSequences, system, temperature })), model, signal, + timeout, })) as unknown as IncomingMessage; return res; } @@ -297,11 +306,13 @@ The Kibana Connector in use may need to be reconfigured with an updated Amazon B system, temperature, signal, + timeout, }: InvokeAIActionParams): Promise { const res = await this.runApi({ body: JSON.stringify(formatBedrockBody({ messages, stopSequences, system, temperature })), model, signal, + timeout, }); return { message: res.completion.trim() }; } diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts index fdd0cba601b64..6f0974fe1796d 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts @@ -10,6 +10,7 @@ import { OpenAIConnector } from './openai'; import { actionsConfigMock } from '@kbn/actions-plugin/server/actions_config.mock'; import { DEFAULT_OPENAI_MODEL, + DEFAULT_TIMEOUT_MS, OPENAI_CONNECTOR_ID, OpenAiProviderType, } from '../../../common/openai/constants'; @@ -24,7 +25,12 @@ const mockTee = jest.fn(); const mockCreate = jest.fn().mockImplementation(() => ({ tee: mockTee.mockReturnValue([jest.fn(), jest.fn()]), })); - +const mockDefaults = { + timeout: DEFAULT_TIMEOUT_MS, + url: 'https://api.openai.com/v1/chat/completions', + method: 'post', + responseSchema: RunActionResponseSchema, +}; jest.mock('openai', () => ({ __esModule: true, default: jest.fn().mockImplementation(() => ({ @@ -110,10 +116,7 @@ describe('OpenAIConnector', () => { const response = await connector.runApi({ body: JSON.stringify(sampleOpenAiBody) }); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, - url: 'https://api.openai.com/v1/chat/completions', - method: 'post', - responseSchema: RunActionResponseSchema, + ...mockDefaults, data: JSON.stringify({ ...sampleOpenAiBody, stream: false, model: DEFAULT_OPENAI_MODEL }), headers: { Authorization: 'Bearer 123', @@ -129,10 +132,7 @@ describe('OpenAIConnector', () => { const response = await connector.runApi({ body: JSON.stringify(requestBody) }); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, - url: 'https://api.openai.com/v1/chat/completions', - method: 'post', - responseSchema: RunActionResponseSchema, + ...mockDefaults, data: JSON.stringify({ ...requestBody, stream: false }), headers: { Authorization: 'Bearer 123', @@ -147,10 +147,7 @@ describe('OpenAIConnector', () => { const response = await connector.runApi({ body: JSON.stringify(sampleOpenAiBody) }); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, - url: 'https://api.openai.com/v1/chat/completions', - method: 'post', - responseSchema: RunActionResponseSchema, + ...mockDefaults, data: JSON.stringify({ ...sampleOpenAiBody, stream: false, model: DEFAULT_OPENAI_MODEL }), headers: { Authorization: 'Bearer 123', @@ -179,10 +176,7 @@ describe('OpenAIConnector', () => { }); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, - url: 'https://api.openai.com/v1/chat/completions', - method: 'post', - responseSchema: RunActionResponseSchema, + ...mockDefaults, data: JSON.stringify({ ...body, stream: false, @@ -355,6 +349,25 @@ describe('OpenAIConnector', () => { }); }); + it('timeout is properly passed to streamApi', async () => { + const timeout = 180000; + await connector.invokeStream({ ...sampleOpenAiBody, timeout }); + + expect(mockRequest).toHaveBeenCalledWith({ + url: 'https://api.openai.com/v1/chat/completions', + method: 'post', + responseSchema: StreamingResponseSchema, + responseType: 'stream', + data: JSON.stringify({ ...sampleOpenAiBody, stream: true, model: DEFAULT_OPENAI_MODEL }), + headers: { + Authorization: 'Bearer 123', + 'X-My-Custom-Header': 'foo', + 'content-type': 'application/json', + }, + timeout, + }); + }); + it('errors during API calls are properly handled', async () => { // @ts-ignore connector.request = mockError; @@ -375,10 +388,7 @@ describe('OpenAIConnector', () => { const response = await connector.invokeAI(sampleOpenAiBody); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, - url: 'https://api.openai.com/v1/chat/completions', - method: 'post', - responseSchema: RunActionResponseSchema, + ...mockDefaults, data: JSON.stringify({ ...sampleOpenAiBody, stream: false, model: DEFAULT_OPENAI_MODEL }), headers: { Authorization: 'Bearer 123', @@ -395,10 +405,7 @@ describe('OpenAIConnector', () => { await connector.invokeAI({ ...sampleOpenAiBody, signal }); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, - url: 'https://api.openai.com/v1/chat/completions', - method: 'post', - responseSchema: RunActionResponseSchema, + ...mockDefaults, data: JSON.stringify({ ...sampleOpenAiBody, stream: false, model: DEFAULT_OPENAI_MODEL }), headers: { Authorization: 'Bearer 123', @@ -409,6 +416,22 @@ describe('OpenAIConnector', () => { }); }); + it('timeout is properly passed to runApi', async () => { + const timeout = 180000; + await connector.invokeAI({ ...sampleOpenAiBody, timeout }); + + expect(mockRequest).toHaveBeenCalledWith({ + ...mockDefaults, + data: JSON.stringify({ ...sampleOpenAiBody, stream: false, model: DEFAULT_OPENAI_MODEL }), + headers: { + Authorization: 'Bearer 123', + 'X-My-Custom-Header': 'foo', + 'content-type': 'application/json', + }, + timeout, + }); + }); + it('errors during API calls are properly handled', async () => { // @ts-ignore connector.request = mockError; @@ -431,6 +454,24 @@ describe('OpenAIConnector', () => { ); expect(mockTee).toBeCalledTimes(1); }); + it('signal and timeout is properly passed', async () => { + const timeout = 180000; + const signal = jest.fn(); + await connector.invokeAsyncIterator({ ...sampleOpenAiBody, signal, timeout }); + expect(mockRequest).toBeCalledTimes(0); + expect(mockCreate).toHaveBeenCalledWith( + { + ...sampleOpenAiBody, + stream: true, + model: DEFAULT_OPENAI_MODEL, + }, + { + signal, + timeout, + } + ); + expect(mockTee).toBeCalledTimes(1); + }); it('errors during API calls are properly handled', async () => { mockCreate.mockImplementationOnce(() => { @@ -530,10 +571,7 @@ describe('OpenAIConnector', () => { const response = await connector.runApi({ body: JSON.stringify(sampleOpenAiBody) }); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, - url: 'https://api.openai.com/v1/chat/completions', - method: 'post', - responseSchema: RunActionResponseSchema, + ...mockDefaults, data: JSON.stringify({ ...sampleOpenAiBody, stream: false, model: DEFAULT_OPENAI_MODEL }), headers: { Authorization: 'Bearer 123', @@ -579,10 +617,8 @@ describe('OpenAIConnector', () => { const response = await connector.runApi({ body: JSON.stringify(sampleAzureAiBody) }); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, + ...mockDefaults, url: 'https://My-test-resource-123.openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', - method: 'post', - responseSchema: RunActionResponseSchema, data: JSON.stringify({ ...sampleAzureAiBody, stream: false }), headers: { 'api-key': '123', @@ -606,10 +642,8 @@ describe('OpenAIConnector', () => { }); expect(mockRequest).toBeCalledTimes(1); expect(mockRequest).toHaveBeenCalledWith({ - timeout: 120000, + ...mockDefaults, url: 'https://My-test-resource-123.openai.azure.com/openai/deployments/NEW-DEPLOYMENT-321/chat/completions?api-version=2023-05-15', - method: 'post', - responseSchema: RunActionResponseSchema, data: JSON.stringify({ ...sampleAzureAiBody, stream: false }), headers: { 'api-key': '123', diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts index 2f119159a74ef..bab615cbf7e58 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts @@ -34,6 +34,7 @@ import type { } from '../../../common/openai/types'; import { DEFAULT_OPENAI_MODEL, + DEFAULT_TIMEOUT_MS, OpenAiProviderType, SUB_ACTION, } from '../../../common/openai/constants'; @@ -155,7 +156,7 @@ export class OpenAIConnector extends SubActionConnector { * responsible for making a POST request to the external API endpoint and returning the response data * @param body The stringified request body to be sent in the POST request. */ - public async runApi({ body, signal }: RunActionParams): Promise { + public async runApi({ body, signal, timeout }: RunActionParams): Promise { const sanitizedBody = sanitizeRequest( this.provider, this.url, @@ -170,7 +171,7 @@ export class OpenAIConnector extends SubActionConnector { data: sanitizedBody, signal, // give up to 2 minutes for response - timeout: 120000, + timeout: timeout ?? DEFAULT_TIMEOUT_MS, ...axiosOptions, headers: { ...this.config.headers, @@ -188,7 +189,12 @@ export class OpenAIConnector extends SubActionConnector { * @param body request body for the API request * @param stream flag indicating whether it is a streaming request or not */ - public async streamApi({ body, stream, signal }: StreamActionParams): Promise { + public async streamApi({ + body, + stream, + signal, + timeout, + }: StreamActionParams): Promise { const executeBody = getRequestWithStreamOption( this.provider, this.url, @@ -210,6 +216,7 @@ export class OpenAIConnector extends SubActionConnector { ...this.config.headers, ...axiosOptions.headers, }, + timeout, }); return stream ? pipeStreamingResponse(response) : response.data; } @@ -258,12 +265,13 @@ export class OpenAIConnector extends SubActionConnector { * @param body - the OpenAI Invoke request body */ public async invokeStream(body: InvokeAIActionParams): Promise { - const { signal, ...rest } = body; + const { signal, timeout, ...rest } = body; const res = (await this.streamApi({ body: JSON.stringify(rest), stream: true, signal, + timeout, // do not default if not provided })) as unknown as IncomingMessage; return res.pipe(new PassThrough()); @@ -283,7 +291,7 @@ export class OpenAIConnector extends SubActionConnector { tokenCountStream: Stream; }> { try { - const { signal, ...rest } = body; + const { signal, timeout, ...rest } = body; const messages = rest.messages as unknown as ChatCompletionMessageParam[]; const requestBody: ChatCompletionCreateParamsStreaming = { ...rest, @@ -295,6 +303,7 @@ export class OpenAIConnector extends SubActionConnector { }; const stream = await this.openAI.chat.completions.create(requestBody, { signal, + timeout, // do not default if not provided }); // splits the stream in two, teed[0] is used for the UI and teed[1] for token tracking const teed = stream.tee(); @@ -314,8 +323,8 @@ export class OpenAIConnector extends SubActionConnector { * @returns an object with the response string and the usage object */ public async invokeAI(body: InvokeAIActionParams): Promise { - const { signal, ...rest } = body; - const res = await this.runApi({ body: JSON.stringify(rest), signal }); + const { signal, timeout, ...rest } = body; + const res = await this.runApi({ body: JSON.stringify(rest), signal, timeout }); if (res.choices && res.choices.length > 0 && res.choices[0].message?.content) { const result = res.choices[0].message.content.trim(); From 7e47578aea86e9a1ef1255afa92aae304dfe5b27 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 23 Apr 2024 01:10:33 -0400 Subject: [PATCH 046/183] [api-docs] 2024-04-23 Daily api_docs build (#181370) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/682 --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- .../ai_assistant_management_selection.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.mdx | 2 +- api_docs/apm.mdx | 2 +- api_docs/apm_data_access.mdx | 2 +- api_docs/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.devdocs.json | 32 +++++ api_docs/data.mdx | 4 +- api_docs/data_query.mdx | 4 +- api_docs/data_search.devdocs.json | 18 ++- api_docs/data_search.mdx | 4 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/dataset_quality.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/elastic_assistant.mdx | 2 +- api_docs/embeddable.devdocs.json | 21 ++++ api_docs/embeddable.mdx | 4 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_annotation_listing.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/ingest_pipelines.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_actions_types.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_log_pattern_analysis.mdx | 2 +- api_docs/kbn_aiops_log_rate_analysis.mdx | 2 +- .../kbn_alerting_api_integration_helpers.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerting_types.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_collection_utils.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_data_view.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_bfetch_error.mdx | 2 +- api_docs/kbn_calculate_auto.mdx | 2 +- .../kbn_calculate_width_from_char_count.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mock.mdx | 2 +- api_docs/kbn_code_owners.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- ...tent_management_tabbed_table_list_view.mdx | 2 +- ...kbn_content_management_table_list_view.mdx | 2 +- ...tent_management_table_list_view_common.mdx | 2 +- ...ntent_management_table_list_view_table.mdx | 2 +- api_docs/kbn_content_management_utils.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.devdocs.json | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.devdocs.json | 16 +-- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- .../kbn_core_plugins_contracts_browser.mdx | 2 +- .../kbn_core_plugins_contracts_server.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_security_browser.mdx | 2 +- .../kbn_core_security_browser_internal.mdx | 2 +- api_docs/kbn_core_security_browser_mocks.mdx | 2 +- api_docs/kbn_core_security_common.mdx | 2 +- api_docs/kbn_core_security_server.mdx | 2 +- .../kbn_core_security_server_internal.mdx | 2 +- api_docs/kbn_core_security_server_mocks.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- .../kbn_core_test_helpers_model_versions.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_core_user_settings_server.mdx | 2 +- ...kbn_core_user_settings_server_internal.mdx | 2 +- .../kbn_core_user_settings_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_custom_icons.mdx | 2 +- api_docs/kbn_custom_integrations.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_data_forge.mdx | 2 +- api_docs/kbn_data_service.mdx | 2 +- api_docs/kbn_data_stream_adapter.mdx | 2 +- api_docs/kbn_data_view_utils.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_deeplinks_analytics.mdx | 2 +- api_docs/kbn_deeplinks_devtools.mdx | 2 +- api_docs/kbn_deeplinks_fleet.mdx | 2 +- api_docs/kbn_deeplinks_management.mdx | 2 +- api_docs/kbn_deeplinks_ml.mdx | 2 +- api_docs/kbn_deeplinks_observability.mdx | 2 +- api_docs/kbn_deeplinks_search.devdocs.json | 2 +- api_docs/kbn_deeplinks_search.mdx | 2 +- api_docs/kbn_deeplinks_security.mdx | 2 +- api_docs/kbn_deeplinks_shared.mdx | 2 +- api_docs/kbn_default_nav_analytics.mdx | 2 +- api_docs/kbn_default_nav_devtools.mdx | 2 +- api_docs/kbn_default_nav_management.mdx | 2 +- api_docs/kbn_default_nav_ml.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_discover_utils.mdx | 2 +- api_docs/kbn_doc_links.devdocs.json | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_elastic_agent_utils.mdx | 2 +- api_docs/kbn_elastic_assistant.mdx | 2 +- api_docs/kbn_elastic_assistant_common.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_esql_ast.mdx | 2 +- api_docs/kbn_esql_utils.mdx | 2 +- api_docs/kbn_esql_validation_autocomplete.mdx | 2 +- api_docs/kbn_event_annotation_common.mdx | 2 +- api_docs/kbn_event_annotation_components.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_field_utils.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- api_docs/kbn_formatters.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- .../kbn_ftr_common_functional_ui_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_generate_console_definitions.mdx | 2 +- api_docs/kbn_generate_csv.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_index_management.mdx | 2 +- api_docs/kbn_inference_integration_flyout.mdx | 2 +- api_docs/kbn_infra_forge.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_ipynb.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_lens_embeddable_utils.mdx | 2 +- api_docs/kbn_lens_formula_docs.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_content_badge.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_management_cards_navigation.mdx | 2 +- .../kbn_management_settings_application.mdx | 2 +- ...ent_settings_components_field_category.mdx | 2 +- ...gement_settings_components_field_input.mdx | 2 +- ...nagement_settings_components_field_row.mdx | 2 +- ...bn_management_settings_components_form.mdx | 2 +- ...n_management_settings_field_definition.mdx | 2 +- api_docs/kbn_management_settings_ids.mdx | 2 +- ...n_management_settings_section_registry.mdx | 2 +- api_docs/kbn_management_settings_types.mdx | 2 +- .../kbn_management_settings_utilities.mdx | 2 +- api_docs/kbn_management_storybook_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_maps_vector_tile_utils.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_anomaly_utils.mdx | 2 +- api_docs/kbn_ml_cancellable_search.mdx | 2 +- api_docs/kbn_ml_category_validator.mdx | 2 +- api_docs/kbn_ml_chi2test.mdx | 2 +- .../kbn_ml_data_frame_analytics_utils.mdx | 2 +- api_docs/kbn_ml_data_grid.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_date_utils.mdx | 2 +- api_docs/kbn_ml_error_utils.mdx | 2 +- api_docs/kbn_ml_in_memory_table.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_kibana_theme.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_number_utils.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_random_sampler_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_runtime_field_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_time_buckets.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_ui_actions.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_mock_idp_utils.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- .../kbn_observability_alerting_test_data.mdx | 2 +- ...ility_get_padded_alert_time_range_util.mdx | 2 +- api_docs/kbn_openapi_bundler.mdx | 2 +- api_docs/kbn_openapi_generator.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_panel_loader.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_check.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_presentation_containers.mdx | 2 +- api_docs/kbn_presentation_publishing.mdx | 2 +- api_docs/kbn_profiling_utils.mdx | 2 +- api_docs/kbn_random_sampling.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_react_kibana_context_common.mdx | 2 +- api_docs/kbn_react_kibana_context_render.mdx | 2 +- api_docs/kbn_react_kibana_context_root.mdx | 2 +- api_docs/kbn_react_kibana_context_styled.mdx | 2 +- api_docs/kbn_react_kibana_context_theme.mdx | 2 +- api_docs/kbn_react_kibana_mount.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_reporting_common.mdx | 2 +- api_docs/kbn_reporting_csv_share_panel.mdx | 2 +- api_docs/kbn_reporting_export_types_csv.mdx | 2 +- .../kbn_reporting_export_types_csv_common.mdx | 2 +- api_docs/kbn_reporting_export_types_pdf.mdx | 2 +- .../kbn_reporting_export_types_pdf_common.mdx | 2 +- api_docs/kbn_reporting_export_types_png.mdx | 2 +- .../kbn_reporting_export_types_png_common.mdx | 2 +- api_docs/kbn_reporting_mocks_server.mdx | 2 +- api_docs/kbn_reporting_public.mdx | 2 +- api_docs/kbn_reporting_server.mdx | 2 +- api_docs/kbn_resizable_layout.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_router_to_openapispec.mdx | 2 +- api_docs/kbn_router_utils.mdx | 2 +- api_docs/kbn_rrule.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_saved_objects_settings.mdx | 2 +- api_docs/kbn_search_api_panels.mdx | 2 +- api_docs/kbn_search_connectors.mdx | 2 +- api_docs/kbn_search_errors.mdx | 2 +- api_docs/kbn_search_index_documents.mdx | 2 +- api_docs/kbn_search_response_warnings.mdx | 2 +- api_docs/kbn_security_hardening.mdx | 2 +- api_docs/kbn_security_plugin_types_common.mdx | 2 +- api_docs/kbn_security_plugin_types_public.mdx | 2 +- api_docs/kbn_security_plugin_types_server.mdx | 2 +- api_docs/kbn_security_solution_features.mdx | 2 +- api_docs/kbn_security_solution_navigation.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_data_table.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_serverless_common_settings.mdx | 2 +- .../kbn_serverless_observability_settings.mdx | 2 +- api_docs/kbn_serverless_project_switcher.mdx | 2 +- api_docs/kbn_serverless_search_settings.mdx | 2 +- api_docs/kbn_serverless_security_settings.mdx | 2 +- api_docs/kbn_serverless_storybook_config.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +- api_docs/kbn_shared_ux_error_boundary.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_tabbed_modal.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_solution_nav_es.mdx | 2 +- api_docs/kbn_solution_nav_oblt.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_sort_predicates.mdx | 2 +- api_docs/kbn_std.devdocs.json | 115 ++++++++++++++++++ api_docs/kbn_std.mdx | 4 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_eui_helpers.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_text_based_editor.mdx | 2 +- api_docs/kbn_timerange.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_triggers_actions_ui_types.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_unified_data_table.mdx | 2 +- api_docs/kbn_unified_doc_viewer.mdx | 2 +- api_docs/kbn_unified_field_list.mdx | 2 +- api_docs/kbn_unsaved_changes_badge.mdx | 2 +- api_docs/kbn_use_tracked_promise.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_visualization_ui_components.mdx | 2 +- api_docs/kbn_visualization_utils.mdx | 2 +- api_docs/kbn_xstate_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kbn_zod_helpers.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/links.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/logs_explorer.mdx | 2 +- api_docs/logs_shared.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/metrics_data_access.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/mock_idp_plugin.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/no_data_page.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- .../observability_a_i_assistant.devdocs.json | 48 ++++++++ api_docs/observability_a_i_assistant.mdx | 4 +- api_docs/observability_a_i_assistant_app.mdx | 2 +- .../observability_ai_assistant_management.mdx | 2 +- api_docs/observability_logs_explorer.mdx | 2 +- .../observability_onboarding.devdocs.json | 40 ++++++ api_docs/observability_onboarding.mdx | 4 +- api_docs/observability_shared.devdocs.json | 30 +++++ api_docs/observability_shared.mdx | 4 +- api_docs/osquery.mdx | 2 +- api_docs/painless_lab.mdx | 2 +- api_docs/plugin_directory.mdx | 16 +-- api_docs/presentation_panel.mdx | 2 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/profiling_data_access.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/search_connectors.mdx | 2 +- api_docs/search_notebooks.mdx | 2 +- api_docs/search_playground.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.devdocs.json | 12 +- api_docs/security_solution.mdx | 2 +- api_docs/security_solution_ess.mdx | 2 +- api_docs/security_solution_serverless.mdx | 2 +- api_docs/serverless.mdx | 2 +- api_docs/serverless_observability.mdx | 2 +- api_docs/serverless_search.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/slo.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/text_based_languages.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_doc_viewer.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/uptime.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.devdocs.json | 10 +- api_docs/visualizations.mdx | 2 +- 692 files changed, 1023 insertions(+), 713 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index bd0016a9a5059..1fd7347b53a07 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index fcce9870f47c9..4ad58dc5c0285 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx index 2ba654fd9b930..044214e705094 100644 --- a/api_docs/ai_assistant_management_selection.mdx +++ b/api_docs/ai_assistant_management_selection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection title: "aiAssistantManagementSelection" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementSelection plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection'] --- import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index c8e1a20805fc7..bd5c1d94c367a 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 251090d81dfd6..80b5ab08b9fc2 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 5195b82264ef5..8665ca630783d 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index 7544780dca76a..2e7f9cfde4693 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index cc48de54bbb9b..43aa7b6842f2e 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index c4ae83fc93f83..e0cb6d6fbf276 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index aeb491fa781a6..cf8b9671663fa 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 234bf1f5fd7ce..87fa606df1ed1 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 90e8ca2897140..2d2970efadfd4 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 63d5d5e2539cd..07f13bff0c33e 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 40071d9a2111d..3b886a5aa17d6 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 0594b4bcd8345..27a738e5f29de 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index c492802d85215..16dd20cda1b19 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index e424473edc710..00132de728bcd 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index e64415ef1791e..c876a57c2f8b5 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index cec66b4286429..84efeaa26e25f 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 6497ef2953442..d2a23746cbd28 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 7ccedc7a0c04d..306313aaa4df3 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 8102322ee1242..6b629b09fd8be 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index a53fa71bc6085..ac078e4337b98 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 1ea206d5e15df..e294ac4462ae3 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json index 2ce80d50cff9b..3b4efee0c14f6 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -7979,6 +7979,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "data", + "id": "def-public.ISearchOptions.retrieveResults", + "type": "CompoundType", + "tags": [], + "label": "retrieveResults", + "description": [ + "\nBy default, when polling, we don't retrieve the results of the search request (until it is complete). (For async\nsearch, this is the difference between calling _async_search/{id} and _async_search/status/{id}.) setting this to\n`true` will request the search results, regardless of whether or not the search is complete." + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "data", "id": "def-public.ISearchOptions.executionContext", @@ -17970,6 +17986,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.retrieveResults", + "type": "CompoundType", + "tags": [], + "label": "retrieveResults", + "description": [ + "\nBy default, when polling, we don't retrieve the results of the search request (until it is complete). (For async\nsearch, this is the difference between calling _async_search/{id} and _async_search/status/{id}.) setting this to\n`true` will request the search results, regardless of whether or not the search is complete." + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "data", "id": "def-server.ISearchOptions.executionContext", diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 51d11c982ef0e..54ae2d29b90cd 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3287 | 31 | 2621 | 23 | +| 3290 | 31 | 2621 | 23 | ## Client diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index d1d3b6b3b8f66..670b749777582 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3287 | 31 | 2621 | 23 | +| 3290 | 31 | 2621 | 23 | ## Client diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json index c2fc6938cbd49..c30de7972840c 100644 --- a/api_docs/data_search.devdocs.json +++ b/api_docs/data_search.devdocs.json @@ -28311,6 +28311,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "data", + "id": "def-common.ISearchOptions.retrieveResults", + "type": "CompoundType", + "tags": [], + "label": "retrieveResults", + "description": [ + "\nBy default, when polling, we don't retrieve the results of the search request (until it is complete). (For async\nsearch, this is the difference between calling _async_search/{id} and _async_search/status/{id}.) setting this to\n`true` will request the search results, regardless of whether or not the search is complete." + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "data", "id": "def-common.ISearchOptions.executionContext", @@ -34035,7 +34051,7 @@ "section": "def-common.KibanaExecutionContext", "text": "KibanaExecutionContext" }, - " | undefined; isStored?: boolean | undefined; isRestore?: boolean | undefined; sessionId?: string | undefined; strategy?: string | undefined; legacyHitsTotal?: boolean | undefined; isSearchStored?: boolean | undefined; }" + " | undefined; isStored?: boolean | undefined; isRestore?: boolean | undefined; sessionId?: string | undefined; strategy?: string | undefined; legacyHitsTotal?: boolean | undefined; isSearchStored?: boolean | undefined; retrieveResults?: boolean | undefined; }" ], "path": "src/plugins/data/common/search/types.ts", "deprecated": false, diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 367a17e01ce8e..1aff16458a1aa 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3287 | 31 | 2621 | 23 | +| 3290 | 31 | 2621 | 23 | ## Client diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index fc02e2954b9a1..1db1f5fb214f9 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index bb27ed4b5336b..1ade689c92649 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index cbd9a09056574..4b25306777b9b 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 1863d726b2d97..dc4c2899f3aba 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index ea5cc0641a881..5dd35e53aaad1 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index e898d7171c260..039d4d01f504b 100644 --- a/api_docs/dataset_quality.mdx +++ b/api_docs/dataset_quality.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality title: "datasetQuality" image: https://source.unsplash.com/400x175/?github description: API docs for the datasetQuality plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality'] --- import datasetQualityObj from './dataset_quality.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index b5eeeb69f887d..33b126ad89297 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 4cddd4f200bb8..f676745d3a966 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index e3d994d9d52e3..f2ee962027da4 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index eb1b8016b1878..9f0a585fe296c 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index bb30fdda3c861..df156033e596b 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 43cbff6a96881..cfb5492155604 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 860bcea7b4383..2bca37f7d9e54 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index 9dd9bf74d761d..c612bd39cc10c 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index 25e63699429f4..a150cb0eb1c35 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -5520,6 +5520,27 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.defaultPanelDescription", + "type": "Object", + "tags": [], + "label": "defaultPanelDescription", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "embeddable", "id": "def-public.Embeddable.disabledActionIds", diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 7de047b72dc3c..a2a627bc03350 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 559 | 1 | 453 | 8 | +| 560 | 1 | 454 | 8 | ## Client diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index 4b73575bbf35a..ea9a2c39ad002 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index b43e81f2ee69d..50bccd787a9f0 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index a1d13c6da6ab5..7fc9120d309ea 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 44030729cd778..06c02cfa9b605 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 86b41cd2e3813..65e4893f9104e 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx index 7530e4dbd519b..96fde09a46d67 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index ad9cad86d3a9a..f1a4fa3b57020 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 8b457211f90e3..2f46e78554732 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 31be944ba847e..0b7095a0352c3 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index 43c1cbf007812..39ff778c6684e 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index e70d0c1c32255..4460faf1bbfd4 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 8ecd138b63264..0b8e2ee9ecb29 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index ff2f85f9b7535..90d4f7c8a13a1 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index cf06adb9ccfb5..83b96e2c972ee 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 360dd58b663ee..b24f93a95b7c9 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 28a4dc9631c0e..e07a4ca0512eb 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 49d9c335f30a5..c528fefbb987e 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 1e7a0eea70533..69945a6d00f79 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index e21118b6632ae..252ed72ef9892 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index bb066bc9de6cf..98280252f47c7 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index a05caa3d4daa3..0a98bf0d7f600 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index 0da463425d588..5c6585756dc31 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 0982bf4fcf469..7c42d35af4235 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index f4eb3ff168891..79699821c1e1d 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 32eabcf14c034..17e725046c2f0 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 916d6c68ee6ec..7bb001c6b9c4e 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index d4f5f04c8e1bc..3c3e2fc6d9bb8 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index cbea78b7bd778..b6e54e1ea3baf 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 8afdcd9096d36..cff29d529056f 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index b0e07517c3a20..f5e75e7882467 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index dcd522070cbf5..8e59ba4db41bb 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 3b010b95ed516..f174c67ed4b5f 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 37040e1d757ba..8928a207d60e4 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index e2ca79431020b..da50e6d4f7d80 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 717062b1c53a4..0223f47e6b2a1 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx index 55b6c499f334f..0f6265cbc160d 100644 --- a/api_docs/ingest_pipelines.mdx +++ b/api_docs/ingest_pipelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines title: "ingestPipelines" image: https://source.unsplash.com/400x175/?github description: API docs for the ingestPipelines plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines'] --- import ingestPipelinesObj from './ingest_pipelines.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index 10f4c0f195c29..b80e101155e7e 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index d3ee2c96642f5..e0d0af4c47fb6 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 72258ac9c762b..df9f795e16fcd 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx index 20e26868917ba..f791c73ed0c4e 100644 --- a/api_docs/kbn_actions_types.mdx +++ b/api_docs/kbn_actions_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types title: "@kbn/actions-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/actions-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types'] --- import kbnActionsTypesObj from './kbn_actions_types.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index 5a27adfe30b65..8f46edf664cbf 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx index 8a1a6288d55e0..9fc50aee2f196 100644 --- a/api_docs/kbn_aiops_log_pattern_analysis.mdx +++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis title: "@kbn/aiops-log-pattern-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-pattern-analysis plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis'] --- import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx index 6a6a4edfe92d9..9add71133906e 100644 --- a/api_docs/kbn_aiops_log_rate_analysis.mdx +++ b/api_docs/kbn_aiops_log_rate_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis title: "@kbn/aiops-log-rate-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-rate-analysis plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis'] --- import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index 064f3aa8ab137..072bd4fe4fe0b 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index 49fbc982b5f0e..bf6fca7f67d51 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx index 3b4e356db8ff6..002efeb7a350f 100644 --- a/api_docs/kbn_alerting_types.mdx +++ b/api_docs/kbn_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types title: "@kbn/alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types'] --- import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 1c85fbe74958c..394ff33e48ab0 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index a11c85f24e3c1..a2bbfa67c9810 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 183865e66f7ba..0266206c37a26 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 9e2655ddf3276..ef07914f8fa36 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index 2934bdd3df4d5..20fbda8215e16 100644 --- a/api_docs/kbn_analytics_collection_utils.mdx +++ b/api_docs/kbn_analytics_collection_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils title: "@kbn/analytics-collection-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-collection-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 2d952060c331c..27d4d95554922 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 101545553865a..bee0e2c709105 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 0a654fa1c7e6f..d14361538bf59 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index 37a298493acfa..68b35b803efac 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index a5daa8c1b6090..9024a0fdb276a 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_data_view.mdx b/api_docs/kbn_apm_data_view.mdx index 64a1594f97404..a84d07d07ee11 100644 --- a/api_docs/kbn_apm_data_view.mdx +++ b/api_docs/kbn_apm_data_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view title: "@kbn/apm-data-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-data-view plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view'] --- import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 1e862cd965d5c..e8298efdf1a43 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index bb20ffe6ce865..35805e4c80791 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index f11a9cf669b19..e85d293453fa7 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 4162ceca706f6..4ceb8c139a34c 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx index 790de0ecdad48..b0232819f2275 100644 --- a/api_docs/kbn_bfetch_error.mdx +++ b/api_docs/kbn_bfetch_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error title: "@kbn/bfetch-error" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/bfetch-error plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error'] --- import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json'; diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx index bab0fbfdc85f4..4d3a1d37fd775 100644 --- a/api_docs/kbn_calculate_auto.mdx +++ b/api_docs/kbn_calculate_auto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto title: "@kbn/calculate-auto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-auto plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto'] --- import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json'; diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx index aaed2aa170cab..5dfe19dd3d140 100644 --- a/api_docs/kbn_calculate_width_from_char_count.mdx +++ b/api_docs/kbn_calculate_width_from_char_count.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count title: "@kbn/calculate-width-from-char-count" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-width-from-char-count plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count'] --- import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index f1be51668d5f6..78cf30bb57b53 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index f726a91cf05df..5aa84dc9322e1 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 68331633fcfbc..c00de26cb7fdf 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 1c11febe428ca..db52651adecbd 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index e3c735dd3f234..1a3cda9a55bdc 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 39c87ff928cd2..0c9f0f96093bb 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index a481582c8974d..96121f4540681 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index d965fbc055357..4d6b5be2fedad 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 2dd7484f2e487..9506c654076e4 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx index 9813ae46c6b7a..866c865b3b593 100644 --- a/api_docs/kbn_code_editor_mock.mdx +++ b/api_docs/kbn_code_editor_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock title: "@kbn/code-editor-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mock plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock'] --- import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json'; diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx index d8ad0fef941f8..6b529bb6e9c8b 100644 --- a/api_docs/kbn_code_owners.mdx +++ b/api_docs/kbn_code_owners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners title: "@kbn/code-owners" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-owners plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners'] --- import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index cf36fc73270d2..6ef0056b50d5f 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index 23c5c1fe68690..8f7e0e8a1815a 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index fec7adc098a98..fe1bc5a0c7f35 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 49e16caca9062..e08798fbb9c7f 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 521cd317bca98..7d8151d799226 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index fb1ca6ace0f40..e09776bd510a6 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view'] --- import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx index 110fa05cc21f8..d2e80260a6ca4 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx index 2ff6791f2ee7b..5c1a03d59984a 100644 --- a/api_docs/kbn_content_management_table_list_view_common.mdx +++ b/api_docs/kbn_content_management_table_list_view_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common title: "@kbn/content-management-table-list-view-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common'] --- import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index 63e14f96f9c32..63ac806e2ecd0 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index 965774f4db835..240948d3e4a28 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 3237fba671646..7ff3adf888e4d 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index cda0b6273cc73..7b177db5f7b11 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index ff585370cf34a..c9047b1e5258c 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 9520c0badf379..26c0fddb3db62 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index d0bae87f7988a..f075d189f26db 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index cb31a8935a802..c6886bd2fdd16 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index 18edc0d90ad87..f17ec400266c2 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index 0e23932ddc4a1..2f12a8ef907c7 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 4352f554ded8f..f9b12f3c4734c 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index ab7a3358c615f..ddc8e6544832e 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index bb8140d735242..fb055e600fa8c 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index 3b51f691a74d5..dea53c00dee8f 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 4326da4cd8849..876268518a70d 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index e699b31008d38..cdaa56f8a455b 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 0e2db136b6659..ef7b5be3c5b80 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index b715b36a4628a..a46e85e500416 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index 0ff44c62c368f..eb220edb9a6e6 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index 873a8a0f164b4..39401285becb6 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 5f73c9019dd64..578ff065b5836 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 78fda93e37293..55adfd0793fbd 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 1dc52d384064c..7d3075c45d248 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.devdocs.json b/api_docs/kbn_core_chrome_browser.devdocs.json index 92ad8564a486c..42263bcb126c1 100644 --- a/api_docs/kbn_core_chrome_browser.devdocs.json +++ b/api_docs/kbn_core_chrome_browser.devdocs.json @@ -3696,7 +3696,7 @@ "label": "AppDeepLinkId", "description": [], "signature": [ - "\"fleet\" | \"graph\" | \"ml\" | \"monitoring\" | \"metrics\" | \"management\" | \"synthetics\" | \"ux\" | \"apm\" | \"logs\" | \"profiling\" | \"dashboards\" | \"observabilityAIAssistant\" | \"home\" | \"canvas\" | \"integrations\" | \"discover\" | \"observability-overview\" | \"appSearch\" | \"dev_tools\" | \"maps\" | \"visualize\" | \"dev_tools:console\" | \"dev_tools:searchprofiler\" | \"dev_tools:painless_lab\" | \"dev_tools:grokdebugger\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:singleMetricViewer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:logRateAnalysis\" | \"ml:logPatternAnalysis\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:maintenanceWindows\" | \"management:settings\" | \"management:dataViews\" | \"management:spaces\" | \"management:users\" | \"management:migrate_data\" | \"management:search_sessions\" | \"management:filesManagement\" | \"management:roles\" | \"management:reporting\" | \"management:aiAssistantManagementSelection\" | \"management:securityAiAssistantManagement\" | \"management:observabilityAiAssistantManagement\" | \"management:api_keys\" | \"management:cross_cluster_replication\" | \"management:license_management\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:role_mappings\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\" | \"management:upgrade_assistant\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchContent:playground\" | \"enterpriseSearchApplications:searchApplications\" | \"appSearch:engines\" | \"observability-logs-explorer\" | \"observabilityOnboarding\" | \"slo\" | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:rules\" | \"observability-overview:alerts\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"profiling:functions\" | \"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:network\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:ai_insights\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"fleet:settings\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\" | \"fleet:agents\"" + "\"fleet\" | \"graph\" | \"ml\" | \"monitoring\" | \"metrics\" | \"management\" | \"synthetics\" | \"ux\" | \"apm\" | \"logs\" | \"profiling\" | \"dashboards\" | \"observabilityAIAssistant\" | \"home\" | \"canvas\" | \"integrations\" | \"discover\" | \"observability-overview\" | \"appSearch\" | \"dev_tools\" | \"maps\" | \"visualize\" | \"dev_tools:console\" | \"dev_tools:searchprofiler\" | \"dev_tools:painless_lab\" | \"dev_tools:grokdebugger\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:singleMetricViewer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:logRateAnalysis\" | \"ml:logPatternAnalysis\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:maintenanceWindows\" | \"management:settings\" | \"management:dataViews\" | \"management:spaces\" | \"management:users\" | \"management:migrate_data\" | \"management:search_sessions\" | \"management:filesManagement\" | \"management:roles\" | \"management:reporting\" | \"management:aiAssistantManagementSelection\" | \"management:securityAiAssistantManagement\" | \"management:observabilityAiAssistantManagement\" | \"management:api_keys\" | \"management:cross_cluster_replication\" | \"management:license_management\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:role_mappings\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\" | \"management:upgrade_assistant\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchApplications:searchApplications\" | \"enterpriseSearchApplications:playground\" | \"appSearch:engines\" | \"observability-logs-explorer\" | \"observabilityOnboarding\" | \"slo\" | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:rules\" | \"observability-overview:alerts\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"profiling:functions\" | \"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:network\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:ai_insights\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"fleet:settings\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\" | \"fleet:agents\"" ], "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", "deprecated": false, diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index be343740a9de4..dbcb1bb67321f 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index f20b67700d86c..3f25cf3801fe1 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index 8927528abc095..3877f1998ee0a 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 502862b5a35d3..dbbbd5aec530a 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index c6e3938b5129d..2590374afdea3 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 05c94768dce91..e2e8051d3e569 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 0e70ce4b2dda3..eb53060cdef80 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 31f8c18a79397..f5206bb2ea733 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index 6f33bb2c25a33..c1e2058bbde3d 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index e70103399a092..59162f3d7e46a 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 5ecacaef9cfcb..5afc3310f73bb 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 32e117430dc8a..4009621a5ee0f 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index d41008396e6f1..a7503e761648b 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 568d199a1c485..b1fde4c717cf2 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index 61f298cd7a898..c769b7cdedb26 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 77be7789756c9..eb89b1f92fd8b 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 78c7423e9be2a..c5a0dadf2efaf 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 3cfec8dde7442..0662f814f57c4 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index 6d95fa7f36014..cd70bfa6c489c 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index 43461f6df50eb..1a0593c6fd866 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index fb0615ca1b900..fbf7f888383a9 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 4a24bdb28c145..9469f4a30e821 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index 800dc3bbe2d5e..deebb231252ab 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 52ccc5416f797..cec76e7d6b57d 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index a699b65f9ebda..4d2e8bf270196 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index 291fb9cdada54..65dd63ea828f2 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 622c7ecf278c5..627cc2520da4b 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index ca8aa9486e0c5..640cc365b6f0d 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index a5711b1740613..51a716da07273 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 35861fc5b9c7e..218f3ee46e35b 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index ee4f78fd9bb4c..832ebdc4f505e 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 74c29cb4263b2..cdde287062066 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index 66d215d06521c..65bad55967eea 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index 0a62dbbda8e9e..081f510bab1f9 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index de090a0d4870c..95926f50176a7 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index bfc5b5106b3a4..c48495224d547 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index c827c7038d448..f8877417e36a8 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index 141e4a7f6d3e4..b558c9312f63f 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 7ef1a13679857..3d17c5fb6e74f 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index 38c9dc3bdb79e..326239d33ecc9 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index 3c7a76bee2fb8..2e48f5da6a139 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index c7c65afa9019f..978788c30a0b7 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 2cd6cc1c921a9..2f2cd02edc94e 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 781c6383ecc59..f2cc29f33a559 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index e6a96a659ee44..e552deeee03d9 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index 03c3ce2e92f2f..103d963185953 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 3b67aa7841fb8..c0e51954b659b 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index a71ef7ea0f577..1e863f5557bdb 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 68157bfed74fd..137d22704c4e5 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -3865,10 +3865,6 @@ "plugin": "banners", "path": "x-pack/plugins/banners/server/routes/info.ts" }, - { - "plugin": "stackConnectors", - "path": "x-pack/plugins/stack_connectors/server/routes/get_well_known_email_service.ts" - }, { "plugin": "savedObjectsTagging", "path": "x-pack/plugins/saved_objects_tagging/server/routes/tags/get_all_tags.ts" @@ -4609,6 +4605,10 @@ "plugin": "snapshotRestore", "path": "x-pack/plugins/snapshot_restore/server/routes/api/policy.ts" }, + { + "plugin": "stackConnectors", + "path": "x-pack/plugins/stack_connectors/server/routes/get_well_known_email_service.ts" + }, { "plugin": "upgradeAssistant", "path": "x-pack/plugins/upgrade_assistant/server/routes/reindex_indices/reindex_indices.ts" @@ -6455,10 +6455,6 @@ "plugin": "assetManager", "path": "x-pack/plugins/asset_manager/server/routes/sample_assets.ts" }, - { - "plugin": "stackConnectors", - "path": "x-pack/plugins/stack_connectors/server/routes/valid_slack_api_channels.ts" - }, { "plugin": "savedObjectsTagging", "path": "x-pack/plugins/saved_objects_tagging/server/routes/tags/create_tag.ts" @@ -7107,6 +7103,10 @@ "plugin": "snapshotRestore", "path": "x-pack/plugins/snapshot_restore/server/routes/api/policy.ts" }, + { + "plugin": "stackConnectors", + "path": "x-pack/plugins/stack_connectors/server/routes/valid_slack_api_channels.ts" + }, { "plugin": "upgradeAssistant", "path": "x-pack/plugins/upgrade_assistant/server/routes/reindex_indices/reindex_indices.ts" diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 09ea835cc0681..1593bd2c338c6 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 1ae31802f8dda..0fd75d7030f42 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index b42329bbe3e8e..feba59ea87527 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index bbca6bb8438aa..c6acf55d57c15 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index 295f9211933be..db72b53d5ac95 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index dcb6d133f74d1..f5819e791ba57 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 112a774056847..6a30c8c9f31ae 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index db54dec07bb90..2df1befcfc750 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 43fb6d2841c99..6206e6dde14a4 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index 764bf0898dd0f..03dfea619fb28 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index f351cbc80bcf6..dfe6e16942527 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 33bfa22c35129..6c0478473d5eb 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index dde3f98abe7f1..32635a2fd2399 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index 74b2e2150c31f..3bbc63bf01679 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index a84b815761f38..90241b2897625 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index 494bf6552b974..a3ec7cab2ccb0 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 160fa5e8ce197..6113d2b60d61f 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 32eee8313507b..6d5b8e09b765d 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 355328818a0d3..096b85dbfdb88 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index ac68173812d9c..5262603d6478e 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index 6fc7c14d0fa5f..aa867cb1b93b7 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index 4d011c8912ffa..e4e4c8eb2c3cb 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 2e465b065e032..677f15700444a 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 1b33ca02e3ad5..845e74808475f 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index b166bc111d35f..ff6cfbdca6eb5 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 36237b9afc729..b89bcebfede68 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index 59557d8c881f6..33a79164503f9 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index 9347e32b4d1b0..aea0fdf9701a0 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index eb71022960eb7..d806418afd319 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 5ceba06396ce1..b607a07221395 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index b5fc0b684c077..419278892e801 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 5e34e8574f6ac..b44d18fec7aee 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index a65d96f36ec62..9547089954f6e 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 32e5f881173b1..81c9332bee482 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index 50c66718f1934..19f7e95299fc3 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index 23cf9e3e1ca3f..b0a98007ac6a3 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index c185a5944fd5b..33cf5715a414e 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx index 92fb9a3a98a05..6a25757aa525f 100644 --- a/api_docs/kbn_core_plugins_contracts_browser.mdx +++ b/api_docs/kbn_core_plugins_contracts_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser title: "@kbn/core-plugins-contracts-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser'] --- import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx index 2c20ef3502edb..325d27316909e 100644 --- a/api_docs/kbn_core_plugins_contracts_server.mdx +++ b/api_docs/kbn_core_plugins_contracts_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server title: "@kbn/core-plugins-contracts-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server'] --- import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 3615e23967927..5a91383572762 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index cbfa2cf1ed356..8468f3196415a 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index b15d8ce84ccdc..c73e535065fbe 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index 4b6c05d4c63de..ea93e9e4ad41c 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index caf6cd33a8464..45c38f78a76f9 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index d076119d3b36f..4dbe0929624e9 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index 49d62ef68be3e..b687493b1908d 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index f72ff31d83488..2003684fe2fa5 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index ad31c50249b0d..520b00bc4683a 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index c23d74f47a9fd..0440e77befc47 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index ea7e364270278..cba98a2c44d91 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 37a7e30be9415..56b3f3fcae640 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 9f0090c0a5791..0b5ec1725fc57 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 1a42726d9fbfc..175d3615df9b1 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 05b08badb327e..b8f8509b3d085 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index e2418c8214f78..c0ec7684588bf 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index f980f3f848ed0..d9f54d516e95d 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index c8c50f0fdc2fa..b3ddc7108b63a 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 14ed74f6a5f40..554388073c9ac 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index a10e7d0334c80..055ff99eecc81 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 0f82c01dbb8d4..4457a55cd0b04 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index caaf27d4ad56d..19d9d6d98a3d6 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index 4576b4cf0c817..1e142b66d2856 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index 7cbbf87c8ae33..09099196954c3 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index 712e2f01285bd..4ae6b60a55606 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx index 5ab82570d5212..12a74fb1f4223 100644 --- a/api_docs/kbn_core_security_browser.mdx +++ b/api_docs/kbn_core_security_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser title: "@kbn/core-security-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser'] --- import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx index 0af65e743004f..1f872d6745c24 100644 --- a/api_docs/kbn_core_security_browser_internal.mdx +++ b/api_docs/kbn_core_security_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal title: "@kbn/core-security-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal'] --- import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx index 2ba210cab6f2e..e119f75f43bdc 100644 --- a/api_docs/kbn_core_security_browser_mocks.mdx +++ b/api_docs/kbn_core_security_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks title: "@kbn/core-security-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks'] --- import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx index 3a7aa0433c93a..32d21af09688e 100644 --- a/api_docs/kbn_core_security_common.mdx +++ b/api_docs/kbn_core_security_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common title: "@kbn/core-security-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common'] --- import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json'; diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx index 583ebfbd80db9..91fb4150abc18 100644 --- a/api_docs/kbn_core_security_server.mdx +++ b/api_docs/kbn_core_security_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server title: "@kbn/core-security-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server'] --- import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx index 9feb13ee325cc..01266ac8bf68d 100644 --- a/api_docs/kbn_core_security_server_internal.mdx +++ b/api_docs/kbn_core_security_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal title: "@kbn/core-security-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal'] --- import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx index f24476e944d18..cbe0ee9b0c136 100644 --- a/api_docs/kbn_core_security_server_mocks.mdx +++ b/api_docs/kbn_core_security_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks title: "@kbn/core-security-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks'] --- import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 6411650d9514e..a571d3881a413 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index 1d76c8f13940f..65138cfd3613e 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 192a785cce7fe..1b01a8a6000ac 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index c474f045c3377..87a7fc61321ad 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index cca79232a28be..ae4adf1296bb2 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 953e33c0ea634..0eef0d401957f 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 0545872105ddd..7cb6ea6631a6b 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index aa2224c7ca2cd..72068a5586c23 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx index e344e354929fa..aa582a4c54e24 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions'] --- import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index e240489f4c92a..2a024ac64fa92 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 781d9368d8cbe..0f7c487a7b131 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 4d52b1346dbe2..8fdc9f9bf0e44 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 23f92ce292821..a11ae8572b3fa 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index bb9facb718ca6..1abcef2cef0b1 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index af6be9f92ba58..86e92a754753c 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index fe21b40c8a852..dcfc5302cdecd 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 75437fbcb0919..5b655735d154f 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 8c2c37ae6f4dd..86710ab969d19 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 39d5f1e711b90..717f7c673b00e 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 92ecd4a7fb1cb..74ee9688828f9 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 54a7d391db378..7ce60ee6c70ac 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 7e3cfd5549a82..3e88ed0884024 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index b619cf558b11b..57631e9c886a4 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index c3a486e61a482..6c8b57057b43a 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index d90f0372dc2ff..de3eb5db57c0b 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index 9544284c35cbf..275c0194b27a7 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks'] --- import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 593cf9050d972..aa13d65f380ff 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index 0f57ee34c339b..1d97580b4a95d 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx index 3ca4934609fa3..295836997ef55 100644 --- a/api_docs/kbn_custom_icons.mdx +++ b/api_docs/kbn_custom_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons title: "@kbn/custom-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-icons plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons'] --- import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json'; diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx index 5bd550ec663ca..d18725804a080 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations'] --- import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 7e690479a4605..3a2b0b82b2f8d 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx index 943ec171cee15..f0bac9ac900f5 100644 --- a/api_docs/kbn_data_forge.mdx +++ b/api_docs/kbn_data_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge title: "@kbn/data-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-forge plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge'] --- import kbnDataForgeObj from './kbn_data_forge.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index 0e3fdb4d2c3d9..f2df9d5740657 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx index d56e38e56e76f..d245d7a25459f 100644 --- a/api_docs/kbn_data_stream_adapter.mdx +++ b/api_docs/kbn_data_stream_adapter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter title: "@kbn/data-stream-adapter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-stream-adapter plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter'] --- import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json'; diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx index 1fe34a86f041b..8607aee930157 100644 --- a/api_docs/kbn_data_view_utils.mdx +++ b/api_docs/kbn_data_view_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils title: "@kbn/data-view-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-view-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils'] --- import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index fcf10607a9dc9..ce7d9c940c420 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx index d7e2d36d167bb..309b5f8707d1e 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics'] --- import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx index 4f064c776dcaa..61c6ade944808 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx index 16aae555b0c19..3c3ed137f2004 100644 --- a/api_docs/kbn_deeplinks_fleet.mdx +++ b/api_docs/kbn_deeplinks_fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet title: "@kbn/deeplinks-fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-fleet plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet'] --- import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index e075a832c5e97..bb0e586571fb6 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index 17a6a66ea019b..8f4d63c40747a 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index db48020e29112..1f076393b34ca 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_search.devdocs.json b/api_docs/kbn_deeplinks_search.devdocs.json index f6dd2950f9b0e..b63710ed4d427 100644 --- a/api_docs/kbn_deeplinks_search.devdocs.json +++ b/api_docs/kbn_deeplinks_search.devdocs.json @@ -30,7 +30,7 @@ "label": "DeepLinkId", "description": [], "signature": [ - "\"appSearch\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchContent:playground\" | \"enterpriseSearchApplications:searchApplications\" | \"appSearch:engines\"" + "\"appSearch\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchApplications:searchApplications\" | \"enterpriseSearchApplications:playground\" | \"appSearch:engines\"" ], "path": "packages/deeplinks/search/deep_links.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index 386c5ab617469..1c02f87a11674 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx index 74c4b21da82b4..0916d8645b244 100644 --- a/api_docs/kbn_deeplinks_security.mdx +++ b/api_docs/kbn_deeplinks_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security title: "@kbn/deeplinks-security" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-security plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security'] --- import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx index 7a516c36cdcea..e6eda43dc1d9d 100644 --- a/api_docs/kbn_deeplinks_shared.mdx +++ b/api_docs/kbn_deeplinks_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared title: "@kbn/deeplinks-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-shared plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared'] --- import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index edac257c81595..9ec9cc34c98b7 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics'] --- import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json'; diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx index 448cdfb6090cf..3d49804a57e0e 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools'] --- import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json'; diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx index eff8a1253ca9e..392fb09b15433 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 89f32381c0162..8892b12474a4c 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml'] --- import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index b454f4b823495..c6eef0acabbba 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index d701a3bc91445..d93a907e6f9bb 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 8cfc84a58182d..1986c32f1b154 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index ff24bb0a7a731..ae20b67a11f1f 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index 397fff043500f..cce6fe3b155e7 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index 9d0610eb9d6c7..d4f83ac589687 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -300,7 +300,7 @@ "label": "enterpriseSearch", "description": [], "signature": [ - "{ readonly aiSearchDoc: string; readonly aiSearchHelp: string; readonly apiKeys: string; readonly behavioralAnalytics: string; readonly behavioralAnalyticsCORS: string; readonly behavioralAnalyticsEvents: string; readonly buildConnector: string; readonly bulkApi: string; readonly configuration: string; readonly connectors: string; readonly connectorsClientDeploy: string; readonly connectorsMappings: string; readonly connectorsAzureBlobStorage: string; readonly connectorsBox: string; readonly connectorsClients: string; readonly connectorsConfluence: string; readonly connectorsContentExtraction: string; readonly connectorsDropbox: string; readonly connectorsGithub: string; readonly connectorsGoogleCloudStorage: string; readonly connectorsGoogleDrive: string; readonly connectorsGmail: string; readonly connectorsJira: string; readonly connectorsMicrosoftSQL: string; readonly connectorsMongoDB: string; readonly connectorsMySQL: string; readonly connectorsNative: string; readonly connectorsNetworkDrive: string; readonly connectorsNotion: string; readonly connectorsOneDrive: string; readonly connectorsOracle: string; readonly connectorsOutlook: string; readonly connectorsPostgreSQL: string; readonly connectorsRedis: string; readonly connectorsS3: string; readonly connectorsSalesforce: string; readonly connectorsServiceNow: string; readonly connectorsSharepoint: string; readonly connectorsSharepointOnline: string; readonly connectorsTeams: string; readonly connectorsSlack: string; readonly connectorsZoom: string; readonly crawlerExtractionRules: string; readonly crawlerManaging: string; readonly crawlerOverview: string; readonly deployTrainedModels: string; readonly documentLevelSecurity: string; readonly elser: string; readonly engines: string; readonly indexApi: string; readonly ingestionApis: string; readonly ingestPipelines: string; readonly knnSearch: string; readonly knnSearchCombine: string; readonly languageAnalyzers: string; readonly languageClients: string; readonly licenseManagement: string; readonly machineLearningStart: string; readonly mailService: string; readonly mlDocumentEnrichment: string; readonly searchApplicationsTemplates: string; readonly searchApplicationsSearchApi: string; readonly searchApplications: string; readonly searchApplicationsSearch: string; readonly searchLabs: string; readonly searchLabsRepo: string; readonly searchTemplates: string; readonly start: string; readonly supportedNlpModels: string; readonly syncRules: string; readonly syncRulesAdvanced: string; readonly trainedModels: string; readonly textEmbedding: string; readonly troubleshootSetup: string; readonly usersAccess: string; }" + "{ readonly aiSearchDoc: string; readonly aiSearchHelp: string; readonly apiKeys: string; readonly behavioralAnalytics: string; readonly behavioralAnalyticsCORS: string; readonly behavioralAnalyticsEvents: string; readonly buildConnector: string; readonly bulkApi: string; readonly configuration: string; readonly connectors: string; readonly connectorsClientDeploy: string; readonly connectorsMappings: string; readonly connectorsAzureBlobStorage: string; readonly connectorsBox: string; readonly connectorsClients: string; readonly connectorsConfluence: string; readonly connectorsContentExtraction: string; readonly connectorsDropbox: string; readonly connectorsGithub: string; readonly connectorsGoogleCloudStorage: string; readonly connectorsGoogleDrive: string; readonly connectorsGmail: string; readonly connectorsJira: string; readonly connectorsMicrosoftSQL: string; readonly connectorsMongoDB: string; readonly connectorsMySQL: string; readonly connectorsNative: string; readonly connectorsNetworkDrive: string; readonly connectorsNotion: string; readonly connectorsOneDrive: string; readonly connectorsOracle: string; readonly connectorsOutlook: string; readonly connectorsPostgreSQL: string; readonly connectorsRedis: string; readonly connectorsS3: string; readonly connectorsSalesforce: string; readonly connectorsServiceNow: string; readonly connectorsSharepoint: string; readonly connectorsSharepointOnline: string; readonly connectorsTeams: string; readonly connectorsSlack: string; readonly connectorsZoom: string; readonly crawlerExtractionRules: string; readonly crawlerManaging: string; readonly crawlerOverview: string; readonly deployTrainedModels: string; readonly documentLevelSecurity: string; readonly elser: string; readonly engines: string; readonly indexApi: string; readonly ingestionApis: string; readonly ingestPipelines: string; readonly knnSearch: string; readonly knnSearchCombine: string; readonly languageAnalyzers: string; readonly languageClients: string; readonly licenseManagement: string; readonly machineLearningStart: string; readonly playground: string; readonly mailService: string; readonly mlDocumentEnrichment: string; readonly searchApplicationsTemplates: string; readonly searchApplicationsSearchApi: string; readonly searchApplications: string; readonly searchApplicationsSearch: string; readonly searchLabs: string; readonly searchLabsRepo: string; readonly searchTemplates: string; readonly start: string; readonly supportedNlpModels: string; readonly syncRules: string; readonly syncRulesAdvanced: string; readonly trainedModels: string; readonly textEmbedding: string; readonly troubleshootSetup: string; readonly usersAccess: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 56f92937bdbaa..aa00fc60b8bbf 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index eded8dc2dbf00..8e99112b0087a 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index ba35e84525a6a..e3695ef29c5ff 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 34782198e6a64..0cd988a69ad42 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 3ce06696c4218..bbb0367472860 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx index e58bcace8fdcd..9cea7141133ad 100644 --- a/api_docs/kbn_elastic_agent_utils.mdx +++ b/api_docs/kbn_elastic_agent_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils title: "@kbn/elastic-agent-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-agent-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils'] --- import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index c864662806436..cd7f0f6d71b09 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index c598f80d79455..ba486cabf38f2 100644 --- a/api_docs/kbn_elastic_assistant_common.mdx +++ b/api_docs/kbn_elastic_assistant_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common title: "@kbn/elastic-assistant-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 830f9e0a2c825..e5323e9cd85e9 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index ba775a7d95348..0adec688d527e 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index 00ae5e2439961..b0c266a62093b 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index c55cebe65f6fa..37595d6249acd 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 17a156f3cd26f..9cef5c76ea35d 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index ecdcc8d888d11..6214dd18df301 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx index a9aaaf74b93b3..a7c73595a52a9 100644 --- a/api_docs/kbn_esql_ast.mdx +++ b/api_docs/kbn_esql_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast title: "@kbn/esql-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-ast plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast'] --- import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json'; diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx index 18fc0cfa8de0e..ffde42542170b 100644 --- a/api_docs/kbn_esql_utils.mdx +++ b/api_docs/kbn_esql_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils title: "@kbn/esql-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils'] --- import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json'; diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx index 8dc27cb036144..56b136a54efee 100644 --- a/api_docs/kbn_esql_validation_autocomplete.mdx +++ b/api_docs/kbn_esql_validation_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete title: "@kbn/esql-validation-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-validation-autocomplete plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete'] --- import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index 16684a50a767f..221f2c30cf6fb 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index 52324e1a996f0..bf27153c4e7c3 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index 157c6b64383cc..4269967973d1a 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 41fa205d2d1da..17b46004bf0a9 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx index aa4256a5784de..a03df66b77475 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils'] --- import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index 0c97db0cb317b..f92ab3a34c730 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx index 1da588f8aac3b..c8ba408daf619 100644 --- a/api_docs/kbn_formatters.mdx +++ b/api_docs/kbn_formatters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters title: "@kbn/formatters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/formatters plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters'] --- import kbnFormattersObj from './kbn_formatters.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index d4439ac32d846..feb8604fb3646 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index b3fa16b309ee2..491f6523e9529 100644 --- a/api_docs/kbn_ftr_common_functional_ui_services.mdx +++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services title: "@kbn/ftr-common-functional-ui-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-ui-services plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services'] --- import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 92026dff7d8b7..b12baf073d776 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx index f3a47754a579c..2c790f3da81c3 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index 69e89cffca504..f82a92b094589 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index b802f26c598d4..b9af074b2623b 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index d561e59a7d9df..0c906fb75ec19 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index aa3d2e3d7ad94..618d47ecfc65b 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index be34ef2475e0b..422683b953552 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 00f901d9ed76a..cd5168e84cf8a 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index 34630d59b21df..dc6a117c90263 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 659c504405d82..58510a059dbd6 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 2e572c3694a88..e03a3a95c2af1 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 6af5cac260535..586ac233fcddd 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_index_management.mdx b/api_docs/kbn_index_management.mdx index df5cd888d197e..335feb03d8ce3 100644 --- a/api_docs/kbn_index_management.mdx +++ b/api_docs/kbn_index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management title: "@kbn/index-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/index-management plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management'] --- import kbnIndexManagementObj from './kbn_index_management.devdocs.json'; diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx index d2d9af639ee12..2c2fa671e64b8 100644 --- a/api_docs/kbn_inference_integration_flyout.mdx +++ b/api_docs/kbn_inference_integration_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout title: "@kbn/inference_integration_flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/inference_integration_flyout plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout'] --- import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index 7f68061da792f..be091dc5f9592 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge'] --- import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index 5e08def8a30a8..4bbb15fbab069 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 23c058b227d70..63aadc04cedef 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx index 76a3d0efd0e92..8ee70f160a430 100644 --- a/api_docs/kbn_ipynb.mdx +++ b/api_docs/kbn_ipynb.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ipynb title: "@kbn/ipynb" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ipynb plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb'] --- import kbnIpynbObj from './kbn_ipynb.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 2c2825b3fefbe..9fda234b233b1 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 91b60022c45ad..87757e0894797 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 8fcbda9d0e98c..d224f04cee432 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 72b0bfb24c21c..dbb2f32684b5a 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 621190c0a0899..cbc138f89632a 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index 1e222ce4ae08e..9e674b89458f5 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx index 35981cd1b57be..5d8d9f7b87355 100644 --- a/api_docs/kbn_lens_formula_docs.mdx +++ b/api_docs/kbn_lens_formula_docs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs title: "@kbn/lens-formula-docs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-formula-docs plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs'] --- import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 967301c3f398b..f5ccfb3a64916 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 101f96d3569f6..943b10511f5f2 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx index b7bcfd7b29b3e..d7d3b9f8acd5f 100644 --- a/api_docs/kbn_managed_content_badge.mdx +++ b/api_docs/kbn_managed_content_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge title: "@kbn/managed-content-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-content-badge plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge'] --- import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index f1db6ad2c0333..aed24d67d0dd7 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx index 5edf8f887fc28..96bc1a86f86f4 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation'] --- import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json'; diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx index c982c5d9ce061..d04838e4938f2 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index e58b4a5bf902c..1b87bebc08071 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category'] --- import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx index 64e31d89da16a..4feefc373b08a 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 8a8d7a529bb3c..3c96ca74a3677 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row'] --- import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx index ade3c378503c7..8761d42f06fb1 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form'] --- import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json'; diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx index 3b7be2bdc48dd..09be3f7fd6aa2 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index 4d0c91ac31406..b444474169642 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index 03fa36775e70b..73454f0d95f92 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index dd45829c38ab7..212bbd53d98f0 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index 0e04e1480d4b1..e7407446f348e 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index 2198345472c4b..416b78095c297 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 07e296b86e9de..3257f7b33a841 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx index 7c38534e2b476..d153e5180f408 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 7eba069013be2..d79b2b25cf817 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx index 4a19d09c3efca..afdea3fb155b5 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx index c0c5f9ac53c88..3544adf2fd455 100644 --- a/api_docs/kbn_ml_cancellable_search.mdx +++ b/api_docs/kbn_ml_cancellable_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search title: "@kbn/ml-cancellable-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-cancellable-search plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search'] --- import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index f3c466d5d6d2c..a90ce9462477d 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator'] --- import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json'; diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx index d907a7e6fe692..f110682ad006c 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test'] --- import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json'; diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx index 36b2638a87bf2..2fe73be5d159a 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index 9d995f1c03e9f..4f942927bbef3 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index fa1a2a4b7cde2..961d114abd911 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx index 83df316c4f5bb..33e0bc1be1e9b 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils'] --- import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx index 3b67e26891a27..d0a9aaaad49ca 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index ae4820e64aaf4..6ce5cfc9d18e4 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 0be1fd3a86799..55324c9a47279 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index caaee52ecbe5e..3ccdafee6cd1b 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx index 610e4cfe322f7..b57b0e60c258d 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme'] --- import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 70fefcf97ea3d..ea5d63ace1ad0 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index f1c48211d33db..ceb4129264fb9 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx index a6576a39a5201..f85437c7b9603 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 8bf32d294ce64..802f8771d0eca 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx index 4bc6e1997bf5a..3cedb6813fc24 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils'] --- import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 2e551653edd48..88d561303257c 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx index d35edfb945af5..0ad1e1c9bc595 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils'] --- import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index c8aec49e6e075..1841f3cbd924d 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx index 640889e5735c4..d41cf9a3754d2 100644 --- a/api_docs/kbn_ml_time_buckets.mdx +++ b/api_docs/kbn_ml_time_buckets.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets title: "@kbn/ml-time-buckets" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-time-buckets plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets'] --- import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index a4fb8b2229ed4..b2190a02d6998 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx index 01772aa46a07c..cd8a27e6a13fa 100644 --- a/api_docs/kbn_ml_ui_actions.mdx +++ b/api_docs/kbn_ml_ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions title: "@kbn/ml-ui-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-ui-actions plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions'] --- import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 5021c91ee4bf1..53daec43d0de5 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx index f71ca87a7a4ae..3ac8724212c4d 100644 --- a/api_docs/kbn_mock_idp_utils.mdx +++ b/api_docs/kbn_mock_idp_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils title: "@kbn/mock-idp-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mock-idp-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils'] --- import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 5f6a285c3e3fa..dc526a833aa84 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 7df08a843f52d..170ac463081ef 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index 24fdd4abbbfd9..2252db0c70069 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index e3ae4c5318f7f..62787b05194fe 100644 --- a/api_docs/kbn_observability_alerting_test_data.mdx +++ b/api_docs/kbn_observability_alerting_test_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data title: "@kbn/observability-alerting-test-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alerting-test-data plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data'] --- import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json'; diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx index fa5d08d135c0e..50aad51ed4c49 100644 --- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx +++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util title: "@kbn/observability-get-padded-alert-time-range-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util'] --- import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json'; diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx index a5eac2acc3884..09b41b8b85d85 100644 --- a/api_docs/kbn_openapi_bundler.mdx +++ b/api_docs/kbn_openapi_bundler.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler title: "@kbn/openapi-bundler" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-bundler plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler'] --- import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index f6bea9f83ca8e..d50914bb09e8d 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 704979afc4a71..ad16f66198712 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index 120250aac9a0b..b63f19fc83981 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index 46c09b2a4b5a2..a2d3d1a3c4895 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx index 53588de2a14a7..22bdea0d5b08f 100644 --- a/api_docs/kbn_panel_loader.mdx +++ b/api_docs/kbn_panel_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader title: "@kbn/panel-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/panel-loader plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader'] --- import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 67379a7ed72b0..a40273499006c 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx index acea3780d532c..7418d6b3bdecf 100644 --- a/api_docs/kbn_plugin_check.mdx +++ b/api_docs/kbn_plugin_check.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check title: "@kbn/plugin-check" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-check plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check'] --- import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index ca55595a840a1..b2ee69a7bec27 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 8972f7de27055..3514d0f1556ce 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx index 27f6c03869dd4..661b5dcff51e2 100644 --- a/api_docs/kbn_presentation_containers.mdx +++ b/api_docs/kbn_presentation_containers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers title: "@kbn/presentation-containers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-containers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] --- import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json'; diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx index 2e6071bac78e9..4f4d4dbc1782f 100644 --- a/api_docs/kbn_presentation_publishing.mdx +++ b/api_docs/kbn_presentation_publishing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing title: "@kbn/presentation-publishing" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-publishing plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing'] --- import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 7026ead4b7c8c..e790fc39705fb 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index 0363a385cf7b1..7e0d2c0b0c592 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling'] --- import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index a99dad3cda390..85130fa423398 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index 05f498fae1e58..bbc78e668fc61 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common'] --- import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx index 2fcc8b2fa5737..6718701b33c9e 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render'] --- import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx index 9ce7dc7b7d85d..f398ec9013544 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root'] --- import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx index 477fce4a8f6d0..31649d75be30b 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled'] --- import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx index 574df4c77cb79..04b9664fa445c 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme'] --- import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx index 49416d988ecca..24416d7474f13 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 5b5f6ecbae873..ebd71ace440bf 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 91767bfaf5b0e..8284e418530d5 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 2187d7bf0d58d..d91c7ba39bff9 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 05906308ccb12..e52f522aa4955 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx index 44dfcd3bccac2..21350a2f4ec50 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx index 00d6700c162f6..db334115dd640 100644 --- a/api_docs/kbn_reporting_csv_share_panel.mdx +++ b/api_docs/kbn_reporting_csv_share_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel title: "@kbn/reporting-csv-share-panel" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-csv-share-panel plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel'] --- import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx index a493b26d847f0..f646136f3d493 100644 --- a/api_docs/kbn_reporting_export_types_csv.mdx +++ b/api_docs/kbn_reporting_export_types_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv title: "@kbn/reporting-export-types-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv'] --- import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx index 934bde7da0d82..6d2b54679edea 100644 --- a/api_docs/kbn_reporting_export_types_csv_common.mdx +++ b/api_docs/kbn_reporting_export_types_csv_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common title: "@kbn/reporting-export-types-csv-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common'] --- import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx index 34e2fc33bc059..280e16ce27497 100644 --- a/api_docs/kbn_reporting_export_types_pdf.mdx +++ b/api_docs/kbn_reporting_export_types_pdf.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf title: "@kbn/reporting-export-types-pdf" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf'] --- import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx index 37a7a05b963d1..c0dc57141f65e 100644 --- a/api_docs/kbn_reporting_export_types_pdf_common.mdx +++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common title: "@kbn/reporting-export-types-pdf-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common'] --- import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx index 9abfeaf8f94c4..b349c8be19966 100644 --- a/api_docs/kbn_reporting_export_types_png.mdx +++ b/api_docs/kbn_reporting_export_types_png.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png title: "@kbn/reporting-export-types-png" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png'] --- import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx index ee085779e6fd5..8fa06e7ca4177 100644 --- a/api_docs/kbn_reporting_export_types_png_common.mdx +++ b/api_docs/kbn_reporting_export_types_png_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common title: "@kbn/reporting-export-types-png-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common'] --- import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx index 1dce4e400fb3f..5d1f5cf9bbd29 100644 --- a/api_docs/kbn_reporting_mocks_server.mdx +++ b/api_docs/kbn_reporting_mocks_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server title: "@kbn/reporting-mocks-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-mocks-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server'] --- import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json'; diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx index b522c0dd349e1..614c8c02953be 100644 --- a/api_docs/kbn_reporting_public.mdx +++ b/api_docs/kbn_reporting_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public title: "@kbn/reporting-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-public plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public'] --- import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json'; diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx index 9f15f082f3b3e..6b8173fcfdc6f 100644 --- a/api_docs/kbn_reporting_server.mdx +++ b/api_docs/kbn_reporting_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server title: "@kbn/reporting-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server'] --- import kbnReportingServerObj from './kbn_reporting_server.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index 58f055d237c67..e6745d785eb15 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 5a4723b26c30e..f8b1fb95a236a 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx index 39f466d6d1bad..1ac34e2206da1 100644 --- a/api_docs/kbn_router_to_openapispec.mdx +++ b/api_docs/kbn_router_to_openapispec.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec title: "@kbn/router-to-openapispec" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-to-openapispec plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec'] --- import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json'; diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx index d308921e35a79..a2dd584c4bfaf 100644 --- a/api_docs/kbn_router_utils.mdx +++ b/api_docs/kbn_router_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils title: "@kbn/router-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils'] --- import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json'; diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx index b8affccb78323..9d781d3881290 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 2f4722b7c53d2..3d0a282f6369c 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx index 0da4142fce3ba..b48c1ea97dbb9 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index 610be06e525d2..bdfd4c0518376 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 10f24af23aa94..2bd098cc95d0c 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx index 6e2fe30c50db9..203faba8a4f66 100644 --- a/api_docs/kbn_search_errors.mdx +++ b/api_docs/kbn_search_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors title: "@kbn/search-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-errors plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors'] --- import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json'; diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx index fdbf74e35f801..36070f154c148 100644 --- a/api_docs/kbn_search_index_documents.mdx +++ b/api_docs/kbn_search_index_documents.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents title: "@kbn/search-index-documents" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-index-documents plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents'] --- import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json'; diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index b297c9363607e..f3d95afeea1f9 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx index cb15e584cccc7..15ec4e90fd12c 100644 --- a/api_docs/kbn_security_hardening.mdx +++ b/api_docs/kbn_security_hardening.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening title: "@kbn/security-hardening" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-hardening plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening'] --- import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx index d560a5a72c214..388ba057ac16b 100644 --- a/api_docs/kbn_security_plugin_types_common.mdx +++ b/api_docs/kbn_security_plugin_types_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common title: "@kbn/security-plugin-types-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-common plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common'] --- import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx index 3902690ecee79..0e7a4ed615c94 100644 --- a/api_docs/kbn_security_plugin_types_public.mdx +++ b/api_docs/kbn_security_plugin_types_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public title: "@kbn/security-plugin-types-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-public plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public'] --- import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx index 015db0d76cf77..0f4a4baa9e5c3 100644 --- a/api_docs/kbn_security_plugin_types_server.mdx +++ b/api_docs/kbn_security_plugin_types_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server title: "@kbn/security-plugin-types-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-server plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server'] --- import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index f12e9b6201a82..826f884424a36 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index 1934efbf8b922..ca62f797cc067 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation'] --- import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index e5d1e1bc01aa8..8c363ca19171e 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index c1c9536cd085a..a0bc3eef0123f 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index f0e9d19742ee0..8690f820548b0 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 9789427b1fa13..05be1ac6b4431 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table'] --- import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index be82e2fcf849f..a66b1e398fc4e 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index d2fa8c47fb108..b9ce0c7cfb874 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index e70deaee8bd2f..568f8aa841d36 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 619bf18ba6c91..54d8ce79da466 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 042bc7346f77f..6ba9ad3d78d96 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index e3e8197f00bdf..5b4ea9e66cfd3 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index adf6979899b83..fa788c120c1d2 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index 51f1a13b2e208..e50f718991799 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 9255ff74f00c7..5dc6a8ca5ad6c 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index a319386b18fc8..f4bbaaca6deb7 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 498cebabac5ab..03d33ea6c0576 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index d092a903a5f88..8b741b452ad6a 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index fe7989a71f56c..e114208a3cf68 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index a2dfb8db6b81f..9dd927b8e2c55 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index a286558d1ecf7..a6a6311baac5d 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index 1b7adda85adc3..646fc85dcc516 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 0f089b83cd549..7de2e8d0bf5d6 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index 3f2d3d273b8b7..f21bec0400267 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index a93fc36b133ac..df6867453dfd2 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings'] --- import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx index 21a711a48a4fd..c52f5d08f5d22 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings'] --- import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx index 9d4c1be6afabc..f6165ecf7b45e 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher'] --- import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json'; diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx index d48f4578bc9dc..92c144e10f0eb 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings'] --- import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx index 6eab7a77525f0..a6efc395eab0b 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings'] --- import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx index 2f1713c2b52d6..0f80d4c7777f6 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config'] --- import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index d481dc532bcbc..30eceaf6319fa 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 2dc9cf7cb8fa0..980da6c5b7640 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index eeb8477238ea0..200ffc30a4f8c 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 0a424efd61d8a..5b25f0ae1f668 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index 0abb26d7e00ca..d5f7bfc4c0665 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 2e772ecba2d68..4856c9984b94b 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index 41ea86a8f0094..1d322fe65e72f 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx index ec243de7e47b9..995525179de5d 100644 --- a/api_docs/kbn_shared_ux_error_boundary.mdx +++ b/api_docs/kbn_shared_ux_error_boundary.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary title: "@kbn/shared-ux-error-boundary" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-error-boundary plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary'] --- import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 92b8a2a3600da..80ba71f574725 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 31107113b8ba4..1c61558053801 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index b5c2b857db2e6..187d49dbf558f 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index fadefd7703b9e..97ae9f724bcb1 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 8d5b208e2953b..a13cb87ed598e 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 093b46648d30d..368eecd6285e8 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 4a0988334c25d..e60c59f3ad72c 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index a1d54e659240f..519b67c25e4c3 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index 53c138a5c29aa..e083e00adfa74 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 6bc6b7502c5e5..12847b693ed15 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index 19c5726115850..d4fa3b798924f 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index 61d4c4c56fe25..cb5b61f759cd3 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index f439d4def7389..0bb46278a69be 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index e669350239e56..85a943301b7ec 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 0df296db05512..1d9fab180d78f 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index bdb66a1ac2a3d..f5145d8702291 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index 574be1d628f26..8d2e8b6f4e2c4 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index e3dde582db15d..db0472879de68 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 9f5f6afdee546..35c2111fc3a93 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index 2b6a00cb60cbe..773ab1f17ba30 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index 7aec7a4789802..1e82b53a37c4b 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index dade6f6378804..4d999f4026ad3 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index 50f0cabc21839..997d23cb52f3d 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 41491dd310e16..53510078c841d 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index d3ad855385093..70b028078d06f 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index c17f96045a05c..84fa04865477a 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 03245ec404011..3217ebd50b66c 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index bb7121dc2e800..fef28daed9e7e 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index db97930270f67..1c85c7df350d1 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index b02a6ae171e91..07aaf3d1c0aaa 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx index 7583549741a62..acc62ad844f10 100644 --- a/api_docs/kbn_shared_ux_tabbed_modal.mdx +++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal title: "@kbn/shared-ux-tabbed-modal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-tabbed-modal plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal'] --- import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 98916b33d1e30..e07d03a05a6a2 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 7494c29634d1b..db9d8f9c28e6d 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_solution_nav_es.mdx b/api_docs/kbn_solution_nav_es.mdx index d28ab17401e0c..7a328f5d4362e 100644 --- a/api_docs/kbn_solution_nav_es.mdx +++ b/api_docs/kbn_solution_nav_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-es title: "@kbn/solution-nav-es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/solution-nav-es plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-es'] --- import kbnSolutionNavEsObj from './kbn_solution_nav_es.devdocs.json'; diff --git a/api_docs/kbn_solution_nav_oblt.mdx b/api_docs/kbn_solution_nav_oblt.mdx index 1dbcba988e50c..4a849649ca053 100644 --- a/api_docs/kbn_solution_nav_oblt.mdx +++ b/api_docs/kbn_solution_nav_oblt.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-oblt title: "@kbn/solution-nav-oblt" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/solution-nav-oblt plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-oblt'] --- import kbnSolutionNavObltObj from './kbn_solution_nav_oblt.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index d06bd688e0c46..3aa7659f95db4 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx index 05586426c07b1..97039b49e6f21 100644 --- a/api_docs/kbn_sort_predicates.mdx +++ b/api_docs/kbn_sort_predicates.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates title: "@kbn/sort-predicates" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-predicates plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates'] --- import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json'; diff --git a/api_docs/kbn_std.devdocs.json b/api_docs/kbn_std.devdocs.json index 36202fda05a52..b92d1a21b2c29 100644 --- a/api_docs/kbn_std.devdocs.json +++ b/api_docs/kbn_std.devdocs.json @@ -934,6 +934,56 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/std", + "id": "def-common.isInternalURL", + "type": "Function", + "tags": [], + "label": "isInternalURL", + "description": [ + "\nDetermine if url is outside of this Kibana install." + ], + "signature": [ + "(url: string, basePath: string) => boolean | undefined" + ], + "path": "packages/kbn-std/src/is_internal_url.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/std", + "id": "def-common.isInternalURL.$1", + "type": "string", + "tags": [], + "label": "url", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-std/src/is_internal_url.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/std", + "id": "def-common.isInternalURL.$2", + "type": "string", + "tags": [], + "label": "basePath", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-std/src/is_internal_url.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/std", "id": "def-common.isPromise", @@ -1488,6 +1538,71 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/std", + "id": "def-common.parseNextURL", + "type": "Function", + "tags": [], + "label": "parseNextURL", + "description": [ + "\nParse the url value from query param. By default\n\nBy default query param is set to next." + ], + "signature": [ + "(href: string, basePath: string, nextUrlQueryParam: string) => string" + ], + "path": "packages/kbn-std/src/parse_next_url.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/std", + "id": "def-common.parseNextURL.$1", + "type": "string", + "tags": [], + "label": "href", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-std/src/parse_next_url.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/std", + "id": "def-common.parseNextURL.$2", + "type": "string", + "tags": [], + "label": "basePath", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-std/src/parse_next_url.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/std", + "id": "def-common.parseNextURL.$3", + "type": "string", + "tags": [], + "label": "nextUrlQueryParam", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-std/src/parse_next_url.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/std", "id": "def-common.pick", diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 278c2f4214ffa..0150a14b493fb 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 104 | 2 | 67 | 1 | +| 111 | 2 | 72 | 1 | ## Common diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 22704896e76f5..b392c95f0e0b5 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index a878c659803db..e4172673c1429 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 0b0595eb4e69c..a30b07b4aaae4 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 23a915044145b..2628adfd4f610 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx index 7363703ff865a..ed347b9acf915 100644 --- a/api_docs/kbn_test_eui_helpers.mdx +++ b/api_docs/kbn_test_eui_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers title: "@kbn/test-eui-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-eui-helpers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers'] --- import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 5bf78ac1cd341..2e8943ef227cb 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index c7b47c42d0982..54d47c38a2be2 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index b9d4bc060a018..ce8a421b147fb 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx index 47ca67a882061..16c07b2ef8f54 100644 --- a/api_docs/kbn_timerange.mdx +++ b/api_docs/kbn_timerange.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange title: "@kbn/timerange" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/timerange plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange'] --- import kbnTimerangeObj from './kbn_timerange.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 16873a2da41bc..3f97f465b4de5 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx index 6ba884470e629..f7acef4bfb9c3 100644 --- a/api_docs/kbn_triggers_actions_ui_types.mdx +++ b/api_docs/kbn_triggers_actions_ui_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types title: "@kbn/triggers-actions-ui-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/triggers-actions-ui-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types'] --- import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 8303046f5c52d..2aef99077f008 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index e846e99c3d13c..815d2bfa36b62 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index dfef32b93ec6f..bdde3ed98110a 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index f5c6d3e68d431..826e79e66fd25 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index b576daedba5f6..50d01084281f5 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 2c5aafe995949..33160bce799d9 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json'; diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index e0c2184d27d3c..e5d08401e8fea 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 54a407485f2d2..5fcf1bfbb7db3 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx index d43ff40d40728..e7c537ad9d76d 100644 --- a/api_docs/kbn_unsaved_changes_badge.mdx +++ b/api_docs/kbn_unsaved_changes_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge title: "@kbn/unsaved-changes-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unsaved-changes-badge plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 49821cd9d2721..0840d75eefc96 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise'] --- import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index b5d37df583564..ef07b749d9635 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index e5fe640374e9f..ec53c936d3a26 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index 455ad7dde0094..bb0a2dd42b0a0 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 09b2ad7a21843..854d3ad9a45cf 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index 78c9d31c96994..3bdf77b3414a8 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx index b37f0a3fd183f..6c996d9f087ed 100644 --- a/api_docs/kbn_visualization_utils.mdx +++ b/api_docs/kbn_visualization_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils title: "@kbn/visualization-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils'] --- import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index 4192ef3e46450..1269823bde005 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 52efc37489cc3..e69c51ef125a9 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index 3508662be4ea5..2c8d6a7499eb1 100644 --- a/api_docs/kbn_zod_helpers.mdx +++ b/api_docs/kbn_zod_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers title: "@kbn/zod-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/zod-helpers plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers'] --- import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index c4755dbb1014f..bad93d4b2797e 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 29b6ffc269b64..eeb69d3e1a96a 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 1c3054ed62d5d..14cb41ffe26ab 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index d0e8c30efbb0f..ea4f6a9d05610 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 4570b4f18977a..83b1038ed65dc 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 37642441c1884..c18d704388da8 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 6387b12d545f4..2b7f2b915bc68 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 5f8e5b5f547e6..0a1d9c1c2b15b 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/links.mdx b/api_docs/links.mdx index 1782a56a4e6ff..7941d098593c8 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index b2cee3b4fcc25..ce609a9e6646e 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx index 89d1dd18649d5..6fee5aa2ad7ad 100644 --- a/api_docs/logs_explorer.mdx +++ b/api_docs/logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer title: "logsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logsExplorer plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer'] --- import logsExplorerObj from './logs_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index 175a93382c2b3..91a0bb3550bea 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index fa5a2043989fe..bd9c15dc16cda 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 961c90b160a97..66e31ee61b2ba 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index 07ed7950dc9d0..b911a0689fa00 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index be14928a14478..727cca5d62fce 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index d6d69644627c7..2930e5921f8c6 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index bc86517cdde94..0b07a10ab6dc3 100644 --- a/api_docs/mock_idp_plugin.mdx +++ b/api_docs/mock_idp_plugin.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin title: "mockIdpPlugin" image: https://source.unsplash.com/400x175/?github description: API docs for the mockIdpPlugin plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin'] --- import mockIdpPluginObj from './mock_idp_plugin.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index f3d38d23153c1..c3278a566916e 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index e8b2da792a585..07c354d1e062b 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index cdca20b896059..fcdb03dbc3cd2 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index a01ca727e82a6..c43b991193244 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx index be563763fe2ac..da6607b897c9f 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage'] --- import noDataPageObj from './no_data_page.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index 427e06596b7a9..647c5189da88e 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index ba26d3e716dcb..e5afa252618a5 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant.devdocs.json b/api_docs/observability_a_i_assistant.devdocs.json index 9d02c4d1d2cc5..4b837e5a53bbb 100644 --- a/api_docs/observability_a_i_assistant.devdocs.json +++ b/api_docs/observability_a_i_assistant.devdocs.json @@ -747,6 +747,54 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "observabilityAIAssistant", + "id": "def-public.useGenAIConnectorsWithoutContext", + "type": "Function", + "tags": [], + "label": "useGenAIConnectorsWithoutContext", + "description": [], + "signature": [ + "(assistant: ", + { + "pluginId": "observabilityAIAssistant", + "scope": "public", + "docId": "kibObservabilityAIAssistantPluginApi", + "section": "def-public.ObservabilityAIAssistantService", + "text": "ObservabilityAIAssistantService" + }, + ") => ", + "UseGenAIConnectorsResult" + ], + "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_genai_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityAIAssistant", + "id": "def-public.useGenAIConnectorsWithoutContext.$1", + "type": "Object", + "tags": [], + "label": "assistant", + "description": [], + "signature": [ + { + "pluginId": "observabilityAIAssistant", + "scope": "public", + "docId": "kibObservabilityAIAssistantPluginApi", + "section": "def-public.ObservabilityAIAssistantService", + "text": "ObservabilityAIAssistantService" + } + ], + "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_genai_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false } ], "interfaces": [ diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index ee20a72fe7767..cfe2dc7c24064 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 251 | 1 | 249 | 25 | +| 253 | 1 | 251 | 25 | ## Client diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx index f2d8d299f0f16..7462476d32e3c 100644 --- a/api_docs/observability_a_i_assistant_app.mdx +++ b/api_docs/observability_a_i_assistant_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistantApp title: "observabilityAIAssistantApp" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistantApp plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistantApp'] --- import observabilityAIAssistantAppObj from './observability_a_i_assistant_app.devdocs.json'; diff --git a/api_docs/observability_ai_assistant_management.mdx b/api_docs/observability_ai_assistant_management.mdx index 507a3ba8bee8c..4496d3df5cf76 100644 --- a/api_docs/observability_ai_assistant_management.mdx +++ b/api_docs/observability_ai_assistant_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAiAssistantManagement title: "observabilityAiAssistantManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAiAssistantManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAiAssistantManagement'] --- import observabilityAiAssistantManagementObj from './observability_ai_assistant_management.devdocs.json'; diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx index 4c2d25da3a41e..b6377b0711794 100644 --- a/api_docs/observability_logs_explorer.mdx +++ b/api_docs/observability_logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer title: "observabilityLogsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogsExplorer plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer'] --- import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.devdocs.json b/api_docs/observability_onboarding.devdocs.json index b6c82b480f5a8..b5d8d41f255cf 100644 --- a/api_docs/observability_onboarding.devdocs.json +++ b/api_docs/observability_onboarding.devdocs.json @@ -116,6 +116,46 @@ "path": "x-pack/plugins/observability_solution/observability_onboarding/public/index.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observabilityOnboarding", + "id": "def-public.ObservabilityOnboardingAppServices.docLinks", + "type": "Object", + "tags": [], + "label": "docLinks", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-doc-links-browser", + "scope": "common", + "docId": "kibKbnCoreDocLinksBrowserPluginApi", + "section": "def-common.DocLinksStart", + "text": "DocLinksStart" + } + ], + "path": "x-pack/plugins/observability_solution/observability_onboarding/public/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observabilityOnboarding", + "id": "def-public.ObservabilityOnboardingAppServices.chrome", + "type": "Object", + "tags": [], + "label": "chrome", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeStart", + "text": "ChromeStart" + } + ], + "path": "x-pack/plugins/observability_solution/observability_onboarding/public/index.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index 55b469ceef61c..5f9e528f77bb2 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 14 | 0 | 14 | 0 | +| 16 | 0 | 16 | 0 | ## Client diff --git a/api_docs/observability_shared.devdocs.json b/api_docs/observability_shared.devdocs.json index 732405642f4b5..b5d906a244926 100644 --- a/api_docs/observability_shared.devdocs.json +++ b/api_docs/observability_shared.devdocs.json @@ -3273,6 +3273,36 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-public.ASSET_DETAILS_FLYOUT_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "ASSET_DETAILS_FLYOUT_LOCATOR_ID", + "description": [], + "signature": [ + "\"ASSET_DETAILS_FLYOUT_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_flyout_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "observabilityShared", + "id": "def-public.ASSET_DETAILS_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "ASSET_DETAILS_LOCATOR_ID", + "description": [], + "signature": [ + "\"ASSET_DETAILS_LOCATOR\"" + ], + "path": "x-pack/plugins/observability_solution/observability_shared/public/locators/infra/asset_details_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-public.casesFeatureId", diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index 9c8b479a11b16..cc118c353a48d 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observ | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 346 | 1 | 341 | 22 | +| 348 | 1 | 343 | 22 | ## Client diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index de86cdab505e8..c8d5db8dd0fd5 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index fdc80246bdcfb..a916a8d0b3c72 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab'] --- import painlessLabObj from './painless_lab.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index b2e1754b67af8..41ca99cb5c9fb 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 47411 | 240 | 36072 | 1851 | +| 47428 | 240 | 36084 | 1851 | ## Plugin Directory @@ -56,7 +56,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 271 | 0 | 252 | 1 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 108 | 0 | 105 | 12 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 54 | 0 | 51 | 0 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3287 | 31 | 2621 | 23 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3290 | 31 | 2621 | 23 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 35 | 0 | 25 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Reusable data view field editor across Kibana | 72 | 0 | 33 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data view management app | 2 | 0 | 2 | 0 | @@ -68,7 +68,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 35 | 0 | 33 | 2 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | APIs used to assess the quality of data in Elasticsearch indexes | 2 | 0 | 0 | 0 | | | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | Server APIs for the Elastic AI Assistant | 45 | 0 | 31 | 0 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 559 | 1 | 453 | 8 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 560 | 1 | 454 | 8 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Extends embeddable plugin with more functionality | 19 | 0 | 19 | 2 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides encryption and decryption utilities for saved objects containing sensitive information. | 53 | 0 | 46 | 1 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Adds dashboards for discovering and managing Enterprise Search products. | 5 | 0 | 5 | 0 | @@ -140,12 +140,12 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 3 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 678 | 2 | 669 | 13 | -| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 251 | 1 | 249 | 25 | +| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 253 | 1 | 251 | 25 | | | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin exposes and registers observability log consumption features. | 21 | 0 | 21 | 1 | -| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 14 | 0 | 14 | 0 | -| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 346 | 1 | 341 | 22 | +| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 16 | 0 | 16 | 0 | +| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 348 | 1 | 343 | 22 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 23 | 0 | 23 | 7 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 2 | 0 | 2 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds a standardized Presentation panel which allows any forward ref component to interface with various Kibana systems. | 11 | 0 | 11 | 4 | @@ -695,7 +695,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 20 | 0 | 12 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 4 | 0 | 4 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 104 | 2 | 67 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 111 | 2 | 72 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 2 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 41 | 2 | 21 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 5 | 1 | diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx index 4e5e7b04e3c76..e1c347247dc08 100644 --- a/api_docs/presentation_panel.mdx +++ b/api_docs/presentation_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel title: "presentationPanel" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationPanel plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel'] --- import presentationPanelObj from './presentation_panel.devdocs.json'; diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 384d80f43c82e..5ba47ca3f8b39 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index 71f28edc9e429..30223b9b8b386 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx index ddf3bda4f3f13..8a7059447a774 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess'] --- import profilingDataAccessObj from './profiling_data_access.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index e303079a3cc7d..f33bc9526e01c 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index cf0eb6dd94151..3bfffcff0a671 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 7c194f1d4a86f..51359229cd989 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 3143ea1112e92..147d1ff4b17e7 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 43e98bb1f8515..eeebd13eb952a 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 0712153e09f06..2493f231c4e9e 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index ea7fcd35f8205..0ac3b88491fd5 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index fac22a46fe98f..88bd0f315fc72 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index f48fd57127cb4..8335c5523c4be 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 915363cd8f6bf..1dbd2bdd9a822 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 9b858df0d1ab5..0a399d7726750 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 7bb0060dd133b..d9d93cf289cbf 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 9139c6996acec..63a05fadbbc22 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx index 8fd2a888ea33a..50234bd0158ad 100644 --- a/api_docs/search_connectors.mdx +++ b/api_docs/search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchConnectors title: "searchConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the searchConnectors plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors'] --- import searchConnectorsObj from './search_connectors.devdocs.json'; diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx index cfba252425311..8bd1c9928ef70 100644 --- a/api_docs/search_notebooks.mdx +++ b/api_docs/search_notebooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchNotebooks title: "searchNotebooks" image: https://source.unsplash.com/400x175/?github description: API docs for the searchNotebooks plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks'] --- import searchNotebooksObj from './search_notebooks.devdocs.json'; diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx index 474e9aa2d4cb9..0734255c6dc3c 100644 --- a/api_docs/search_playground.mdx +++ b/api_docs/search_playground.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchPlayground title: "searchPlayground" image: https://source.unsplash.com/400x175/?github description: API docs for the searchPlayground plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground'] --- import searchPlaygroundObj from './search_playground.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index e8a4efee4b987..bc5281fe1c98b 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index eb49639aa8d75..37fb9b4540fe2 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -485,7 +485,7 @@ "\nExperimental flag needed to enable the link" ], "signature": [ - "\"assistantAlertsInsights\" | \"assistantModelEvaluation\" | \"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"agentStatusClientEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"expandableEventFlyoutEnabled\" | \"expandableTimelineFlyoutEnabled\" | \"alertsPageFiltersEnabled\" | \"newUserDetailsFlyout\" | \"newUserDetailsFlyoutManagedUser\" | \"newHostDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"alertSuppressionForNewTermsRuleEnabled\" | \"alertSuppressionForNonSequenceEqlRuleEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineEnabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"perFieldPrebuiltRulesDiffingEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"aiAssistantFlyoutMode\" | \"valueListItemsModalEnabled\" | undefined" + "\"assistantAlertsInsights\" | \"assistantModelEvaluation\" | \"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"agentStatusClientEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"expandableEventFlyoutEnabled\" | \"expandableTimelineFlyoutEnabled\" | \"alertsPageFiltersEnabled\" | \"newUserDetailsFlyout\" | \"newUserDetailsFlyoutManagedUser\" | \"newHostDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"alertSuppressionForNewTermsRuleEnabled\" | \"alertSuppressionForNonSequenceEqlRuleEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineEnabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"perFieldPrebuiltRulesDiffingEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"aiAssistantFlyoutMode\" | \"valueListItemsModalEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -565,7 +565,7 @@ "\nExperimental flag needed to disable the link. Opposite of experimentalKey" ], "signature": [ - "\"assistantAlertsInsights\" | \"assistantModelEvaluation\" | \"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"agentStatusClientEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"expandableEventFlyoutEnabled\" | \"expandableTimelineFlyoutEnabled\" | \"alertsPageFiltersEnabled\" | \"newUserDetailsFlyout\" | \"newUserDetailsFlyoutManagedUser\" | \"newHostDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"alertSuppressionForNewTermsRuleEnabled\" | \"alertSuppressionForNonSequenceEqlRuleEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineEnabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"perFieldPrebuiltRulesDiffingEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"aiAssistantFlyoutMode\" | \"valueListItemsModalEnabled\" | undefined" + "\"assistantAlertsInsights\" | \"assistantModelEvaluation\" | \"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"automatedProcessActionsEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"responseActionsSentinelOneV2Enabled\" | \"responseActionsSentinelOneGetFileEnabled\" | \"agentStatusClientEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"expandableEventFlyoutEnabled\" | \"expandableTimelineFlyoutEnabled\" | \"alertsPageFiltersEnabled\" | \"newUserDetailsFlyout\" | \"newUserDetailsFlyoutManagedUser\" | \"newHostDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"alertSuppressionForNewTermsRuleEnabled\" | \"alertSuppressionForNonSequenceEqlRuleEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"crowdstrikeDataInAnalyzerEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | \"unifiedComponentsInTimelineEnabled\" | \"analyzerDatePickersAndSourcererDisabled\" | \"perFieldPrebuiltRulesDiffingEnabled\" | \"malwareOnWriteScanOptionAvailable\" | \"aiAssistantFlyoutMode\" | \"valueListItemsModalEnabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -1964,7 +1964,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly agentStatusClientEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly expandableEventFlyoutEnabled: boolean; readonly expandableTimelineFlyoutEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantAlertsInsights: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly alertSuppressionForNewTermsRuleEnabled: boolean; readonly alertSuppressionForNonSequenceEqlRuleEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineEnabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly perFieldPrebuiltRulesDiffingEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly aiAssistantFlyoutMode: boolean; readonly valueListItemsModalEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly agentStatusClientEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly expandableEventFlyoutEnabled: boolean; readonly expandableTimelineFlyoutEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantAlertsInsights: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly alertSuppressionForNewTermsRuleEnabled: boolean; readonly alertSuppressionForNonSequenceEqlRuleEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineEnabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly perFieldPrebuiltRulesDiffingEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly aiAssistantFlyoutMode: boolean; readonly valueListItemsModalEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/public/types.ts", "deprecated": false, @@ -3030,7 +3030,7 @@ "\nThe security solution generic experimental features" ], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly agentStatusClientEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly expandableEventFlyoutEnabled: boolean; readonly expandableTimelineFlyoutEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantAlertsInsights: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly alertSuppressionForNewTermsRuleEnabled: boolean; readonly alertSuppressionForNonSequenceEqlRuleEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineEnabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly perFieldPrebuiltRulesDiffingEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly aiAssistantFlyoutMode: boolean; readonly valueListItemsModalEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly agentStatusClientEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly expandableEventFlyoutEnabled: boolean; readonly expandableTimelineFlyoutEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantAlertsInsights: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly alertSuppressionForNewTermsRuleEnabled: boolean; readonly alertSuppressionForNonSequenceEqlRuleEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineEnabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly perFieldPrebuiltRulesDiffingEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly aiAssistantFlyoutMode: boolean; readonly valueListItemsModalEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/server/plugin_contract.ts", "deprecated": false, @@ -3206,7 +3206,7 @@ "label": "ExperimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly agentStatusClientEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly expandableEventFlyoutEnabled: boolean; readonly expandableTimelineFlyoutEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantAlertsInsights: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly alertSuppressionForNewTermsRuleEnabled: boolean; readonly alertSuppressionForNonSequenceEqlRuleEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineEnabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly perFieldPrebuiltRulesDiffingEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly aiAssistantFlyoutMode: boolean; readonly valueListItemsModalEnabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly automatedProcessActionsEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly responseActionsSentinelOneV2Enabled: boolean; readonly responseActionsSentinelOneGetFileEnabled: boolean; readonly agentStatusClientEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly expandableEventFlyoutEnabled: boolean; readonly expandableTimelineFlyoutEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantAlertsInsights: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly alertSuppressionForNewTermsRuleEnabled: boolean; readonly alertSuppressionForNonSequenceEqlRuleEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly crowdstrikeDataInAnalyzerEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; readonly unifiedComponentsInTimelineEnabled: boolean; readonly analyzerDatePickersAndSourcererDisabled: boolean; readonly perFieldPrebuiltRulesDiffingEnabled: boolean; readonly malwareOnWriteScanOptionAvailable: boolean; readonly aiAssistantFlyoutMode: boolean; readonly valueListItemsModalEnabled: boolean; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, @@ -3272,7 +3272,7 @@ "\nA list of allowed values that can be used in `xpack.securitySolution.enableExperimental`.\nThis object is then used to validate and parse the value entered." ], "signature": [ - "{ readonly tGridEnabled: true; readonly tGridEventRenderedViewEnabled: true; readonly excludePoliciesInFilterEnabled: false; readonly kubernetesEnabled: true; readonly donutChartEmbeddablesEnabled: false; readonly previewTelemetryUrlEnabled: false; readonly insightsRelatedAlertsByProcessAncestry: true; readonly extendedRuleExecutionLoggingEnabled: false; readonly socTrendsEnabled: false; readonly responseActionsEnabled: true; readonly endpointResponseActionsEnabled: true; readonly responseActionUploadEnabled: true; readonly automatedProcessActionsEnabled: true; readonly responseActionsSentinelOneV1Enabled: true; readonly responseActionsSentinelOneV2Enabled: false; readonly agentStatusClientEnabled: false; readonly alertsPageChartsEnabled: true; readonly alertTypeEnabled: false; readonly expandableFlyoutInCreateRuleEnabled: true; readonly expandableEventFlyoutEnabled: false; readonly expandableTimelineFlyoutEnabled: false; readonly alertsPageFiltersEnabled: true; readonly assistantAlertsInsights: false; readonly assistantModelEvaluation: false; readonly newUserDetailsFlyout: true; readonly newUserDetailsFlyoutManagedUser: false; readonly newHostDetailsFlyout: true; readonly riskScoringPersistence: true; readonly riskScoringRoutesEnabled: true; readonly esqlRulesDisabled: false; readonly protectionUpdatesEnabled: true; readonly disableTimelineSaveTour: false; readonly riskEnginePrivilegesRouteEnabled: true; readonly alertSuppressionForNewTermsRuleEnabled: false; readonly alertSuppressionForNonSequenceEqlRuleEnabled: false; readonly sentinelOneDataInAnalyzerEnabled: true; readonly sentinelOneManualHostActionsEnabled: true; readonly crowdstrikeDataInAnalyzerEnabled: false; readonly jsonPrebuiltRulesDiffingEnabled: true; readonly timelineEsqlTabDisabled: false; readonly unifiedComponentsInTimelineEnabled: false; readonly analyzerDatePickersAndSourcererDisabled: false; readonly perFieldPrebuiltRulesDiffingEnabled: true; readonly malwareOnWriteScanOptionAvailable: false; readonly aiAssistantFlyoutMode: false; readonly valueListItemsModalEnabled: false; }" + "{ readonly tGridEnabled: true; readonly tGridEventRenderedViewEnabled: true; readonly excludePoliciesInFilterEnabled: false; readonly kubernetesEnabled: true; readonly donutChartEmbeddablesEnabled: false; readonly previewTelemetryUrlEnabled: false; readonly insightsRelatedAlertsByProcessAncestry: true; readonly extendedRuleExecutionLoggingEnabled: false; readonly socTrendsEnabled: false; readonly responseActionsEnabled: true; readonly endpointResponseActionsEnabled: true; readonly responseActionUploadEnabled: true; readonly automatedProcessActionsEnabled: true; readonly responseActionsSentinelOneV1Enabled: true; readonly responseActionsSentinelOneV2Enabled: false; readonly responseActionsSentinelOneGetFileEnabled: false; readonly agentStatusClientEnabled: false; readonly alertsPageChartsEnabled: true; readonly alertTypeEnabled: false; readonly expandableFlyoutInCreateRuleEnabled: true; readonly expandableEventFlyoutEnabled: false; readonly expandableTimelineFlyoutEnabled: false; readonly alertsPageFiltersEnabled: true; readonly assistantAlertsInsights: false; readonly assistantModelEvaluation: false; readonly newUserDetailsFlyout: true; readonly newUserDetailsFlyoutManagedUser: false; readonly newHostDetailsFlyout: true; readonly riskScoringPersistence: true; readonly riskScoringRoutesEnabled: true; readonly esqlRulesDisabled: false; readonly protectionUpdatesEnabled: true; readonly disableTimelineSaveTour: false; readonly riskEnginePrivilegesRouteEnabled: true; readonly alertSuppressionForNewTermsRuleEnabled: false; readonly alertSuppressionForNonSequenceEqlRuleEnabled: false; readonly sentinelOneDataInAnalyzerEnabled: true; readonly sentinelOneManualHostActionsEnabled: true; readonly crowdstrikeDataInAnalyzerEnabled: false; readonly jsonPrebuiltRulesDiffingEnabled: true; readonly timelineEsqlTabDisabled: false; readonly unifiedComponentsInTimelineEnabled: false; readonly analyzerDatePickersAndSourcererDisabled: false; readonly perFieldPrebuiltRulesDiffingEnabled: true; readonly malwareOnWriteScanOptionAvailable: false; readonly aiAssistantFlyoutMode: false; readonly valueListItemsModalEnabled: false; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 1cfc592de431f..3a780bb2b743f 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index 457d194ad0b57..d876284999c3e 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss'] --- import securitySolutionEssObj from './security_solution_ess.devdocs.json'; diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx index dec14b98c890c..7f8cd1e9e3c59 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 7176016c690e8..858f52ec2679a 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.devdocs.json'; diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 6b3b45aef01e4..9560568496a68 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability'] --- import serverlessObservabilityObj from './serverless_observability.devdocs.json'; diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx index 49452d9a42fbc..8b22f7abaca63 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch'] --- import serverlessSearchObj from './serverless_search.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 8dea3d115b5e7..7b9f51a9f0f01 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index b751d2f24d96f..b26f1c2a4d8e1 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx index 8569572644da4..d06e6c8de46c0 100644 --- a/api_docs/slo.mdx +++ b/api_docs/slo.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/slo title: "slo" image: https://source.unsplash.com/400x175/?github description: API docs for the slo plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo'] --- import sloObj from './slo.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 6f7d7327395b1..aec1404302652 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index 94ae40556f4cb..8b3d044d92bec 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index 6249f96728d94..aa46073968f11 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 922d463f2ff73..033811a9c1e54 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index a490742b358c1..d9211312777e2 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index a609ae19976c5..53bf5eeac8d6f 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index 2e3b5245d368f..a50a79e1ab6ce 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 87e2e4954a0f4..df68620da05f8 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index c1d4978fbee45..6696916cc1c14 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index 7c6d63831db20..cbeeecf23e6fd 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index c88d77085fe24..bdc10f2952f26 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 952af2b1313f2..a3ee52d900b0f 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 3d7158d258dda..5b251f7a1792c 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index fb1d973d38972..933de564fa363 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index eece7d0b5044d..310432e2fdad5 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 5b64256b770ce..41759f84631df 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx index 89afaaa69a4dd..ffdfbbbd4206d 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index 8c776770ad3fe..bf3896d5649cf 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index e44ee3f7c5075..556a490b2b1fd 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index 0b23a1ae32862..b594e4434d351 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index 6e2e24361e183..cdd78c505f3a7 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime'] --- import uptimeObj from './uptime.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index fdfd6a9f761c2..1e0957f9243a3 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index dd341eb1cd820..64cf7a3cd8a17 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 18a57050fd0d5..85aa37d1de037 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 8bca77cd5b679..5911fcbb7e217 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index 827143b871488..0d3d23a280aa1 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index eed495383b769..21f384e2eaa06 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 845e21cbbce5d..648776cb3efc1 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index 6dd2020f2ac1c..0e017df6a7007 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 6c2a8fa2947e9..ea0f1acc95e5b 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index 22c6db6d8d777..8ac3c85233644 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index f579396e7a764..efd0efbe79b91 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index 9c054c3b9f3c7..cde653d3b7478 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index af9204a7c262d..f430bda90ad99 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.devdocs.json b/api_docs/visualizations.devdocs.json index e17f4e3b4af45..ccfb9c976f202 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -6872,7 +6872,15 @@ "section": "def-common.PublishingSubject", "text": "PublishingSubject" }, - "; disabledActionIds: ", + "; defaultPanelDescription: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined; disabledActionIds: ", { "pluginId": "@kbn/presentation-publishing", "scope": "common", diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index ce4d9feecde38..046872d18271d 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2024-04-22 +date: 2024-04-23 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 8a6e6d89155161005b1bb9400b436b0f277af207 Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Tue, 23 Apr 2024 08:20:59 +0200 Subject: [PATCH 047/183] [Lens] Fix datatable actions when first row is empty (#181344) ## Summary This PR fixes a bug that affects cell actions when the first column row is empty in a Lens datatable. The check for the action was checking only the first row, while now it tries to find the first row with some values. Screenshot 2024-04-22 at 18 11 00 Screenshot 2024-04-22 at 18 10 54 This shouldn't have any particular performance impact, but it's worth testing to be sure about it. ### 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 --- .../datatable/expression.test.tsx | 55 ++++++++++++++++++- .../visualizations/datatable/expression.tsx | 12 +++- 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/lens/public/visualizations/datatable/expression.test.tsx b/x-pack/plugins/lens/public/visualizations/datatable/expression.test.tsx index 1078aaa6da2da..e8d450fdb6b59 100644 --- a/x-pack/plugins/lens/public/visualizations/datatable/expression.test.tsx +++ b/x-pack/plugins/lens/public/visualizations/datatable/expression.test.tsx @@ -8,8 +8,8 @@ import { createMockExecutionContext } from '@kbn/expressions-plugin/common/mocks import type { DatatableProps } from '../../../common/expressions'; import type { FormatFactory } from '../../../common/types'; import { getDatatable } from '../../../common/expressions'; -import { getColumnCellValueActions } from './expression'; -import type { Datatable } from '@kbn/expressions-plugin/common'; +import { getColumnCellValueActions, getColumnsFilterable } from './expression'; +import type { Datatable, IInterpreterRenderHandlers } from '@kbn/expressions-plugin/common'; import { LensCellValueAction } from '../../types'; const cellValueAction: LensCellValueAction = { @@ -122,4 +122,55 @@ describe('datatable_expression', () => { expect(result).toEqual([]); }); }); + + describe('getColumnsFilterable', () => { + it('should return no data if an empty table is passed', async () => { + const { data } = sampleArgs(); + data.rows = []; + const hasCompatibleActions = jest.fn(); + expect( + await getColumnsFilterable(data, { + hasCompatibleActions, + } as unknown as IInterpreterRenderHandlers) + ).toBeUndefined(); + expect(hasCompatibleActions).not.toHaveBeenCalled(); + }); + + it('should call the handler for each column', async () => { + const { data } = sampleArgs(); + const hasCompatibleActions = jest.fn().mockResolvedValue(true); + expect( + await getColumnsFilterable(data, { + hasCompatibleActions, + } as unknown as IInterpreterRenderHandlers) + ).toEqual([true, true, true]); + expect(hasCompatibleActions).toHaveBeenCalledTimes(data.columns.length); + }); + + it('should call the handler for each column with table coords of data values', async () => { + const { data } = sampleArgs(); + data.rows = [ + { a: null, b: null, c: null }, + { a: 'shoes', b: 1588024800000, c: 3 }, + ]; + const hasCompatibleActions = jest.fn().mockResolvedValue(true); + expect( + await getColumnsFilterable(data, { + hasCompatibleActions, + } as unknown as IInterpreterRenderHandlers) + ).toEqual([true, true, true]); + expect(hasCompatibleActions).toHaveBeenCalledTimes(data.columns.length); + for (const id of data.columns.map((_, i) => i + 1)) { + expect(hasCompatibleActions).toHaveBeenNthCalledWith( + id, + expect.objectContaining({ + name: 'filter', + data: expect.objectContaining({ + data: [expect.objectContaining({ row: 1 })], + }), + }) + ); + } + }); + }); }); diff --git a/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx b/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx index eae35c5a925dc..157cc6d980b31 100644 --- a/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx +++ b/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx @@ -30,12 +30,18 @@ import type { import type { FormatFactory } from '../../../common/types'; import type { DatatableProps } from '../../../common/expressions'; -async function getColumnsFilterable(table: Datatable, handlers: IInterpreterRenderHandlers) { +export async function getColumnsFilterable(table: Datatable, handlers: IInterpreterRenderHandlers) { if (!table.rows.length) { return; } + + // to avoid false negatives, find the first index of the row with data for each column + const rowsWithDataForEachColumn = table.columns.map((column, colIndex) => { + const rowIndex = table.rows.findIndex((row) => row[column.id] != null); + return [rowIndex > -1 ? rowIndex : 0, colIndex]; + }); return Promise.all( - table.columns.map(async (column, colIndex) => { + rowsWithDataForEachColumn.map(async ([rowIndex, colIndex]) => { return Boolean( await handlers.hasCompatibleActions?.({ name: 'filter', @@ -44,7 +50,7 @@ async function getColumnsFilterable(table: Datatable, handlers: IInterpreterRend { table, column: colIndex, - row: 0, + row: rowIndex, }, ], }, From 32cb4d32d1c0b379b8dbc75f11847568551c0c9f Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Tue, 23 Apr 2024 08:32:00 +0200 Subject: [PATCH 048/183] [ES|QL] Fixes comments bugs in Discover and Data Visualizer (#181283) ## Summary Closes https://github.com/elastic/kibana/issues/181276 Fixes the histogram and the field statistics problem when the user adds a comment at the end of the query. The fix is simple, starting the code we are adding on a new line. Screenshot 2024-04-22 at 12 31 53 PM --- packages/kbn-esql-utils/index.ts | 1 + packages/kbn-esql-utils/src/index.ts | 1 + .../src/utils/append_to_query.test.ts | 25 ++++++++++++++++ .../src/utils/append_to_query.ts | 13 ++++++++ .../utils/get_esql_with_safe_limit.test.ts | 8 ++--- .../src/utils/get_esql_with_safe_limit.ts | 2 +- .../field_stats_utils_text_based.test.ts | 6 ++-- .../field_stats_utils_text_based.ts | 30 +++++++++++-------- .../lens_vis_service.attributes.test.ts | 3 +- .../lens_vis_service.suggestions.test.ts | 6 ++-- .../public/services/lens_vis_service.ts | 7 +++-- .../hooks/esql/use_esql_overall_stats_data.ts | 17 ++++++----- .../esql_requests/get_boolean_field_stats.ts | 15 ++++++---- .../get_count_and_cardinality.ts | 8 +++-- .../esql_requests/get_date_field_stats.ts | 5 ++-- .../esql_requests/get_keyword_fields.ts | 13 ++++---- .../esql_requests/get_numeric_field_stats.ts | 5 ++-- 17 files changed, 112 insertions(+), 53 deletions(-) create mode 100644 packages/kbn-esql-utils/src/utils/append_to_query.test.ts create mode 100644 packages/kbn-esql-utils/src/utils/append_to_query.ts diff --git a/packages/kbn-esql-utils/index.ts b/packages/kbn-esql-utils/index.ts index 885c491986582..0d04f40b85612 100644 --- a/packages/kbn-esql-utils/index.ts +++ b/packages/kbn-esql-utils/index.ts @@ -15,6 +15,7 @@ export { getIndexForESQLQuery, getInitialESQLQuery, getESQLWithSafeLimit, + appendToESQLQuery, TextBasedLanguages, } from './src'; diff --git a/packages/kbn-esql-utils/src/index.ts b/packages/kbn-esql-utils/src/index.ts index 58e241c1ebc6e..92a39a4a6f793 100644 --- a/packages/kbn-esql-utils/src/index.ts +++ b/packages/kbn-esql-utils/src/index.ts @@ -16,3 +16,4 @@ export { getLimitFromESQLQuery, removeDropCommandsFromESQLQuery, } from './utils/query_parsing_helpers'; +export { appendToESQLQuery } from './utils/append_to_query'; diff --git a/packages/kbn-esql-utils/src/utils/append_to_query.test.ts b/packages/kbn-esql-utils/src/utils/append_to_query.test.ts new file mode 100644 index 0000000000000..414b9729af03b --- /dev/null +++ b/packages/kbn-esql-utils/src/utils/append_to_query.test.ts @@ -0,0 +1,25 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { appendToESQLQuery } from './append_to_query'; + +describe('appendToESQLQuery', () => { + it('append the text on a new line after the query', () => { + expect(appendToESQLQuery('from logstash-* // meow', '| stats var = avg(woof)')).toBe( + `from logstash-* // meow +| stats var = avg(woof)` + ); + }); + + it('append the text on a new line after the query for text with variables', () => { + const limit = 10; + expect(appendToESQLQuery('from logstash-*', `| limit ${limit}`)).toBe( + `from logstash-* +| limit 10` + ); + }); +}); diff --git a/packages/kbn-esql-utils/src/utils/append_to_query.ts b/packages/kbn-esql-utils/src/utils/append_to_query.ts new file mode 100644 index 0000000000000..efb43951bd082 --- /dev/null +++ b/packages/kbn-esql-utils/src/utils/append_to_query.ts @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +// Append in a new line the appended text to take care of the case where the user adds a comment at the end of the query +// in these cases a base query such as "from index // comment" will result in errors or wrong data if we don't append in a new line +export function appendToESQLQuery(baseESQLQuery: string, appendedText: string): string { + return `${baseESQLQuery}\n${appendedText}`; +} diff --git a/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.test.ts b/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.test.ts index a78dd9f9c0647..e452127506b26 100644 --- a/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.test.ts +++ b/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.test.ts @@ -17,15 +17,15 @@ describe('getESQLWithSafeLimit()', () => { }); it('should add the limit', () => { - expect(getESQLWithSafeLimit(' from logs', LIMIT)).toBe('from logs | LIMIT 10000'); + expect(getESQLWithSafeLimit(' from logs', LIMIT)).toBe('from logs \n| LIMIT 10000'); expect(getESQLWithSafeLimit('FROM logs* | LIMIT 5', LIMIT)).toBe( - 'FROM logs* | LIMIT 10000| LIMIT 5' + 'FROM logs* \n| LIMIT 10000| LIMIT 5' ); expect(getESQLWithSafeLimit('FROM logs* | SORT @timestamp | LIMIT 5', LIMIT)).toBe( - 'FROM logs* |SORT @timestamp | LIMIT 10000| LIMIT 5' + 'FROM logs* |SORT @timestamp \n| LIMIT 10000| LIMIT 5' ); expect(getESQLWithSafeLimit('from logs* | STATS MIN(a) BY b', LIMIT)).toBe( - 'from logs* | LIMIT 10000| STATS MIN(a) BY b' + 'from logs* \n| LIMIT 10000| STATS MIN(a) BY b' ); }); }); diff --git a/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.ts b/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.ts index e8b63b21dd1d4..793292909c68f 100644 --- a/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.ts +++ b/packages/kbn-esql-utils/src/utils/get_esql_with_safe_limit.ts @@ -26,7 +26,7 @@ export function getESQLWithSafeLimit(esql: string, limit: number): string { return parts .map((part, i) => { if (i === index) { - return `${part.trim()} | LIMIT ${limit}`; + return `${part.trim()} \n| LIMIT ${limit}`; } return part; }) diff --git a/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.test.ts b/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.test.ts index 8ebd9640302a2..eace3352a2267 100644 --- a/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.test.ts +++ b/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.test.ts @@ -5,7 +5,6 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ - import type { DataViewField } from '@kbn/data-views-plugin/common'; import { buildSearchFilter, fetchAndCalculateFieldStats } from './field_stats_utils_text_based'; @@ -74,11 +73,10 @@ describe('fieldStatsUtilsTextBased', function () { "totalDocuments": 4, } `); - expect(searchHandler).toHaveBeenCalledWith( expect.objectContaining({ query: - 'from logs* | limit 1000| WHERE `message` IS NOT NULL\n | STATS `message_terms` = count(`message`) BY `message`\n | SORT `message_terms` DESC\n | LIMIT 10', + 'from logs* | limit 1000\n| WHERE `message` IS NOT NULL\n | STATS `message_terms` = count(`message`) BY `message`\n | SORT `message_terms` DESC\n | LIMIT 10', }) ); }); @@ -121,7 +119,7 @@ describe('fieldStatsUtilsTextBased', function () { expect(searchHandler).toHaveBeenCalledWith( expect.objectContaining({ query: - 'from logs* | limit 1000| WHERE `message` IS NOT NULL\n | KEEP `message`\n | LIMIT 100', + 'from logs* | limit 1000\n| WHERE `message` IS NOT NULL\n | KEEP `message`\n | LIMIT 100', }) ); }); diff --git a/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.ts b/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.ts index a5f41853d6e33..4a194b9c4978f 100644 --- a/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.ts +++ b/packages/kbn-unified-field-list/src/services/field_stats_text_based/field_stats_utils_text_based.ts @@ -7,6 +7,7 @@ */ import type { ESQLSearchReponse } from '@kbn/es-types'; +import { appendToESQLQuery } from '@kbn/esql-utils'; import type { DataViewField } from '@kbn/data-views-plugin/common'; import type { FieldStatsResponse } from '../../types'; import { @@ -74,14 +75,15 @@ export async function getStringTopValues( size = DEFAULT_TOP_VALUES_SIZE ): Promise> { const { searchHandler, field, esqlBaseQuery } = params; - const esqlQuery = - esqlBaseQuery + - `| WHERE ${getSafeESQLFieldName(field.name)} IS NOT NULL - | STATS ${getSafeESQLFieldName(`${field.name}_terms`)} = count(${getSafeESQLFieldName( - field.name - )}) BY ${getSafeESQLFieldName(field.name)} - | SORT ${getSafeESQLFieldName(`${field.name}_terms`)} DESC - | LIMIT ${size}`; + const safeEsqlFieldName = getSafeESQLFieldName(field.name); + const safeEsqlFieldNameTerms = getSafeESQLFieldName(`${field.name}_terms`); + const esqlQuery = appendToESQLQuery( + esqlBaseQuery, + `| WHERE ${safeEsqlFieldName} IS NOT NULL + | STATS ${safeEsqlFieldNameTerms} = count(${safeEsqlFieldName}) BY ${safeEsqlFieldName} + | SORT ${safeEsqlFieldNameTerms} DESC + | LIMIT ${size}` + ); const result = await searchHandler({ query: esqlQuery }); const values = result?.values as Array<[number, string]>; @@ -111,11 +113,13 @@ export async function getSimpleTextExamples( params: FetchAndCalculateFieldStatsParams ): Promise> { const { searchHandler, field, esqlBaseQuery } = params; - const esqlQuery = - esqlBaseQuery + - `| WHERE ${getSafeESQLFieldName(field.name)} IS NOT NULL - | KEEP ${getSafeESQLFieldName(field.name)} - | LIMIT ${SIMPLE_EXAMPLES_FETCH_SIZE}`; + const safeEsqlFieldName = getSafeESQLFieldName(field.name); + const esqlQuery = appendToESQLQuery( + esqlBaseQuery, + `| WHERE ${safeEsqlFieldName} IS NOT NULL + | KEEP ${safeEsqlFieldName} + | LIMIT ${SIMPLE_EXAMPLES_FETCH_SIZE}` + ); const result = await searchHandler({ query: esqlQuery }); const values = ((result?.values as Array<[string | string[]]>) || []).map((value) => diff --git a/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts b/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts index 780069747a64a..3703439b32fca 100644 --- a/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts +++ b/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts @@ -763,7 +763,8 @@ describe('LensVisService attributes', () => { it('should use the correct histogram query when no suggestion passed', async () => { const histogramQuery = { - esql: 'from logstash-* | limit 10 | EVAL timestamp=DATE_TRUNC(10 minute, @timestamp) | stats results = count(*) by timestamp | rename timestamp as `@timestamp every 10 minute`', + esql: `from logstash-* | limit 10 +| EVAL timestamp=DATE_TRUNC(10 minute, @timestamp) | stats results = count(*) by timestamp | rename timestamp as \`@timestamp every 10 minute\``, }; const lensVis = await getLensVisMock({ filters, diff --git a/src/plugins/unified_histogram/public/services/lens_vis_service.suggestions.test.ts b/src/plugins/unified_histogram/public/services/lens_vis_service.suggestions.test.ts index 7993f933a8054..5623ab17c4036 100644 --- a/src/plugins/unified_histogram/public/services/lens_vis_service.suggestions.test.ts +++ b/src/plugins/unified_histogram/public/services/lens_vis_service.suggestions.test.ts @@ -120,7 +120,8 @@ describe('LensVisService suggestions', () => { expect(lensVis.currentSuggestionContext?.suggestion).toBeDefined(); const histogramQuery = { - esql: 'from the-data-view | limit 100 | EVAL timestamp=DATE_TRUNC(30 minute, @timestamp) | stats results = count(*) by timestamp | rename timestamp as `@timestamp every 30 minute`', + esql: `from the-data-view | limit 100 +| EVAL timestamp=DATE_TRUNC(30 minute, @timestamp) | stats results = count(*) by timestamp | rename timestamp as \`@timestamp every 30 minute\``, }; expect(lensVis.visContext?.attributes.state.query).toStrictEqual(histogramQuery); @@ -157,7 +158,8 @@ describe('LensVisService suggestions', () => { expect(lensVis.currentSuggestionContext?.suggestion).toBeDefined(); const histogramQuery = { - esql: 'from the-data-view | limit 100 | EVAL timestamp=DATE_TRUNC(30 minute, @timestamp) | stats results = count(*) by timestamp | rename timestamp as `@timestamp every 30 minute`', + esql: `from the-data-view | limit 100 +| EVAL timestamp=DATE_TRUNC(30 minute, @timestamp) | stats results = count(*) by timestamp | rename timestamp as \`@timestamp every 30 minute\``, }; expect(lensVis.visContext?.attributes.state.query).toStrictEqual(histogramQuery); diff --git a/src/plugins/unified_histogram/public/services/lens_vis_service.ts b/src/plugins/unified_histogram/public/services/lens_vis_service.ts index e9844e13a337e..a78d3859da441 100644 --- a/src/plugins/unified_histogram/public/services/lens_vis_service.ts +++ b/src/plugins/unified_histogram/public/services/lens_vis_service.ts @@ -8,7 +8,7 @@ import { BehaviorSubject, distinctUntilChanged, map, Observable } from 'rxjs'; import { isEqual } from 'lodash'; -import { removeDropCommandsFromESQLQuery } from '@kbn/esql-utils'; +import { removeDropCommandsFromESQLQuery, appendToESQLQuery } from '@kbn/esql-utils'; import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import type { CountIndexPatternColumn, @@ -513,7 +513,10 @@ export class LensVisService { const queryInterval = interval ?? computeInterval(timeRange, this.services.data); const language = getAggregateQueryMode(query); const safeQuery = removeDropCommandsFromESQLQuery(query[language]); - return `${safeQuery} | EVAL timestamp=DATE_TRUNC(${queryInterval}, ${dataView.timeFieldName}) | stats results = count(*) by timestamp | rename timestamp as \`${dataView.timeFieldName} every ${queryInterval}\``; + return appendToESQLQuery( + safeQuery, + `| EVAL timestamp=DATE_TRUNC(${queryInterval}, ${dataView.timeFieldName}) | stats results = count(*) by timestamp | rename timestamp as \`${dataView.timeFieldName} every ${queryInterval}\`` + ); }; private getAllSuggestions = ({ queryParams }: { queryParams: QueryParams }): Suggestion[] => { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts index 76d990236562a..165e00624489b 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/esql/use_esql_overall_stats_data.ts @@ -14,7 +14,7 @@ import { type UseCancellableSearch, useCancellableSearch } from '@kbn/ml-cancell import type { estypes } from '@elastic/elasticsearch'; import type { ISearchOptions } from '@kbn/data-plugin/common'; import type { TimeBucketsInterval } from '@kbn/ml-time-buckets'; -import { getESQLWithSafeLimit, ESQL_LATEST_VERSION } from '@kbn/esql-utils'; +import { getESQLWithSafeLimit, ESQL_LATEST_VERSION, appendToESQLQuery } from '@kbn/esql-utils'; import { isDefined } from '@kbn/ml-is-defined'; import { OMIT_FIELDS } from '../../../../../common/constants'; import type { @@ -82,14 +82,17 @@ const getESQLDocumentCountStats = async ( let latestMs = -Infinity; if (timeFieldName) { - const aggQuery = ` | EVAL _timestamp_= TO_DOUBLE(DATE_TRUNC(${intervalMs} millisecond, ${getSafeESQLName( - timeFieldName - )})) - | stats rows = count(*) by _timestamp_`; + const aggQuery = appendToESQLQuery( + esqlBaseQuery, + ` | EVAL _timestamp_= TO_DOUBLE(DATE_TRUNC(${intervalMs} millisecond, ${getSafeESQLName( + timeFieldName + )})) + | stats rows = count(*) by _timestamp_` + ); const request = { params: { - query: esqlBaseQuery + aggQuery, + query: aggQuery, ...(filter ? { filter } : {}), version: ESQL_LATEST_VERSION, }, @@ -135,7 +138,7 @@ const getESQLDocumentCountStats = async ( // If not time field, get the total count const request = { params: { - query: esqlBaseQuery + ' | STATS _count_ = COUNT(*) | LIMIT 1', + query: appendToESQLQuery(esqlBaseQuery, ' | STATS _count_ = COUNT(*) | LIMIT 1'), ...(filter ? { filter } : {}), version: ESQL_LATEST_VERSION, }, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts index 6cba632d4b7f7..69e40a00dc9f4 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_boolean_field_stats.ts @@ -9,7 +9,7 @@ import type { UseCancellableSearch } from '@kbn/ml-cancellable-search'; import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types'; import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common'; import pLimit from 'p-limit'; -import { ESQL_LATEST_VERSION } from '@kbn/esql-utils'; +import { ESQL_LATEST_VERSION, appendToESQLQuery } from '@kbn/esql-utils'; import type { Column } from '../../hooks/esql/use_esql_overall_stats_data'; import { getSafeESQLName } from '../requests/esql_utils'; import { isFulfilled, isRejected } from '../../../common/util/promise_all_settled_utils'; @@ -35,16 +35,19 @@ export const getESQLBooleanFieldStats = async ({ const booleanFields = columns .filter((f) => f.secondaryType === 'boolean') .map((field) => { - const query = `| STATS ${getSafeESQLName(`${field.name}_terms`)} = count(${getSafeESQLName( - field.name - )}) BY ${getSafeESQLName(field.name)} - | LIMIT 3`; + const query = appendToESQLQuery( + esqlBaseQuery, + `| STATS ${getSafeESQLName(`${field.name}_terms`)} = count(${getSafeESQLName( + field.name + )}) BY ${getSafeESQLName(field.name)} + | LIMIT 3` + ); return { field, request: { params: { - query: esqlBaseQuery + query, + query, ...(filter ? { filter } : {}), version: ESQL_LATEST_VERSION, }, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts index 50986ffbfdab7..d68696abb3826 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_count_and_cardinality.ts @@ -9,7 +9,7 @@ import pLimit from 'p-limit'; import { chunk } from 'lodash'; import { isDefined } from '@kbn/ml-is-defined'; import type { ESQLSearchReponse } from '@kbn/es-types'; -import { ESQL_LATEST_VERSION } from '@kbn/esql-utils'; +import { ESQL_LATEST_VERSION, appendToESQLQuery } from '@kbn/esql-utils'; import type { UseCancellableSearch } from '@kbn/ml-cancellable-search'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { i18n } from '@kbn/i18n'; @@ -100,8 +100,10 @@ const getESQLOverallStatsInChunk = async ({ let countQuery = fieldsToFetch.length > 0 ? '| STATS ' : ''; countQuery += fieldsToFetch.map((field) => field.query).join(','); - - const query = esqlBaseQueryWithLimit + (evalQuery ? ' | EVAL ' + evalQuery : '') + countQuery; + const query = appendToESQLQuery( + esqlBaseQueryWithLimit, + (evalQuery ? ' | EVAL ' + evalQuery : '') + countQuery + ); const request = { params: { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts index 846aadf7e17ad..5366a2266af66 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_date_field_stats.ts @@ -8,7 +8,7 @@ import type { UseCancellableSearch } from '@kbn/ml-cancellable-search'; import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types'; import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common'; -import { ESQL_LATEST_VERSION } from '@kbn/esql-utils'; +import { ESQL_LATEST_VERSION, appendToESQLQuery } from '@kbn/esql-utils'; import type { Column } from '../../hooks/esql/use_esql_overall_stats_data'; import { getSafeESQLName } from '../requests/esql_utils'; import type { DateFieldStats, FieldStatsError } from '../../../../../common/types/field_stats'; @@ -37,9 +37,10 @@ export const getESQLDateFieldStats = async ({ if (dateFields.length > 0) { const dateStatsQuery = ' | STATS ' + dateFields.map(({ query }) => query).join(','); + const query = appendToESQLQuery(esqlBaseQuery, dateStatsQuery); const request = { params: { - query: esqlBaseQuery + dateStatsQuery, + query, ...(filter ? { filter } : {}), version: ESQL_LATEST_VERSION, }, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts index 42f079c9b1676..a6eed452c1a48 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_keyword_fields.ts @@ -9,7 +9,7 @@ import type { UseCancellableSearch } from '@kbn/ml-cancellable-search'; import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types'; import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common'; import pLimit from 'p-limit'; -import { ESQL_LATEST_VERSION } from '@kbn/esql-utils'; +import { ESQL_LATEST_VERSION, appendToESQLQuery } from '@kbn/esql-utils'; import type { Column } from '../../hooks/esql/use_esql_overall_stats_data'; import { getSafeESQLName } from '../requests/esql_utils'; import { isFulfilled, isRejected } from '../../../common/util/promise_all_settled_utils'; @@ -32,14 +32,15 @@ export const getESQLKeywordFieldStats = async ({ const limiter = pLimit(MAX_CONCURRENT_REQUESTS); const keywordFields = columns.map((field) => { - const query = - esqlBaseQuery + + const query = appendToESQLQuery( + esqlBaseQuery, `| STATS ${getSafeESQLName(`${field.name}_in_records`)} = count(MV_MIN(${getSafeESQLName( field.name )})), ${getSafeESQLName(`${field.name}_in_values`)} = count(${getSafeESQLName(field.name)}) - BY ${getSafeESQLName(field.name)} - | SORT ${getSafeESQLName(`${field.name}_in_records`)} DESC - | LIMIT 10`; + BY ${getSafeESQLName(field.name)} + | SORT ${getSafeESQLName(`${field.name}_in_records`)} DESC + | LIMIT 10` + ); return { field, request: { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts index 615d07abc4066..f9ee1d2c65007 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/esql_requests/get_numeric_field_stats.ts @@ -8,7 +8,7 @@ import type { UseCancellableSearch } from '@kbn/ml-cancellable-search'; import type { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types'; import { ESQL_SEARCH_STRATEGY } from '@kbn/data-plugin/common'; -import { ESQL_LATEST_VERSION } from '@kbn/esql-utils'; +import { ESQL_LATEST_VERSION, appendToESQLQuery } from '@kbn/esql-utils'; import { chunk } from 'lodash'; import pLimit from 'p-limit'; import type { Column } from '../../hooks/esql/use_esql_overall_stats_data'; @@ -66,9 +66,10 @@ const getESQLNumericFieldStatsInChunk = async ({ if (numericFields.length > 0) { const numericStatsQuery = '| STATS ' + numericFields.map(({ query }) => query).join(','); + const query = appendToESQLQuery(esqlBaseQuery, numericStatsQuery); const request = { params: { - query: esqlBaseQuery + numericStatsQuery, + query, ...(filter ? { filter } : {}), version: ESQL_LATEST_VERSION, }, From a902bac9a5582d8b1f514ebf774d7a5e9edfaa59 Mon Sep 17 00:00:00 2001 From: Alex Szabo Date: Tue, 23 Apr 2024 08:42:26 +0200 Subject: [PATCH 049/183] [BK] Add purge hourly schedule (#181374) ## Summary This was left out during the initial migration. https://github.com/elastic/kibana-buildkite/blob/ddd478c70bc0b27631e9220f2505633ecbf7c357/pipelines/kibana-purge-cloud-deployments.tf#L35 --- .../kibana-purge-cloud-deployments.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.buildkite/pipeline-resource-definitions/kibana-purge-cloud-deployments.yml b/.buildkite/pipeline-resource-definitions/kibana-purge-cloud-deployments.yml index a8e6b46f7d3ca..575f895d77980 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-purge-cloud-deployments.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-purge-cloud-deployments.yml @@ -34,6 +34,11 @@ spec: build_tags: false prefix_pull_request_fork_branch_names: false skip_pull_request_builds_for_existing_commits: true + schedules: + Purge cloud deployments (hourly): + cronline: 0 * * * * America/New_York + branch: main + message: 'Purge cloud deployments' teams: kibana-operations: access_level: MANAGE_BUILD_AND_READ From 6cdb0ea62b5ddd869260f31ee7aa38fbfa964677 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Tue, 23 Apr 2024 02:50:17 -0400 Subject: [PATCH 050/183] [Observability Onboarding] Add link back to onboarding from integrations (#181195) # Summary Resolves #180824. ## Fleet Changes It was noted that, when linking to the Integrations page from Onboarding, the `Back to integrations` link will navigate the user to the main Integrations search page within the Fleet UI. In cases where we direct the user to an integration's page from Observability Onboarding, this completely breaks the flow. The goal of this PR is to introduce, as transparently as possible, some special functionality to pick up a link as a query param and replace the standard back link with the custom one when it is present. This also includes a copy change, per the linked issue. ### Card CSS change As a side note, this adds some custom CSS to the `PackageCard` component. This is because we added this notion of `Collections` to the cards, but the `footer` prop is not available when the cards are in `horizontal` mode. I spoke to EUI about this and it is possible this will become a standard convention in the future. My original intent was to include this custom CSS conditionally, but because ReactWindow is somewhat rigid with conditionally-applied styles it seemed to only work when the CSS was applied to all items. #### Looks ok when card content is uniform image #### Only looks like this when the custom CSS is applied image ## Onboarding Changes There's a new query param, `search`, that will update with the changes the user makes to the search query for the complete integrations list. This and the `category` param are included in the link when they're defined, so when the user navigates to the integration's page, if they click the link back the original state of the page will repopulate. ## Testing The original functionality of using integrations from the Fleet UI should remain completely unchanged. Things to check: 1. Integration cards render in the exact same way as they did before, or with acceptable differences WRT the flex usage. In my testing, I didn't notice any perceptible difference, but I likely did not cover all cases of card rendering 1. Links back to the integrations UI continue to work the same as before 1. Links from Onboarding to Integrations will preserve state and cause the back link to say "Back to selection" instead of "Back to integrations" ## Demo GIFs ### Onboarding Flow ![20240418135239](https://github.com/elastic/kibana/assets/18429259/4e8a37c8-b5d4-43d0-8602-751658de71a7) ### Integrations Flow ![20240418135536](https://github.com/elastic/kibana/assets/18429259/0dac4cc3-6c5f-435d-83d3-4111763ee075) --------- Co-authored-by: Joe Reuter --- .../sections/epm/components/package_card.tsx | 13 ++++ .../detail/components/back_link.test.tsx | 44 +++++++++++++ .../screens/detail/components/back_link.tsx | 45 +++++++++++++ .../epm/screens/detail/components/index.tsx | 1 + .../sections/epm/screens/detail/index.tsx | 11 +--- .../onboarding_flow_form.tsx | 33 ++++++++-- .../application/packages_list/index.tsx | 6 ++ .../use_integration_card_list.test.ts | 65 +++++++++++++++++++ .../use_integration_card_list.ts | 56 ++++++++++++++-- .../observability_onboarding/public/common.ts | 8 +++ .../observability_onboarding/public/plugin.ts | 3 +- 11 files changed, 267 insertions(+), 18 deletions(-) create mode 100644 x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/back_link.test.tsx create mode 100644 x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/back_link.tsx create mode 100644 x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.test.ts create mode 100644 x-pack/plugins/observability_solution/observability_onboarding/public/common.ts diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/components/package_card.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/components/package_card.tsx index bf03648f442c9..474ffe2e4db70 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/components/package_card.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/components/package_card.tsx @@ -16,6 +16,7 @@ import { EuiSpacer, EuiToolTip, } from '@elastic/eui'; +import { css } from '@emotion/react'; import { TrackApplicationView } from '@kbn/usage-collection-plugin/public'; @@ -175,6 +176,18 @@ export function PackageCard({ > { + it('renders back to selection link', () => { + const expectedUrl = '/app/experimental-onboarding'; + const queryParams = new URLSearchParams(); + queryParams.set('observabilityOnboardingLink', expectedUrl); + const { getByText, getByRole } = render( + + ); + expect(getByText('Back to selection')).toBeInTheDocument(); + expect(getByRole('link').getAttribute('href')).toBe(expectedUrl); + }); + + it('renders back to selection link with params', () => { + const expectedUrl = '/app/experimental-onboarding&search=aws&category=infra'; + const queryParams = new URLSearchParams(); + queryParams.set('observabilityOnboardingLink', expectedUrl); + const { getByText, getByRole } = render( + + ); + expect(getByText('Back to selection')).toBeInTheDocument(); + expect(getByRole('link').getAttribute('href')).toBe(expectedUrl); + }); + + it('renders back to integrations link', () => { + const queryParams = new URLSearchParams(); + const { getByText, getByRole } = render( + + ); + expect(getByText('Back to integrations')).toBeInTheDocument(); + expect(getByRole('link').getAttribute('href')).toBe('/app/integrations'); + }); +}); diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/back_link.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/back_link.tsx new file mode 100644 index 0000000000000..081b78de8ec51 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/back_link.tsx @@ -0,0 +1,45 @@ +/* + * 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 { EuiButtonEmpty } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React, { useMemo } from 'react'; + +interface Props { + queryParams: URLSearchParams; + href: string; +} + +export function BackLink({ queryParams, href: integrationsHref }: Props) { + const { onboardingLink } = useMemo(() => { + return { + onboardingLink: queryParams.get('observabilityOnboardingLink'), + }; + }, [queryParams]); + const href = onboardingLink ?? integrationsHref; + const message = onboardingLink ? BACK_TO_SELECTION : BACK_TO_INTEGRATIONS; + + return ( + + {message} + + ); +} + +const BACK_TO_INTEGRATIONS = ( + +); + +const BACK_TO_SELECTION = ( + +); diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/index.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/index.tsx index c0438bf6dfe8d..4aa1a543897c9 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/index.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/index.tsx @@ -4,6 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +export { BackLink } from './back_link'; export { AddIntegrationButton } from './add_integration_button'; export { UpdateIcon } from './update_icon'; export { IntegrationAgentPolicyCount } from './integration_agent_policy_count'; diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx index 54ca058865fdf..0a2fc69a69366 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx @@ -12,7 +12,6 @@ import { Routes, Route } from '@kbn/shared-ux-router'; import styled from 'styled-components'; import { EuiBadge, - EuiButtonEmpty, EuiCallOut, EuiDescriptionList, EuiDescriptionListDescription, @@ -71,6 +70,7 @@ import { DeferredAssetsWarning } from './assets/deferred_assets_warning'; import { useIsFirstTimeAgentUserQuery } from './hooks'; import { getInstallPkgRouteOptions } from './utils'; import { + BackLink, IntegrationAgentPolicyCount, UpdateIcon, IconPanel, @@ -314,12 +314,7 @@ export function Detail() { {/* Allows button to break out of full width */}
- - - +
@@ -366,7 +361,7 @@ export function Detail() { ), - [integrationInfo, isLoading, packageInfo, href] + [integrationInfo, isLoading, packageInfo, href, queryParams] ); const handleAddIntegrationPolicyClick = useCallback( diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx index 6a1a062e5a7e1..e5977ff0172c7 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx @@ -6,7 +6,7 @@ */ import { i18n } from '@kbn/i18n'; -import React, { useCallback, useState } from 'react'; +import React, { useCallback, useEffect, useState } from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; import type { FunctionComponent } from 'react'; import { @@ -81,8 +81,21 @@ export const OnboardingFlowForm: FunctionComponent = () => { const radioGroupId = useGeneratedHtmlId({ prefix: 'onboardingCategory' }); const [searchParams, setSearchParams] = useSearchParams(); + const packageListRef = React.useRef(null); - const [integrationSearch, setIntegrationSearch] = useState(''); + const [integrationSearch, setIntegrationSearch] = useState(searchParams.get('search') ?? ''); + + useEffect(() => { + const searchParam = searchParams.get('search') ?? ''; + if (integrationSearch === searchParam) return; + const entries: Record = Object.fromEntries(searchParams.entries()); + if (integrationSearch) { + entries.search = integrationSearch; + } else { + delete entries.search; + } + setSearchParams(entries, { replace: true }); + }, [integrationSearch, searchParams, setSearchParams]); const createCollectionCardHandler = useCallback( (query: string) => () => { @@ -97,7 +110,7 @@ export const OnboardingFlowForm: FunctionComponent = () => { ); } }, - [setIntegrationSearch] + [] ); const customCards = useCustomCardsForCategory( @@ -153,7 +166,13 @@ export const OnboardingFlowForm: FunctionComponent = () => { /> - {Array.isArray(customCards) && } + {Array.isArray(customCards) && ( + + )} { type === 'generated')} + customCards={customCards?.filter( + (card) => card.type === 'generated' && !card.isCollectionCard + )} joinCardLists /> diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx index 85627f9411bf3..135e4650ccc09 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx @@ -32,6 +32,8 @@ interface Props { packageListRef?: React.Ref; searchQuery?: string; setSearchQuery?: React.Dispatch>; + flowCategory?: string | null; + flowSearch?: string; /** * When enabled, custom and integration cards are joined into a single list. */ @@ -52,6 +54,8 @@ const PackageListGridWrapper = ({ searchQuery, setSearchQuery, customCards, + flowCategory, + flowSearch, joinCardLists = false, }: WrapperProps) => { const customMargin = useCustomMargin(); @@ -63,6 +67,8 @@ const PackageListGridWrapper = ({ filteredCards, selectedCategory, customCards, + flowCategory, + flowSearch, joinCardLists ); diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.test.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.test.ts new file mode 100644 index 0000000000000..076f4585e2667 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.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 { addPathParamToUrl, toOnboardingPath } from './use_integration_card_list'; + +describe('useIntegratrionCardList', () => { + describe('toOnboardingPath', () => { + it('returns null if no `basePath` is defined', () => { + expect(toOnboardingPath({})).toBeNull(); + }); + it('returns just the `basePath` if no category or search is defined', () => { + expect(toOnboardingPath({ basePath: '' })).toBe('/app/experimental-onboarding'); + expect(toOnboardingPath({ basePath: '/s/custom_space_name' })).toBe( + '/s/custom_space_name/app/experimental-onboarding' + ); + }); + it('includes category in the URL', () => { + expect(toOnboardingPath({ basePath: '/s/custom_space_name', category: 'logs' })).toBe( + '/s/custom_space_name/app/experimental-onboarding?category=logs' + ); + expect(toOnboardingPath({ basePath: '', category: 'infra' })).toBe( + '/app/experimental-onboarding?category=infra' + ); + }); + it('includes search in the URL', () => { + expect(toOnboardingPath({ basePath: '/s/custom_space_name', search: 'search' })).toBe( + '/s/custom_space_name/app/experimental-onboarding?search=search' + ); + }); + it('includes category and search in the URL', () => { + expect( + toOnboardingPath({ basePath: '/s/custom_space_name', category: 'logs', search: 'search' }) + ).toBe('/s/custom_space_name/app/experimental-onboarding?category=logs&search=search'); + expect(toOnboardingPath({ basePath: '', category: 'infra', search: 'search' })).toBe( + '/app/experimental-onboarding?category=infra&search=search' + ); + }); + }); + describe('addPathParamToUrl', () => { + it('adds the onboarding link to url with existing params', () => { + expect( + addPathParamToUrl( + '/app/integrations?query-1', + '/app/experimental-onboarding?search=aws&category=infra' + ) + ).toBe( + '/app/integrations?query-1&observabilityOnboardingLink=%2Fapp%2Fexperimental-onboarding%3Fsearch%3Daws%26category%3Dinfra' + ); + }); + it('adds the onboarding link to url without existing params', () => { + expect( + addPathParamToUrl( + '/app/integrations', + '/app/experimental-onboarding?search=aws&category=infra' + ) + ).toBe( + '/app/integrations?observabilityOnboardingLink=%2Fapp%2Fexperimental-onboarding%3Fsearch%3Daws%26category%3Dinfra' + ); + }); + }); +}); diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts index 8d5a275a4523b..4d52856ce5551 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts @@ -7,9 +7,50 @@ import { useMemo } from 'react'; import { IntegrationCardItem } from '@kbn/fleet-plugin/public'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; import { CustomCard } from './types'; +import { EXPERIMENTAL_ONBOARDING_APP_ROUTE } from '../../common'; import { toCustomCard } from './utils'; +export function toOnboardingPath({ + basePath, + category, + search, +}: { + basePath?: string; + category?: string | null; + search?: string; +}): string | null { + if (typeof basePath !== 'string' && !basePath) return null; + const path = `${basePath}${EXPERIMENTAL_ONBOARDING_APP_ROUTE}`; + if (!category && !search) return path; + const params = new URLSearchParams(); + if (category) params.append('category', category); + if (search) params.append('search', search); + return `${path}?${params.toString()}`; +} + +export function addPathParamToUrl(url: string, onboardingLink: string) { + const encoded = encodeURIComponent(onboardingLink); + if (url.indexOf('?') >= 0) { + return `${url}&observabilityOnboardingLink=${encoded}`; + } + return `${url}?observabilityOnboardingLink=${encoded}`; +} + +function useCardUrlRewrite(props: { category?: string | null; search?: string }) { + const kibana = useKibana(); + const basePath = kibana.services.http?.basePath.get(); + const onboardingLink = useMemo(() => toOnboardingPath({ basePath, ...props }), [basePath, props]); + return (card: IntegrationCardItem) => ({ + ...card, + url: + card.url.indexOf('/app/integrations') >= 0 && onboardingLink + ? addPathParamToUrl(card.url, onboardingLink) + : card.url, + }); +} + function extractFeaturedCards(filteredCards: IntegrationCardItem[], featuredCardNames?: string[]) { const featuredCards: Record = {}; filteredCards.forEach((card) => { @@ -21,21 +62,23 @@ function extractFeaturedCards(filteredCards: IntegrationCardItem[], featuredCard } function formatCustomCards( + rewriteUrl: (card: IntegrationCardItem) => IntegrationCardItem, customCards: CustomCard[], featuredCards: Record ) { const cards: IntegrationCardItem[] = []; for (const card of customCards) { if (card.type === 'featured' && !!featuredCards[card.name]) { - cards.push(toCustomCard(featuredCards[card.name]!)); + cards.push(toCustomCard(rewriteUrl(featuredCards[card.name]!))); } else if (card.type === 'generated') { - cards.push(toCustomCard(card)); + cards.push(toCustomCard(rewriteUrl(card))); } } return cards; } function useFilteredCards( + rewriteUrl: (card: IntegrationCardItem) => IntegrationCardItem, integrationsList: IntegrationCardItem[], selectedCategory: string, customCards?: CustomCard[] @@ -43,6 +86,7 @@ function useFilteredCards( return useMemo(() => { const integrationCards = integrationsList .filter((card) => card.categories.includes(selectedCategory)) + .map(rewriteUrl) .map(toCustomCard); if (!customCards) { @@ -56,7 +100,7 @@ function useFilteredCards( ), integrationCards, }; - }, [integrationsList, customCards, selectedCategory]); + }, [integrationsList, customCards, selectedCategory, rewriteUrl]); } /** @@ -71,16 +115,20 @@ export function useIntegrationCardList( integrationsList: IntegrationCardItem[], selectedCategory = 'observability', customCards?: CustomCard[], + flowCategory?: string | null, + flowSearch?: string, fullList = false ): IntegrationCardItem[] { + const rewriteUrl = useCardUrlRewrite({ category: flowCategory, search: flowSearch }); const { featuredCards, integrationCards } = useFilteredCards( + rewriteUrl, integrationsList, selectedCategory, customCards ); if (customCards && customCards.length > 0) { - const formattedCustomCards = formatCustomCards(customCards, featuredCards); + const formattedCustomCards = formatCustomCards(rewriteUrl, customCards, featuredCards); if (fullList) { return [...formattedCustomCards, ...integrationCards] as IntegrationCardItem[]; } diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/common.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/common.ts new file mode 100644 index 0000000000000..110aeeebcd1c6 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/common.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 const EXPERIMENTAL_ONBOARDING_APP_ROUTE = '/app/experimental-onboarding'; diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/plugin.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/plugin.ts index c83c26e3bf486..fd17f18085331 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/plugin.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/plugin.ts @@ -27,6 +27,7 @@ import { ObservabilityOnboardingLocatorDefinition } from './locators/onboarding_ import { ObservabilityOnboardingPluginLocators } from './locators'; import { ConfigSchema } from '.'; import { OBSERVABILITY_ONBOARDING_TELEMETRY_EVENT } from '../common/telemetry_events'; +import { EXPERIMENTAL_ONBOARDING_APP_ROUTE } from './common'; export type ObservabilityOnboardingPluginSetup = void; export type ObservabilityOnboardingPluginStart = void; @@ -115,7 +116,7 @@ export class ObservabilityOnboardingPlugin core.application.register({ id: `${PLUGIN_ID}_EXPERIMENTAL`, title: 'Observability Onboarding (Beta)', - appRoute: '/app/experimental-onboarding', + appRoute: EXPERIMENTAL_ONBOARDING_APP_ROUTE, order: 8500, euiIconType: 'logoObservability', category: DEFAULT_APP_CATEGORIES.observability, From 89057406e0aaf4015ffc511b69a7b6186448e777 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Tue, 23 Apr 2024 09:32:06 +0200 Subject: [PATCH 051/183] [SLOs] Remove tech preview from burn rate (#181342) ## Summary Remove tech preview from burn rate !! image --- .../components/slo/burn_rate/burn_rates.tsx | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/burn_rates.tsx b/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/burn_rates.tsx index d836ebc931631..b6c828f9a4df6 100644 --- a/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/burn_rates.tsx +++ b/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/burn_rates.tsx @@ -13,7 +13,6 @@ import React, { useEffect, useState } from 'react'; import { useFetchSloBurnRates } from '../../../hooks/use_fetch_slo_burn_rates'; import { ErrorRateChart } from '../error_rate_chart'; import { BurnRate } from './burn_rate'; -import { TechnicalPreviewBadge } from '../../technical_preview_badge'; interface Props { slo: SLOWithSummaryResponse; @@ -66,20 +65,15 @@ export function BurnRates({ slo, isAutoRefreshing, burnRateOptions }: Props) { - - - -

- {i18n.translate('xpack.slo.burnRate.title', { - defaultMessage: 'Burn rate', - })} -

-
-
- - - -
+ + +

+ {i18n.translate('xpack.slo.burnRate.title', { + defaultMessage: 'Burn rate', + })} +

+
+
Date: Tue, 23 Apr 2024 10:35:56 +0200 Subject: [PATCH 052/183] [Serverless] Use new `monitoring` config (#181336) --- config/serverless.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/serverless.yml b/config/serverless.yml index a87d7a2913bfe..7e18b184468ef 100644 --- a/config/serverless.yml +++ b/config/serverless.yml @@ -151,8 +151,8 @@ xpack.reporting.statefulSettings.enabled: false # Disabled Observability plugins xpack.ux.enabled: false -xpack.monitoring.enabled: false xpack.legacy_uptime.enabled: false +monitoring.enabled: false monitoring.ui.enabled: false ## Enable uiSettings validations From 9ce171cbe876c2e3f3a45fdfa741e142e88ec376 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Tue, 23 Apr 2024 10:42:27 +0200 Subject: [PATCH 053/183] [ML] Replaces jQuery's `$el.width()` with `element.clientWidth`. (#180523) ## Summary Gets rid of leftover usage of jQuery. Replaces jQuery `$el.width()` with `element.clientWidth` that was used in the Anomaly Explorer chart for rare detectors. I updated the jest test for the component to return timestamps that result in a reasonable amount of ticks. A jest `spy` was added to mock `clientWidth` which is not available via `jsdom` because it lacks a layout engine. ### 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 - [x] 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) --- .../__mocks__/mock_chart_data_rare.js | 10 +++++----- .../__mocks__/mock_series_config_rare.json | 8 ++++---- .../explorer_chart_distribution.js | 5 +---- .../explorer_chart_distribution.test.js | 20 ++++++++----------- .../explorer_chart_single_metric.js | 5 +---- .../explorer_chart_single_metric.test.js | 4 ++-- 6 files changed, 21 insertions(+), 31 deletions(-) diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_chart_data_rare.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_chart_data_rare.js index ff42c97c6c2ca..9b48441733215 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_chart_data_rare.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_chart_data_rare.js @@ -7,27 +7,27 @@ export const chartData = [ { - date: 1487899800000, + date: 1709262000000, entity: '200', value: 1741.5652200000002, }, { - date: 1487899800000, + date: 1709262000000, entity: '404', value: 494.30564000000004, }, { - date: 1487899800000, + date: 1709262000000, entity: '304', value: 160.93672, }, { - date: 1487899800000, + date: 1709262000000, entity: '301', value: 57.4774, }, { - date: 1487837700000, + date: 1708668000000, value: 42, entity: '303', anomalyScore: 84.08759, diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_series_config_rare.json b/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_series_config_rare.json index bf93979f745bb..0988bfe1297d1 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_series_config_rare.json +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/__mocks__/mock_series_config_rare.json @@ -44,10 +44,10 @@ ] }, "loading": false, - "plotEarliest": 1487774250000, - "plotLatest": 1487900250000, - "selectedEarliest": 1487836800000, - "selectedLatest": 1487837699999, + "plotEarliest": 1708171200000, + "plotLatest": 1709294400000, + "selectedEarliest": 1708646400000, + "selectedLatest": 1708819200000, "chartLimits": { "max": 9294.095580000001, "min": 5.74774 diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js index 54c079c745cd2..f1794e812cc7e 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js @@ -14,7 +14,6 @@ import PropTypes from 'prop-types'; import React from 'react'; import d3 from 'd3'; -import $ from 'jquery'; import moment from 'moment'; import { i18n } from '@kbn/i18n'; @@ -117,14 +116,12 @@ export class ExplorerChartDistribution extends React.Component { drawRareChart(filteredChartData); function init({ chartData, functionDescription }) { - const $el = $('.ml-explorer-chart'); - // Clear any existing elements from the visualization, // then build the svg elements for the chart. const chartElement = d3.select(element).select('.content-wrapper'); chartElement.select('svg').remove(); - const svgWidth = $el.width(); + const svgWidth = element.clientWidth; const svgHeight = chartHeight + margin.top + margin.bottom; const svg = chartElement diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js index 123c377506d4a..ee0c2c41074e0 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.test.js @@ -25,14 +25,6 @@ const utilityProps = { }, }; -const servicesMock = { - mlServices: { - mlFieldFormatService: { - getFieldFormat: jest.fn(), - }, - }, -}; - describe('ExplorerChart', () => { const mlSelectSeverityServiceMock = { state: { @@ -54,10 +46,11 @@ describe('ExplorerChart', () => { }; const wrapper = mountWithIntl( - + @@ -81,11 +74,12 @@ describe('ExplorerChart', () => { }; const wrapper = mountWithIntl( - + @@ -106,6 +100,7 @@ describe('ExplorerChart', () => { const config = { ...seriesConfig, chartData, + chartLimits: { min: 201039318, max: 625736376 }, }; const mockTooltipService = { @@ -115,12 +110,13 @@ describe('ExplorerChart', () => { // We create the element including a wrapper which sets the width: return mountWithIntl( - +
@@ -156,7 +152,7 @@ describe('ExplorerChart', () => { expect(+selectedInterval.getAttribute('height')).toBe(166); const xAxisTicks = wrapper.getDOMNode().querySelector('.x').querySelectorAll('.tick'); - expect([...xAxisTicks]).toHaveLength(1); + expect([...xAxisTicks]).toHaveLength(6); const yAxisTicks = wrapper.getDOMNode().querySelector('.y').querySelectorAll('.tick'); expect([...yAxisTicks]).toHaveLength(5); const emphasizedAxisLabel = wrapper diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js index 82c7fb4eb4daf..3291307710cb2 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js @@ -14,7 +14,6 @@ import PropTypes from 'prop-types'; import React from 'react'; import d3 from 'd3'; -import $ from 'jquery'; import moment from 'moment'; import { i18n } from '@kbn/i18n'; @@ -107,14 +106,12 @@ export class ExplorerChartSingleMetric extends React.Component { drawLineChart(config.chartData); function init(chartLimits) { - const $el = $('.ml-explorer-chart'); - // Clear any existing elements from the visualization, // then build the svg elements for the chart. const chartElement = d3.select(element).select(`.${CONTENT_WRAPPER_CLASS}`); chartElement.select('svg').remove(); - const svgWidth = $el.width(); + const svgWidth = element.clientWidth; const svgHeight = chartHeight + margin.top + margin.bottom; const svg = chartElement diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js index baaca53324a72..063762972e268 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.test.js @@ -152,7 +152,7 @@ describe('ExplorerChart', () => { expect(+selectedInterval.getAttribute('height')).toBe(166); const xAxisTicks = wrapper.getDOMNode().querySelector('.x').querySelectorAll('.tick'); - expect([...xAxisTicks]).toHaveLength(1); + expect([...xAxisTicks]).toHaveLength(8); const yAxisTicks = wrapper.getDOMNode().querySelector('.y').querySelectorAll('.tick'); expect([...yAxisTicks]).toHaveLength(10); @@ -161,7 +161,7 @@ describe('ExplorerChart', () => { expect(paths[1].getAttribute('class')).toBe('domain'); expect(paths[2].getAttribute('class')).toBe('values-line'); expect(paths[2].getAttribute('d')).toBe( - 'MNaN,159.33024504444444ZMNaN,9.166257955555556LNaN,169.60736875555557' + 'M-19.090909090909093,159.33024504444444ZM-20,9.166257955555556L-20.22727272727273,169.60736875555557' ); const dots = wrapper.getDOMNode().querySelector('.values-dots').querySelectorAll('circle'); From 78da1e1b49ea1131069ee668aa3885222a02ad96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20=C3=81brah=C3=A1m?= Date: Tue, 23 Apr 2024 10:49:06 +0200 Subject: [PATCH 054/183] [EDR Workflow] Fix policy details FTRs (#181321) ## Summary This PR unskips some skipped Policy Details functional tests. They were not flaky, they failed due to changed behaviour: no confirmation modal is shown to the user when leaving Policy Details editor, if no changes were made. (I think this is the related PR: https://github.com/elastic/kibana/pull/147470) --- .../apps/integrations/policy_details.ts | 48 +++++++------------ 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/x-pack/test/security_solution_endpoint/apps/integrations/policy_details.ts b/x-pack/test/security_solution_endpoint/apps/integrations/policy_details.ts index b48c64b5e9dd4..a86ba58556060 100644 --- a/x-pack/test/security_solution_endpoint/apps/integrations/policy_details.ts +++ b/x-pack/test/security_solution_endpoint/apps/integrations/policy_details.ts @@ -375,38 +375,22 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { ); }); - // Failing: See https://github.com/elastic/kibana/issues/138776 - it.skip('should show trusted apps card and link should go back to policy', async () => { - await testSubjects.existOrFail('trustedApps-fleet-integration-card'); - await (await testSubjects.find('trustedApps-link-to-exceptions')).click(); - await (await testSubjects.find('confirmModalConfirmButton')).click(); // Fleet show a confirm modal on unsaved changes - await testSubjects.existOrFail('policyDetailsPage'); - await (await testSubjects.find('policyDetailsBackLink')).click(); - await testSubjects.existOrFail('endpointIntegrationPolicyForm'); - }); - it.skip('should show event filters card and link should go back to policy', async () => { - await testSubjects.existOrFail('eventFilters-fleet-integration-card'); - const eventFiltersCard = await testSubjects.find('eventFilters-fleet-integration-card'); - await pageObjects.ingestManagerCreatePackagePolicy.scrollToCenterOfWindow(eventFiltersCard); - await (await testSubjects.find('eventFilters-link-to-exceptions')).click(); - await (await testSubjects.find('confirmModalConfirmButton')).click(); // Fleet show a confirm modal on unsaved changes - await testSubjects.existOrFail('policyDetailsPage'); - await (await testSubjects.find('policyDetailsBackLink')).click(); - await testSubjects.existOrFail('endpointIntegrationPolicyForm'); - }); - it.skip('should show blocklists card and link should go back to policy', async () => { - await testSubjects.existOrFail('blocklists-fleet-integration-card'); - const blocklistsCard = await testSubjects.find('blocklists-fleet-integration-card'); - await pageObjects.ingestManagerCreatePackagePolicy.scrollToCenterOfWindow(blocklistsCard); - await (await testSubjects.find('blocklists-link-to-exceptions')).click(); - await (await testSubjects.find('confirmModalConfirmButton')).click(); // Fleet show a confirm modal on unsaved changes - await testSubjects.existOrFail('policyDetailsPage'); - await (await testSubjects.find('policyDetailsBackLink')).click(); - await testSubjects.existOrFail('endpointIntegrationPolicyForm'); - }); - it.skip('should not show host isolation exceptions card because no entries', async () => { - await testSubjects.missingOrFail('hostIsolationExceptions-fleet-integration-card'); - }); + ['trustedApps', 'eventFilters', 'blocklists', 'hostIsolationExceptions'].forEach( + (cardName) => { + it(`should show ${cardName} card and link should go back to policy`, async () => { + await testSubjects.existOrFail(`${cardName}-fleet-integration-card`); + + const card = await testSubjects.find(`${cardName}-fleet-integration-card`); + await pageObjects.ingestManagerCreatePackagePolicy.scrollToCenterOfWindow(card); + await (await testSubjects.find(`${cardName}-link-to-exceptions`)).click(); + + await testSubjects.existOrFail('policyDetailsPage'); + + await (await testSubjects.find('policyDetailsBackLink')).click(); + await testSubjects.existOrFail('endpointIntegrationPolicyForm'); + }); + } + ); }); }); } From eccfdb7c093b999f57a82b1cee66f48dac3632da Mon Sep 17 00:00:00 2001 From: Tomasz Ciecierski Date: Tue, 23 Apr 2024 11:09:42 +0200 Subject: [PATCH 055/183] [EDR Workflows] Revert skipped tests (#181372) --- .../response_console/process_operations.cy.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts index d127be35f7a31..f7c70ebf8c7e9 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts @@ -26,14 +26,12 @@ import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_ const AGENT_BEAT_FILE_PATH_SUFFIX = '/components/agentbeat'; -// Failing: See https://github.com/elastic/kibana/issues/170371 -describe.skip('Response console', { tags: ['@ess', '@serverless'] }, () => { +describe('Response console', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { login(); }); - // FLAKY: https://github.com/elastic/kibana/issues/170371 - describe.skip('Processes operations:', () => { + describe('Processes operations:', () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse; From b67d45b3d2485485fa111f814f8c80934ba1df30 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Tue, 23 Apr 2024 12:19:13 +0300 Subject: [PATCH 056/183] fix: [SCREEN READER]: flyouts must announce itself on render and manage focus (#180888) Part of: https://github.com/elastic/security-team/issues/8657 ## Summary This PR is a component of https://github.com/elastic/security-team/issues/8657 and addresses a part of the issue where the flyout must announce itself upon render. This issue was found to be valid for almost all flyouts in the Security Solution's code, and this PR rectifies these cases. ## What was done? 1. In accordance with [EUI doc](https://eui.elastic.co/#/layout/flyout) we should `Use aria-labelledby={headingId} to announce the flyout to screen readers.` ## Screens: ### `a11y` tree #### Before: image #### After: image --- .../components/add_exception_flyout/index.tsx | 10 +++++++++- .../components/edit_exception_flyout/index.tsx | 16 ++++++++++++++-- .../rule_details/rule_details_flyout.tsx | 8 +++++++- .../components/osquery/osquery_flyout.tsx | 17 ++++++++++++++--- .../value_lists_management_flyout/flyout.tsx | 9 +++++++-- .../create_shared_exception_list/index.tsx | 13 ++++++++++++- .../import_exceptions_list_flyout/index.tsx | 14 ++++++++++++-- .../components/artifact_flyout.tsx | 16 ++++++++++++++-- .../components/action_log_button.tsx | 10 +++++++++- .../view/components/event_filters_flyout.tsx | 8 +++++++- .../flyout/policy_artifacts_flyout.tsx | 13 +++++++++++-- 11 files changed, 116 insertions(+), 18 deletions(-) diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx index 7ed3566c3059f..2a6b5c9523cfe 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx @@ -24,6 +24,7 @@ import { EuiCallOut, EuiText, useEuiTheme, + useGeneratedHtmlId, } from '@elastic/eui'; import { ENDPOINT_LIST_ID } from '@kbn/securitysolution-list-constants'; @@ -494,17 +495,24 @@ export const AddExceptionFlyout = memo(function AddExceptionFlyout({ : i18n.CREATE_RULE_EXCEPTION; }, [listType]); + const exceptionFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'exceptionFlyoutTitle', + }); + return ( -

{addExceptionMessage}

+

+ {addExceptionMessage} +

diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/edit_exception_flyout/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/edit_exception_flyout/index.tsx index 8c27b5da22450..6470db5c9b4a0 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/edit_exception_flyout/index.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/edit_exception_flyout/index.tsx @@ -20,6 +20,7 @@ import { EuiFlyout, EuiFlyoutFooter, EuiSkeletonText, + useGeneratedHtmlId, } from '@elastic/eui'; import type { @@ -362,11 +363,22 @@ const EditExceptionFlyoutComponent: React.FC = ({ ] ); + const exceptionFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'exceptionFlyoutTitle', + }); + return ( - + -

{editExceptionMessage}

+

+ {editExceptionMessage} +

diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_details_flyout.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_details_flyout.tsx index d6507115bcd48..0a0661fd89e0a 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_details_flyout.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management/components/rule_details/rule_details_flyout.tsx @@ -20,6 +20,7 @@ import { EuiSpacer, EuiFlexGroup, EuiFlexItem, + useGeneratedHtmlId, } from '@elastic/eui'; import type { EuiTabbedContentTab, EuiTabbedContentProps, EuiFlyoutProps } from '@elastic/eui'; @@ -181,6 +182,10 @@ export const RuleDetailsFlyout = ({ setSelectedTabId(tab.id); }; + const prebuiltRulesFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'prebuiltRulesFlyoutTitle', + }); + return ( -

{rule.name}

+

{rule.name}

diff --git a/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx b/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx index 3dc2f948536cd..b4758bf79616d 100644 --- a/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx @@ -7,7 +7,14 @@ import React, { useCallback } from 'react'; import styled from 'styled-components'; -import { EuiFlyout, EuiFlyoutFooter, EuiFlyoutBody, EuiFlyoutHeader, EuiTitle } from '@elastic/eui'; +import { + EuiFlyout, + EuiFlyoutFooter, + EuiFlyoutBody, + EuiFlyoutHeader, + EuiTitle, + useGeneratedHtmlId, +} from '@elastic/eui'; import { useQueryClient } from '@tanstack/react-query'; import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs'; import { useKibana } from '../../../common/lib/kibana'; @@ -50,12 +57,16 @@ const OsqueryFlyoutComponent: React.FC = ({ }); }, [defaultValues?.alertIds, queryClient]); + const osqueryFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'osqueryFlyoutTitle', + }); + if (osquery?.OsqueryAction) { return ( - + -

{ACTION_OSQUERY}

+

{ACTION_OSQUERY}

diff --git a/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/flyout.tsx b/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/flyout.tsx index 785dbcbaaff7a..51924ffb5ee58 100644 --- a/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/flyout.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/flyout.tsx @@ -17,6 +17,7 @@ import { EuiTitle, EuiSpacer, EuiText, + useGeneratedHtmlId, } from '@elastic/eui'; import type { ListSchema } from '@kbn/securitysolution-io-ts-list-types'; @@ -199,6 +200,10 @@ export const ValueListsFlyoutComponent: React.FC = ({ }); }, []); + const valueListsFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'valueListsFlyoutTitle', + }); + if (!showFlyout) { return null; } @@ -219,10 +224,10 @@ export const ValueListsFlyoutComponent: React.FC = ({ return ( <> - + -

{i18n.VALUE_LISTS_FLYOUT_TITLE}

+

{i18n.VALUE_LISTS_FLYOUT_TITLE}

diff --git a/x-pack/plugins/security_solution/public/exceptions/components/create_shared_exception_list/index.tsx b/x-pack/plugins/security_solution/public/exceptions/components/create_shared_exception_list/index.tsx index a6c1a270d6b02..9c465b202b8ca 100644 --- a/x-pack/plugins/security_solution/public/exceptions/components/create_shared_exception_list/index.tsx +++ b/x-pack/plugins/security_solution/public/exceptions/components/create_shared_exception_list/index.tsx @@ -21,6 +21,7 @@ import { EuiButtonEmpty, EuiButton, EuiFlexItem, + useGeneratedHtmlId, } from '@elastic/eui'; import type { HttpSetup } from '@kbn/core-http-browser'; import type { ErrorToastOptions, Toast, ToastInput } from '@kbn/core-notifications-browser'; @@ -153,16 +154,26 @@ export const CreateSharedListFlyout = memo( handleCreateSuccess, ]); + const createSharedExceptionListFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'createSharedExceptionListFlyout', + }); + return ( -

{CREATE_SHARED_LIST_TITLE}

+

+ {CREATE_SHARED_LIST_TITLE} +

diff --git a/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx b/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx index 38619519f0c28..ec9a01f280d0e 100644 --- a/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx +++ b/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx @@ -146,11 +146,21 @@ export const ImportExceptionListFlyout = React.memo( const handleFileChange = useCallback((inputFiles: FileList | null) => { setFiles(inputFiles ?? null); }, []); + + const importExceptionListFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'importExceptionListFlyoutTitle', + }); + return ( - setDisplayImportListFlyout(false)}> + setDisplayImportListFlyout(false)} + aria-labelledby={importExceptionListFlyoutTitleId} + > -

{i18n.IMPORT_EXCEPTION_LIST_HEADER}

+

{i18n.IMPORT_EXCEPTION_LIST_HEADER}

diff --git a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/artifact_flyout.tsx b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/artifact_flyout.tsx index 06c43626955c4..3fe20be2cbd64 100644 --- a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/artifact_flyout.tsx +++ b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/artifact_flyout.tsx @@ -20,6 +20,7 @@ import { EuiFlyoutFooter, EuiFlyoutHeader, EuiTitle, + useGeneratedHtmlId, } from '@elastic/eui'; import type { EuiFlyoutSize } from '@elastic/eui/src/components/flyout/flyout'; @@ -387,15 +388,26 @@ export const ArtifactFlyout = memo( } }, [error, isEditFlow, labels, setUrlParams, toasts, urlParams.itemId]); + const artifactFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'artifactFlyoutTitle', + }); + if (!isFlyoutOpened || error) { return null; } return ( - + -

{isEditFlow ? labels.flyoutEditTitle : labels.flyoutCreateTitle}

+

+ {isEditFlow ? labels.flyoutEditTitle : labels.flyoutCreateTitle} +

{!isInitializing && showExpiredLicenseBanner && ( diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/components/action_log_button.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/components/action_log_button.tsx index f3c5d165d7b72..f9960ecbdfe82 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_responder/components/action_log_button.tsx +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_responder/components/action_log_button.tsx @@ -13,6 +13,7 @@ import { EuiFlyoutHeader, EuiTitle, useEuiTheme, + useGeneratedHtmlId, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import type { EndpointResponderExtensionComponentProps } from '../types'; @@ -28,6 +29,10 @@ export const ActionLogButton = memo((p }); }, []); + const responderActionLogFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'responderActionLogFlyoutTitle', + }); + return ( <> ((p onClose={toggleActionLog} size="m" paddingSize="l" + aria-labelledby={responderActionLogFlyoutTitleId} data-test-subj="responderActionLogFlyout" // EUI TODO: This z-index override of EuiOverlayMask is a workaround, and ideally should be resolved with a cleaner UI/UX flow long-term maskProps={{ style: `z-index: ${(euiTheme.levels.flyout as number) + 3}` }} // we need this flyout to be above the timeline flyout (which has a z-index of 1002) > -

{UX_MESSAGES.flyoutTitle(props.meta.hostName)}

+

+ {UX_MESSAGES.flyoutTitle(props.meta.hostName)} +

diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/event_filters_flyout.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/event_filters_flyout.tsx index 1ffc9c52b7f7b..298d5208a0ce5 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/event_filters_flyout.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/event_filters_flyout.tsx @@ -19,6 +19,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiTextColor, + useGeneratedHtmlId, } from '@elastic/eui'; import { lastValueFrom } from 'rxjs'; @@ -184,6 +185,10 @@ export const EventFiltersFlyout: React.FC = memo( setConfirmModalLabels(formState.confirmModalLabels); }, []); + const eventFiltersCreateFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'eventFiltersCreateFlyoutTitle', + }); + const confirmModal = useMemo(() => { if (confirmModalLabels) { const { title, body, confirmButton, cancelButton } = confirmModalLabels; @@ -206,11 +211,12 @@ export const EventFiltersFlyout: React.FC = memo( size="l" onClose={handleOnClose} data-test-subj="eventFiltersCreateFlyout" + aria-labelledby={eventFiltersCreateFlyoutTitleId} {...flyoutProps} > -

+

{data ? ( ( labels.flyoutNoSearchResultsMessage, ]); + const artifactsAssignFlyoutTitleId = useGeneratedHtmlId({ + prefix: 'artifactsAssignFlyoutTitle', + }); + return ( - + -

{labels.flyoutTitle}

+

{labels.flyoutTitle}

{labels.flyoutSubtitle(policyItem.name)} From dbe4a3708cbf6ee6c44f2a1c8919b7f52558d0c6 Mon Sep 17 00:00:00 2001 From: Faisal Kanout Date: Tue, 23 Apr 2024 11:26:21 +0200 Subject: [PATCH 057/183] [OBS-UX-MNGMT][ALERTING]Tweak wording for data source warning (#181139) ## Summary It fixes #181074 by updating the warning wording to > Alerting rules use this data source setting. One or more alerting rules rely on this data source setting. Changing this setting will change which data is used to generate alerts. ![Screenshot 2024-04-18 at 13 27 13](https://github.com/elastic/kibana/assets/6838659/99930e4c-874b-4515-9790-84ddd94dec28) --- .../pages/logs/settings/indices_configuration_panel.tsx | 4 ++-- .../pages/metrics/settings/indices_configuration_panel.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/observability_solution/infra/public/pages/logs/settings/indices_configuration_panel.tsx b/x-pack/plugins/observability_solution/infra/public/pages/logs/settings/indices_configuration_panel.tsx index 4202b4babe728..bcde2cf84bb4a 100644 --- a/x-pack/plugins/observability_solution/infra/public/pages/logs/settings/indices_configuration_panel.tsx +++ b/x-pack/plugins/observability_solution/infra/public/pages/logs/settings/indices_configuration_panel.tsx @@ -168,14 +168,14 @@ export const IndicesConfigurationPanel = React.memo<{ data-test-subj="infraIndicesPanelSettingsWarningCallout" size="m" title={i18n.translate('xpack.infra.sourceConfiguration.logsIndicesUsedByRulesTitle', { - defaultMessage: 'Rules utilize this data source.', + defaultMessage: 'Alerting rules use this data source setting', })} color="warning" iconType="warning" > Date: Tue, 23 Apr 2024 11:32:00 +0200 Subject: [PATCH 058/183] Hide Starter Prompts when no Connectors are available (#181135) ## Summary Hide Starter Prompts when no Connectors are available --- .../public/components/chat/starter_prompts.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/starter_prompts.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/starter_prompts.tsx index 50ad3e730d5c0..1f5402978d41d 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/starter_prompts.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/starter_prompts.tsx @@ -17,6 +17,7 @@ import { import { css } from '@emotion/css'; import { uniq } from 'lodash'; import { useObservabilityAIAssistantAppService } from '../../hooks/use_observability_ai_assistant_app_service'; +import { useGenAIConnectors } from '../../hooks/use_genai_connectors'; import { nonNullable } from '../../utils/non_nullable'; const starterPromptClassName = css` @@ -31,6 +32,12 @@ const starterPromptInnerClassName = css` export function StarterPrompts({ onSelectPrompt }: { onSelectPrompt: (prompt: string) => void }) { const service = useObservabilityAIAssistantAppService(); + const { connectors } = useGenAIConnectors(); + + if (!connectors || connectors.length === 0) { + return null; + } + const contexts = service.getScreenContexts(); const starterPrompts = uniq( From 1ab7a2cbedc66323602814d9141e7753b9b1dd83 Mon Sep 17 00:00:00 2001 From: Janki Salvi <117571355+js-jankisalvi@users.noreply.github.com> Date: Tue, 23 Apr 2024 11:45:47 +0200 Subject: [PATCH 059/183] [Cases] Update case connector framework to use generic types (#181059) ## Summary This PR addresses comments mentioned in [here](https://github.com/elastic/kibana/pull/180561#issuecomment-2058751525) It fixes CaseConnector bugs by updating its methods to use generic types for params and response. ### 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: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/actions/server/plugin.ts | 13 +- .../server/sub_action_framework/case.test.ts | 178 ++++++++++++++---- .../server/sub_action_framework/case.ts | 64 +++---- .../server/sub_action_framework/mocks.ts | 48 +++-- .../server/sub_action_framework/types.ts | 5 + 5 files changed, 219 insertions(+), 89 deletions(-) diff --git a/x-pack/plugins/actions/server/plugin.ts b/x-pack/plugins/actions/server/plugin.ts index 24253e7d01ae4..ac5b3206b722f 100644 --- a/x-pack/plugins/actions/server/plugin.ts +++ b/x-pack/plugins/actions/server/plugin.ts @@ -100,7 +100,11 @@ import { ConnectorWithOptionalDeprecation, } from './application/connector/lib'; import { createSubActionConnectorFramework } from './sub_action_framework'; -import { IServiceAbstract, SubActionConnectorType } from './sub_action_framework/types'; +import { + ICaseServiceAbstract, + IServiceAbstract, + SubActionConnectorType, +} from './sub_action_framework/types'; import { SubActionConnector } from './sub_action_framework/sub_action_connector'; import { CaseConnector } from './sub_action_framework/case'; import type { IUnsecuredActionsClient } from './unsecured_actions_client/unsecured_actions_client'; @@ -128,7 +132,12 @@ export interface PluginSetupContract { isPreconfiguredConnector(connectorId: string): boolean; getSubActionConnectorClass: () => IServiceAbstract; - getCaseConnectorClass: () => IServiceAbstract; + getCaseConnectorClass: () => ICaseServiceAbstract< + Config, + Secrets, + Incident, + GetIncidentResponse + >; getActionsHealth: () => { hasPermanentEncryptionKey: boolean }; getActionsConfigurationUtilities: () => ActionsConfigurationUtilities; setEnabledConnectorTypes: (connectorTypes: EnabledConnectorTypes) => void; diff --git a/x-pack/plugins/actions/server/sub_action_framework/case.test.ts b/x-pack/plugins/actions/server/sub_action_framework/case.test.ts index f13d18d193485..91e2df1972de8 100644 --- a/x-pack/plugins/actions/server/sub_action_framework/case.test.ts +++ b/x-pack/plugins/actions/server/sub_action_framework/case.test.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { schema } from '@kbn/config-schema'; import { loggingSystemMock } from '@kbn/core/server/mocks'; import { MockedLogger } from '@kbn/logging-mocks'; import { actionsConfigMock } from '../actions_config.mock'; @@ -13,11 +14,24 @@ import { TestCaseConnector } from './mocks'; import { ActionsConfigurationUtilities } from '../actions_config'; describe('CaseConnector', () => { - const pushToServiceParams = { incident: { externalId: null }, comments: [] }; let logger: MockedLogger; let services: ReturnType; let mockedActionsConfig: jest.Mocked; let service: TestCaseConnector; + const pushToServiceIncidentParamsSchema = { + name: schema.string(), + category: schema.nullable(schema.string()), + foo: schema.arrayOf(schema.boolean()), + bar: schema.object({ + check: schema.nullable(schema.number()), + }), + }; + + const incidentSchemaMock = { name: 'Test', category: null, foo: [false], bar: { check: 1 } }; + const pushToServiceParams = { + incident: { externalId: null, ...incidentSchemaMock }, + comments: [], + }; beforeEach(() => { jest.resetAllMocks(); @@ -32,14 +46,17 @@ describe('CaseConnector', () => { timeout: 360000, }); - service = new TestCaseConnector({ - configurationUtilities: mockedActionsConfig, - logger, - connector: { id: 'test-id', type: '.test' }, - config: { url: 'https://example.com' }, - secrets: { username: 'elastic', password: 'changeme' }, - services, - }); + service = new TestCaseConnector( + { + configurationUtilities: mockedActionsConfig, + logger, + connector: { id: 'test-id', type: '.test' }, + config: { url: 'https://example.com' }, + secrets: { username: 'elastic', password: 'changeme' }, + services, + }, + pushToServiceIncidentParamsSchema + ); }); describe('Sub actions', () => { @@ -57,11 +74,11 @@ describe('CaseConnector', () => { const subAction = subActions.get('pushToService'); expect( subAction?.schema?.validate({ - incident: { externalId: 'test' }, + incident: { externalId: 'test', ...incidentSchemaMock }, comments: [{ comment: 'comment', commentId: 'comment-id' }], }) ).toEqual({ - incident: { externalId: 'test' }, + incident: { externalId: 'test', ...incidentSchemaMock }, comments: [{ comment: 'comment', commentId: 'comment-id' }], }); }); @@ -69,7 +86,12 @@ describe('CaseConnector', () => { it('should accept null for externalId', async () => { const subActions = service.getSubActions(); const subAction = subActions.get('pushToService'); - expect(subAction?.schema?.validate({ incident: { externalId: null }, comments: [] })); + expect( + subAction?.schema?.validate({ + incident: { externalId: null, ...incidentSchemaMock }, + comments: [], + }) + ); }); it.each([[undefined], [1], [false], [{ test: 'hello' }], [['test']], [{ test: 'hello' }]])( @@ -84,7 +106,12 @@ describe('CaseConnector', () => { it('should accept null for comments', async () => { const subActions = service.getSubActions(); const subAction = subActions.get('pushToService'); - expect(subAction?.schema?.validate({ incident: { externalId: 'test' }, comments: null })); + expect( + subAction?.schema?.validate({ + incident: { externalId: 'test', ...incidentSchemaMock }, + comments: null, + }) + ); }); it.each([ @@ -101,33 +128,64 @@ describe('CaseConnector', () => { expect(() => subAction?.schema?.validate({ incident: { externalId: 'test' }, comments })); }); - it('should allow any field in the params', async () => { + it('should throw if necessary schema params not provided', async () => { const subActions = service.getSubActions(); const subAction = subActions.get('pushToService'); - expect( + expect(() => subAction?.schema?.validate({ incident: { externalId: 'test', - foo: 'foo', - bar: 1, - baz: [{ test: 'hello' }, 1, 'test', false], - isValid: false, - val: null, }, - comments: [{ comment: 'comment', commentId: 'comment-id' }], }) - ).toEqual({ - incident: { - externalId: 'test', - foo: 'foo', - bar: 1, - baz: [{ test: 'hello' }, 1, 'test', false], - isValid: false, - val: null, - }, - comments: [{ comment: 'comment', commentId: 'comment-id' }], - }); + ).toThrow('[incident.name]: expected value of type [string] but got [undefined]'); + }); + + it('should throw if schema params does not match string type', async () => { + const subActions = service.getSubActions(); + const subAction = subActions.get('pushToService'); + + expect(() => + subAction?.schema?.validate({ + incident: { + externalId: 'test', + name: false, + }, + }) + ).toThrow('[incident.name]: expected value of type [string] but got [boolean]'); + }); + + it('should throw if schema params does not match array type', async () => { + const subActions = service.getSubActions(); + const subAction = subActions.get('pushToService'); + + expect(() => + subAction?.schema?.validate({ + incident: { + externalId: 'test', + name: 'sample', + foo: null, + }, + }) + ).toThrow('[incident.foo]: expected value of type [array] but got [null]'); + }); + + it('should throw if schema params does not match nested object type', async () => { + const subActions = service.getSubActions(); + const subAction = subActions.get('pushToService'); + + expect(() => + subAction?.schema?.validate({ + incident: { + externalId: 'test', + name: 'sample', + foo: [true], + bar: { check: 'hello' }, + }, + }) + ).toThrow( + '[incident.bar.check]: types that failed validation:\n- [incident.bar.check.0]: expected value of type [number] but got [string]\n- [incident.bar.check.1]: expected value to equal [null]' + ); }); }); @@ -144,8 +202,8 @@ describe('CaseConnector', () => { it('should update an incident if externalId is not null', async () => { const res = await service.pushToService({ - ...pushToServiceParams, - incident: { externalId: 'test-id' }, + incident: { ...pushToServiceParams.incident, externalId: 'test-id' }, + comments: [], }); expect(res).toEqual({ @@ -212,4 +270,56 @@ describe('CaseConnector', () => { }); }); }); + + describe('PushParamsSchema', () => { + let newService: TestCaseConnector; + beforeEach(() => { + jest.resetAllMocks(); + jest.clearAllMocks(); + + const newPushToServiceSchema = { + name: schema.string(), + externalId: schema.number(), + }; + + newService = new TestCaseConnector( + { + configurationUtilities: mockedActionsConfig, + logger, + connector: { id: 'test-id', type: '.test' }, + config: { url: 'https://example.com' }, + secrets: { username: 'elastic', password: 'changeme' }, + services, + }, + newPushToServiceSchema + ); + }); + + it('should add externalId as null', async () => { + const subActions = newService.getSubActions(); + const subAction = subActions.get('pushToService'); + expect( + subAction?.schema?.validate({ + incident: { name: 'foo' }, + comments: [], + }) + ).toEqual({ + incident: { name: 'foo', externalId: null }, + comments: [], + }); + }); + + it('should not override externalId schema', async () => { + const subActions = newService.getSubActions(); + const subAction = subActions.get('pushToService'); + expect(() => + subAction?.schema?.validate({ + incident: { name: 'foo', externalId: 123 }, + comments: [], + }) + ).toThrow( + '[incident.externalId]: types that failed validation:\n- [incident.externalId.0]: expected value of type [string] but got [number]\n- [incident.externalId.1]: expected value to equal [null]' + ); + }); + }); }); diff --git a/x-pack/plugins/actions/server/sub_action_framework/case.ts b/x-pack/plugins/actions/server/sub_action_framework/case.ts index c7419d5de1b0f..24a0512378912 100644 --- a/x-pack/plugins/actions/server/sub_action_framework/case.ts +++ b/x-pack/plugins/actions/server/sub_action_framework/case.ts @@ -5,50 +5,45 @@ * 2.0. */ -import { schema } from '@kbn/config-schema'; -import { - ExternalServiceIncidentResponse, - PushToServiceParams, - PushToServiceResponse, -} from './types'; +import { schema, Type } from '@kbn/config-schema'; +import { ExternalServiceIncidentResponse, PushToServiceResponse } from './types'; import { SubActionConnector } from './sub_action_connector'; import { ServiceParams } from './types'; -export interface CaseConnectorInterface { - addComment: ({ - incidentId, - comment, - }: { - incidentId: string; - comment: string; - }) => Promise; - createIncident: (incident: Record) => Promise; +export interface CaseConnectorInterface { + addComment: ({ incidentId, comment }: { incidentId: string; comment: string }) => Promise; + createIncident: (incident: Incident) => Promise; updateIncident: ({ incidentId, incident, }: { incidentId: string; - incident: Record; + incident: Incident; }) => Promise; - getIncident: ({ id }: { id: string }) => Promise; - pushToService: (params: PushToServiceParams) => Promise; + getIncident: ({ id }: { id: string }) => Promise; + pushToService: (params: { + incident: { externalId: string | null } & Incident; + comments: Array<{ commentId: string; comment: string }>; + }) => Promise; } -export abstract class CaseConnector +export abstract class CaseConnector extends SubActionConnector - implements CaseConnectorInterface + implements CaseConnectorInterface { - constructor(params: ServiceParams) { + constructor( + params: ServiceParams, + pushToServiceIncidentParamsSchema: Record> + ) { super(params); this.registerSubAction({ name: 'pushToService', method: 'pushToService', schema: schema.object({ - incident: schema.object( - { externalId: schema.nullable(schema.string()) }, - { unknowns: 'allow' } - ), + incident: schema + .object(pushToServiceIncidentParamsSchema) + .extends({ externalId: schema.nullable(schema.string()) }), comments: schema.nullable( schema.arrayOf( schema.object({ @@ -67,21 +62,22 @@ export abstract class CaseConnector }: { incidentId: string; comment: string; - }): Promise; + }): Promise; - public abstract createIncident( - incident: Record - ): Promise; + public abstract createIncident(incident: Incident): Promise; public abstract updateIncident({ incidentId, incident, }: { incidentId: string; - incident: Record; + incident: Incident; }): Promise; - public abstract getIncident({ id }: { id: string }): Promise; + public abstract getIncident({ id }: { id: string }): Promise; - public async pushToService(params: PushToServiceParams) { + public async pushToService(params: { + incident: { externalId: string | null } & Incident; + comments: Array<{ commentId: string; comment: string }>; + }) { const { incident, comments } = params; const { externalId, ...rest } = incident; @@ -90,10 +86,10 @@ export abstract class CaseConnector if (externalId != null) { res = await this.updateIncident({ incidentId: externalId, - incident: rest, + incident: rest as Incident, }); } else { - res = await this.createIncident(rest); + res = await this.createIncident(rest as Incident); } if (comments && Array.isArray(comments) && comments.length > 0) { diff --git a/x-pack/plugins/actions/server/sub_action_framework/mocks.ts b/x-pack/plugins/actions/server/sub_action_framework/mocks.ts index 274662bb7a35f..572aa20422a94 100644 --- a/x-pack/plugins/actions/server/sub_action_framework/mocks.ts +++ b/x-pack/plugins/actions/server/sub_action_framework/mocks.ts @@ -6,7 +6,7 @@ */ /* eslint-disable max-classes-per-file */ -import { schema, TypeOf } from '@kbn/config-schema'; +import { schema, Type, TypeOf } from '@kbn/config-schema'; import { AxiosError } from 'axios'; import { SubActionConnector } from './sub_action_connector'; import { CaseConnector } from './case'; @@ -20,6 +20,18 @@ export const TestSecretsSchema = schema.object({ export type TestConfig = TypeOf; export type TestSecrets = TypeOf; +export interface GetIncidentResponse { + id: string; + title: string; + description?: string; + severity: number; +} + +export interface Incident { + name: string; + category: string | null; +} + interface ErrorSchema { errorMessage: string; errorCode: number; @@ -133,18 +145,24 @@ export class TestExecutor extends SubActionConnector { public noAsync() {} } -export class TestCaseConnector extends CaseConnector { - constructor(params: ServiceParams) { - super(params); +export class TestCaseConnector extends CaseConnector< + TestConfig, + TestSecrets, + Incident, + GetIncidentResponse +> { + constructor( + params: ServiceParams, + pushToServiceParamsSchema: Record> + ) { + super(params, pushToServiceParamsSchema); } protected getResponseErrorMessage(error: AxiosError) { return `Message: ${error.response?.data.errorMessage}. Code: ${error.response?.data.errorCode}`; } - public async createIncident(incident: { - category: string; - }): Promise { + public async createIncident(incident: Incident): Promise { return { id: 'create-incident', title: 'Test incident', @@ -159,21 +177,14 @@ export class TestCaseConnector extends CaseConnector { }: { incidentId: string; comment: string; - }): Promise { - return { - id: 'add-comment', - title: 'Test incident', - url: 'https://example.com', - pushedDate: '2022-05-06T09:41:00.401Z', - }; - } + }): Promise {} public async updateIncident({ incidentId, incident, }: { incidentId: string; - incident: { category: string }; + incident: Incident; }): Promise { return { id: 'update-incident', @@ -183,12 +194,11 @@ export class TestCaseConnector extends CaseConnector { }; } - public async getIncident({ id }: { id: string }): Promise { + public async getIncident({ id }: { id: string }): Promise { return { id: 'get-incident', title: 'Test incident', - url: 'https://example.com', - pushedDate: '2022-05-06T09:41:00.401Z', + severity: 4, }; } } diff --git a/x-pack/plugins/actions/server/sub_action_framework/types.ts b/x-pack/plugins/actions/server/sub_action_framework/types.ts index a95f25edee49f..9a197fc5a01e8 100644 --- a/x-pack/plugins/actions/server/sub_action_framework/types.ts +++ b/x-pack/plugins/actions/server/sub_action_framework/types.ts @@ -48,6 +48,11 @@ export type IServiceAbstract = abstract new ( params: ServiceParams ) => SubActionConnector; +export type ICaseServiceAbstract = abstract new ( + params: ServiceParams, + pushToServiceIncidentParamsSchema: Record> +) => SubActionConnector; + export enum ValidatorType { CONFIG, SECRETS, From 48286557c11ca5ded61d3966cf2bb6118930d36e Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Tue, 23 Apr 2024 05:47:26 -0400 Subject: [PATCH 060/183] [Observability Onboarding] Add virtual otel onboarding card (#180843) ## Summary Resolves #178946. ## Why am I being pinged ### AppEx ~I've added a custom SVG for Open Telemetry as part of this patch. I've never done this in this manner before, so if there is any issue with the way I'm doing it please call it out.~ I moved the SVG out of the home plugin and am just keeping it in the assets of the onboarding plugin now. ### APM/obs-ux The APM onboarding flow doesn't support deep linking via hash (or if it does I missed how it works). This changes the onboarding instructions component to pick up the hash on the initial load, and update the history as the user clicks around the different tabs. ### Logs This adds a virtual card for Open Telemetry to the application monitoring phase of the new onboarding flow. You can see this by going to the experimental flow and clicking the second question. I'll include a GIF of this. ![20240415141016](https://github.com/elastic/kibana/assets/18429259/7bbc6976-9320-417d-b804-9dc2dfa7d315) --------- Co-authored-by: Joe Reuter --- .../app/onboarding/instructions_set.tsx | 15 ++-- .../components/routing/onboarding/index.tsx | 18 +++++ .../onboarding_flow_form.tsx | 3 +- .../use_custom_cards_for_category.ts | 69 ++++++++++++------- .../application/packages_list/index.tsx | 2 +- .../public/application/packages_list/types.ts | 6 +- .../use_integration_card_list.ts | 2 +- .../public/application/packages_list/utils.ts | 2 +- .../public/assets/opentelemetry.svg | 14 ++++ 9 files changed, 97 insertions(+), 34 deletions(-) create mode 100644 x-pack/plugins/observability_solution/observability_onboarding/public/assets/opentelemetry.svg diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/onboarding/instructions_set.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/onboarding/instructions_set.tsx index 7f045beb0fa9e..8d8a83265813c 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/onboarding/instructions_set.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/onboarding/instructions_set.tsx @@ -6,7 +6,8 @@ */ import { EuiSplitPanel, EuiTabs, EuiTab, EuiTitle, EuiSteps, EuiSpacer } from '@elastic/eui'; -import React, { useState } from 'react'; +import React from 'react'; +import { useHistory } from 'react-router-dom'; import { useEuiTheme } from '@elastic/eui'; import { INSTRUCTION_VARIANT, @@ -14,6 +15,8 @@ import { InstructionVariant, InstructionSet, } from './instruction_variants'; +import { useApmParams } from '../../../hooks/use_apm_params'; +import { push } from '../../shared/links/url_helpers'; interface AgentTab { id: INSTRUCTION_VARIANT; @@ -30,9 +33,13 @@ function getTabs(variants: InstructionVariant[]): AgentTab[] { export function InstructionsSet({ instructions }: { instructions: InstructionSet }) { const tabs = getTabs(instructions.instructionVariants); - const [selectedTab, setSelectedTab] = useState(tabs[0].id); - const onSelectedTabChange = (tab: string) => { - setSelectedTab(tab); + const { + query: { agent: agentQuery }, + } = useApmParams('/onboarding'); + const history = useHistory(); + const selectedTab = agentQuery ?? tabs[0].id; + const onSelectedTabChange = (agent: string) => { + push(history, { query: { agent } }); }; const { euiTheme } = useEuiTheme(); diff --git a/x-pack/plugins/observability_solution/apm/public/components/routing/onboarding/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/routing/onboarding/index.tsx index 46d1317dfdee3..6fb6624b94e82 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/routing/onboarding/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/routing/onboarding/index.tsx @@ -5,11 +5,29 @@ * 2.0. */ +import * as t from 'io-ts'; import React from 'react'; import { Onboarding } from '../../app/onboarding'; +import { INSTRUCTION_VARIANT } from '../../app/onboarding/instruction_variants'; export const onboarding = { '/onboarding': { element: , + params: t.partial({ + query: t.partial({ + agent: t.union([ + t.literal(INSTRUCTION_VARIANT.NODE), + t.literal(INSTRUCTION_VARIANT.DJANGO), + t.literal(INSTRUCTION_VARIANT.FLASK), + t.literal(INSTRUCTION_VARIANT.RAILS), + t.literal(INSTRUCTION_VARIANT.RACK), + t.literal(INSTRUCTION_VARIANT.GO), + t.literal(INSTRUCTION_VARIANT.JAVA), + t.literal(INSTRUCTION_VARIANT.DOTNET), + t.literal(INSTRUCTION_VARIANT.PHP), + t.literal(INSTRUCTION_VARIANT.OPEN_TELEMETRY), + ]), + }), + }), }, }; diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx index e5977ff0172c7..1e10139963a75 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx @@ -188,7 +188,8 @@ export const OnboardingFlowForm: FunctionComponent = () => { flowCategory={searchParams.get('category')} ref={packageListRef} customCards={customCards?.filter( - (card) => card.type === 'generated' && !card.isCollectionCard + // Filter out collection cards and regular integrations that show up via search anyway + (card) => card.type === 'virtual' && !card.isCollectionCard )} joinCardLists /> diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts index a9cc265b753af..ccf974cea897b 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/use_custom_cards_for_category.ts @@ -21,7 +21,11 @@ export function useCustomCardsForCategory( ): CustomCard[] | undefined { const history = useHistory(); const location = useLocation(); - const getUrlForApp = useKibana()?.services.application?.getUrlForApp; + const { + services: { application, http }, + } = useKibana(); + const getUrlForApp = application?.getUrlForApp; + const basePath = http?.basePath; const { href: systemLogsUrl } = reactRouterNavigate(history, `/systemLogs/${location.search}`); const { href: customLogsUrl } = reactRouterNavigate(history, `/customLogs/${location.search}`); @@ -30,8 +34,8 @@ export function useCustomCardsForCategory( case 'apm': return [ { - id: 'apm-generated', - type: 'generated', + id: 'apm-virtual', + type: 'virtual', title: 'Elastic APM', description: 'Collect distributed traces from your applications with Elastic APM', name: 'apm', @@ -42,13 +46,32 @@ export function useCustomCardsForCategory( src: 'apmApp', }, ], - url: getUrlForApp?.('apm') ?? '', + url: `${getUrlForApp?.('apm')}/onboarding` ?? '', version: '', integration: '', }, { - id: 'synthetics-generated', - type: 'generated', + id: 'otel-virtual', + type: 'virtual', + title: 'OpenTelemetry', + description: 'Collect distributed traces with OpenTelemetry', + name: 'otel', + categories: ['observability'], + icons: [ + { + type: 'svg', + src: + basePath?.prepend('/plugins/observabilityOnboarding/assets/opentelemetry.svg') ?? + '', + }, + ], + url: `${getUrlForApp?.('apm')}/onboarding?agent=openTelemetry` ?? '', + version: '', + integration: '', + }, + { + id: 'synthetics-virtual', + type: 'virtual', title: 'Synthetic monitor', description: 'Monitor endpoints, pages, and user journeys', name: 'synthetics', @@ -70,8 +93,8 @@ export function useCustomCardsForCategory( toFeaturedCard('prometheus'), toFeaturedCard('docker'), { - id: 'azure-generated', - type: 'generated', + id: 'azure-virtual', + type: 'virtual', title: 'Azure', description: 'Collect logs and metrics from Microsoft Azure', name: 'azure', @@ -84,8 +107,8 @@ export function useCustomCardsForCategory( onCardClick: createCollectionCardHandler('azure'), }, { - id: 'aws-generated', - type: 'generated', + id: 'aws-virtual', + type: 'virtual', title: 'AWS', description: 'Collect logs and metrics from Amazon Web Services (AWS)', name: 'aws', @@ -98,8 +121,8 @@ export function useCustomCardsForCategory( onCardClick: createCollectionCardHandler('aws'), }, { - id: 'gcp-generated', - type: 'generated', + id: 'gcp-virtual', + type: 'virtual', title: 'Google Cloud Platform', description: 'Collect logs and metrics from Google Cloud Platform', name: 'gcp', @@ -116,15 +139,15 @@ export function useCustomCardsForCategory( return [ { id: 'system-logs', - type: 'generated', + type: 'virtual', title: 'Stream host system logs', description: 'The quickest path to onboard log data from your own machine or server', - name: 'system-logs-generated', + name: 'system-logs-virtual', categories: ['observability'], icons: [ { type: 'svg', - src: '/XXXXXXXXXXXX/plugins/home/assets/logos/system.svg', + src: basePath?.prepend('/plugins/home/assets/logos/system.svg') ?? '', }, ], url: systemLogsUrl, @@ -133,10 +156,10 @@ export function useCustomCardsForCategory( }, { id: 'custom-logs', - type: 'generated', + type: 'virtual', title: 'Stream log files', description: 'Stream any logs into Elastic in a simple way and explore their data', - name: 'custom-logs-generated', + name: 'custom-logs-virtual', categories: ['observability'], icons: [ { @@ -150,8 +173,8 @@ export function useCustomCardsForCategory( }, toFeaturedCard('nginx'), { - id: 'azure-logs-generated', - type: 'generated', + id: 'azure-logs-virtual', + type: 'virtual', title: 'Azure', description: 'Collect logs from Microsoft Azure', name: 'azure', @@ -164,8 +187,8 @@ export function useCustomCardsForCategory( onCardClick: createCollectionCardHandler('azure'), }, { - id: 'aws-logs-generated', - type: 'generated', + id: 'aws-logs-virtual', + type: 'virtual', title: 'AWS', description: 'Collect logs from Amazon Web Services (AWS)', name: 'aws', @@ -178,8 +201,8 @@ export function useCustomCardsForCategory( onCardClick: createCollectionCardHandler('aws'), }, { - id: 'gcp-logs-generated', - type: 'generated', + id: 'gcp-logs-virtual', + type: 'virtual', title: 'Google Cloud Platform', description: 'Collect logs from Google Cloud Platform', name: 'gcp', diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx index 135e4650ccc09..ad02ad7b977cb 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx @@ -19,7 +19,7 @@ import { CustomCard } from './types'; interface Props { /** - * A subset of either existing card names to feature, or generated + * A subset of either existing card names to feature, or virtual * cards to display. The inclusion of CustomCards will override the default * list functionality. */ diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/types.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/types.ts index 31b5ed945be45..f999ebb5e5db0 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/types.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/types.ts @@ -7,8 +7,8 @@ import { IntegrationCardItem } from '@kbn/fleet-plugin/public'; -export type GeneratedCard = { - type: 'generated'; +export type VirtualCard = { + type: 'virtual'; } & IntegrationCardItem; export interface FeaturedCard { @@ -16,4 +16,4 @@ export interface FeaturedCard { name: string; } -export type CustomCard = FeaturedCard | GeneratedCard; +export type CustomCard = FeaturedCard | VirtualCard; diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts index 4d52856ce5551..9532826cd96e7 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/use_integration_card_list.ts @@ -70,7 +70,7 @@ function formatCustomCards( for (const card of customCards) { if (card.type === 'featured' && !!featuredCards[card.name]) { cards.push(toCustomCard(rewriteUrl(featuredCards[card.name]!))); - } else if (card.type === 'generated') { + } else if (card.type === 'virtual') { cards.push(toCustomCard(rewriteUrl(card))); } } diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts index 22552f9df44fa..aa7927f5620d2 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/utils.ts @@ -7,7 +7,7 @@ import { IntegrationCardItem } from '@kbn/fleet-plugin/public'; -export const QUICKSTART_FLOWS = ['system-logs-generated', 'custom-logs-generated']; +export const QUICKSTART_FLOWS = ['system-logs-virtual', 'custom-logs-virtual']; export const toCustomCard = (card: IntegrationCardItem) => ({ ...card, diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/assets/opentelemetry.svg b/x-pack/plugins/observability_solution/observability_onboarding/public/assets/opentelemetry.svg new file mode 100644 index 0000000000000..a4dc58e057630 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/assets/opentelemetry.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + From 67bc795f8d5489ce3ed7685eb3e6dd218b9da61c Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Tue, 23 Apr 2024 05:19:01 -0500 Subject: [PATCH 061/183] [data views] Fix create runtime field functional test on MKI (#181101) ## Summary Addresses flaky test that fails to set the runtime field type to composite. Passed a 50x run on the flaky test runner - https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5724 Attempts to avoid this happening - ![image (4)](https://github.com/elastic/kibana/assets/216176/57f38aed-1e70-4fa7-82e6-b9f84e8cb509) --- test/functional/page_objects/settings_page.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/test/functional/page_objects/settings_page.ts b/test/functional/page_objects/settings_page.ts index 546e08fe31115..e3e68613d8873 100644 --- a/test/functional/page_objects/settings_page.ts +++ b/test/functional/page_objects/settings_page.ts @@ -787,7 +787,7 @@ export class SettingsPageObject extends FtrService { ) { await this.clickAddField(); await this.setFieldName(name); - await this.setFieldTypeComposite(); + await this.setFieldType('Composite'); await this.setCompositeScript(script); if (subfieldCount > 0) { await this.testSubjects.find(`typeField_${subfieldCount - 1}`); @@ -874,14 +874,13 @@ export class SettingsPageObject extends FtrService { } async setFieldType(type: string) { + const typeFieldDataTestSubj = 'typeField'; this.log.debug('set type = ' + type); - await this.comboBox.set('typeField', type); - } - - async setFieldTypeComposite() { - this.log.debug('set type = Composite'); - await this.testSubjects.setValue('typeField', 'Composite'); - await this.browser.pressKeys(this.browser.keys.RETURN); + await this.retry.try(async () => { + await this.comboBox.set(typeFieldDataTestSubj, type); + const comboBox = await this.testSubjects.find(typeFieldDataTestSubj); + expect(await this.comboBox.isOptionSelected(comboBox, type)).to.be(true); + }); } async setFieldScript(script: string) { From 5546c98b35832e06d297da210216d519d29e68dc Mon Sep 17 00:00:00 2001 From: Katerina Date: Tue, 23 Apr 2024 13:27:39 +0300 Subject: [PATCH 062/183] [Synthetics] Fix externally-controlled format string (#181281) ## Summary Close https://github.com/elastic/kibana/issues/177702 use a %s specifier to fix security issue. The %s logs the output as string --- .../synthetics/public/utils/api_service/api_service.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/observability_solution/synthetics/public/utils/api_service/api_service.ts b/x-pack/plugins/observability_solution/synthetics/public/utils/api_service/api_service.ts index 2df15b228590e..131aa2917b661 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/utils/api_service/api_service.ts +++ b/x-pack/plugins/observability_solution/synthetics/public/utils/api_service/api_service.ts @@ -50,9 +50,8 @@ class ApiService { } else { // eslint-disable-next-line no-console console.error( - `API ${apiUrl} is not returning expected response, ${formatErrors( - decoded.left - )} for response`, + `API $s is not returning expected response, ${formatErrors(decoded.left)} for response`, + apiUrl, response ); } From 2141ba76ce4bd690dd5c96e8e41480383797615f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Tue, 23 Apr 2024 12:48:08 +0200 Subject: [PATCH 063/183] [Obs AI Assistant] Address feedback for contextual insights on alert details page (#181049) - This PR addresses comments made in https://github.com/elastic/kibana/pull/180766 - Adds API tests for `GET /internal/apm/assistant/get_obs_alert_details_context` - Fixes some bugs I found during testing - Removes the option `forceSyntheticSource` in the APM app since it is no longer needed and causes problems when applied to the traces data stream --- .../apm/server/index.ts | 6 +- .../create_apm_event_client/index.test.ts | 1 - .../create_apm_event_client/index.ts | 9 +- .../lib/helpers/get_apm_event_client.ts | 1 - .../get_log_categories/index.ts | 12 +- .../get_container_id_from_signals.ts | 96 ++-- .../get_service_name_from_signals.ts | 101 ++-- .../index.ts | 135 +++-- .../routes/assistant_functions/route.ts | 10 +- .../services/get_service_metadata_details.ts | 6 +- .../alert_details_contextual_insights.tsx | 90 ++-- .../common/apm_api_supertest.ts | 3 + .../test/apm_api_integration/common/config.ts | 17 +- .../obs_alert_details_context.spec.ts | 484 ++++++++++++++++++ 14 files changed, 749 insertions(+), 222 deletions(-) create mode 100644 x-pack/test/apm_api_integration/tests/assistant/obs_alert_details_context.spec.ts diff --git a/x-pack/plugins/observability_solution/apm/server/index.ts b/x-pack/plugins/observability_solution/apm/server/index.ts index b4cc9b1e3fa5a..44d447ce4c110 100644 --- a/x-pack/plugins/observability_solution/apm/server/index.ts +++ b/x-pack/plugins/observability_solution/apm/server/index.ts @@ -50,7 +50,8 @@ const configSchema = schema.object({ enabled: schema.boolean({ defaultValue: false }), }), }), - forceSyntheticSource: schema.boolean({ defaultValue: false }), + + forceSyntheticSource: schema.boolean({ defaultValue: false }), // deprecated latestAgentVersionsUrl: schema.string({ defaultValue: 'https://apm-agent-versions.elastic.co/versions.json', }), @@ -103,6 +104,9 @@ export const config: PluginConfigDescriptor = { renameFromRoot('xpack.apm.maxServiceSelection', `uiSettings.overrides[${maxSuggestions}]`, { level: 'warning', }), + unused('forceSyntheticSource', { + level: 'warning', + }), ], exposeToBrowser: { serviceMapEnabled: true, diff --git a/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.test.ts b/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.test.ts index fe96966491538..058897dedd32e 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.test.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.test.ts @@ -45,7 +45,6 @@ describe('APMEventClient', () => { indices: {} as any, options: { includeFrozen: false, - forceSyntheticSource: false, }, }); diff --git a/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts b/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts index 9292856ade32b..1d6592814526c 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts @@ -90,7 +90,6 @@ export interface APMEventClientConfig { indices: APMIndices; options: { includeFrozen: boolean; - forceSyntheticSource: boolean; }; } @@ -100,7 +99,6 @@ export class APMEventClient { private readonly request: KibanaRequest; public readonly indices: APMIndices; private readonly includeFrozen: boolean; - private readonly forceSyntheticSource: boolean; constructor(config: APMEventClientConfig) { this.esClient = config.esClient; @@ -108,7 +106,6 @@ export class APMEventClient { this.request = config.request; this.indices = config.indices; this.includeFrozen = config.options.includeFrozen; - this.forceSyntheticSource = config.options.forceSyntheticSource; } private callAsyncWithDebug({ @@ -156,14 +153,11 @@ export class APMEventClient { operationName: string, params: TParams ): Promise> { - const { events, index, filters } = getRequestBase({ + const { index, filters } = getRequestBase({ apm: params.apm, indices: this.indices, }); - const forceSyntheticSourceForThisRequest = - this.forceSyntheticSource && events.includes(ProcessorEvent.metric); - const searchParams = { ...omit(params, 'apm', 'body'), index, @@ -180,7 +174,6 @@ export class APMEventClient { ignore_unavailable: true, preference: 'any', expand_wildcards: ['open' as const, 'hidden' as const], - ...(forceSyntheticSourceForThisRequest ? { force_synthetic_source: true } : {}), }; return this.callAsyncWithDebug({ diff --git a/x-pack/plugins/observability_solution/apm/server/lib/helpers/get_apm_event_client.ts b/x-pack/plugins/observability_solution/apm/server/lib/helpers/get_apm_event_client.ts index d04020531b2b2..3b80c5ede61d3 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/helpers/get_apm_event_client.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/helpers/get_apm_event_client.ts @@ -36,7 +36,6 @@ export async function getApmEventClient({ indices, options: { includeFrozen, - forceSyntheticSource: config.forceSyntheticSource, }, }); }); diff --git a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_log_categories/index.ts b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_log_categories/index.ts index 1e5eee8c69050..c842512507bec 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_log_categories/index.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_log_categories/index.ts @@ -9,7 +9,12 @@ import datemath from '@elastic/datemath'; import { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; import type { CoreRequestHandlerContext } from '@kbn/core/server'; import { aiAssistantLogsIndexPattern } from '@kbn/observability-ai-assistant-plugin/server'; -import { SERVICE_NAME, CONTAINER_ID, HOST_NAME } from '../../../../common/es_fields/apm'; +import { + SERVICE_NAME, + CONTAINER_ID, + HOST_NAME, + KUBERNETES_POD_NAME, +} from '../../../../common/es_fields/apm'; import { getTypedSearch } from '../../../utils/create_typed_es_client'; export type LogCategories = @@ -33,6 +38,7 @@ export async function getLogCategories({ 'service.name'?: string; 'host.name'?: string; 'container.id'?: string; + 'kubernetes.pod.name'?: string; }; }): Promise { const start = datemath.parse(args.start)?.valueOf()!; @@ -42,10 +48,10 @@ export async function getLogCategories({ { field: SERVICE_NAME, value: args[SERVICE_NAME] }, { field: CONTAINER_ID, value: args[CONTAINER_ID] }, { field: HOST_NAME, value: args[HOST_NAME] }, + { field: KUBERNETES_POD_NAME, value: args[KUBERNETES_POD_NAME] }, ]); - const index = - (await coreContext.uiSettings.client.get(aiAssistantLogsIndexPattern)) ?? 'logs-*'; + const index = await coreContext.uiSettings.client.get(aiAssistantLogsIndexPattern); const search = getTypedSearch(esClient); diff --git a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_container_id_from_signals.ts b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_container_id_from_signals.ts index 35fcb8860d5d6..953b49890a521 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_container_id_from_signals.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_container_id_from_signals.ts @@ -8,11 +8,15 @@ import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; import { CoreRequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; import { aiAssistantLogsIndexPattern } from '@kbn/observability-ai-assistant-plugin/common'; -import { rangeQuery, termQuery, typedSearch } from '@kbn/observability-plugin/server/utils/queries'; +import { rangeQuery, typedSearch } from '@kbn/observability-plugin/server/utils/queries'; import * as t from 'io-ts'; import moment from 'moment'; +import { ESSearchRequest } from '@kbn/es-types'; import { ApmDocumentType } from '../../../../common/document_type'; -import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +import { + APMEventClient, + APMEventESSearchRequest, +} from '../../../lib/helpers/create_es_client/create_apm_event_client'; import { observabilityAlertDetailsContextRt } from '.'; import { RollupInterval } from '../../../../common/rollup'; @@ -31,37 +35,14 @@ export async function getContainerIdFromSignals({ return query['container.id']; } - if (query['service.name']) { - const containerId = await getContainerIdFromTrace({ - query, - apmEventClient, - }); - - if (containerId) { - return containerId; - } - - return getContainerIdFromLogs({ query, esClient, coreContext }); + if (!query['service.name']) { + return; } -} - -async function getContainerIdFromLogs({ - query, - esClient, - coreContext, -}: { - query: t.TypeOf; - esClient: ElasticsearchClient; - coreContext: CoreRequestHandlerContext; -}) { - const index = - (await coreContext.uiSettings.client.get(aiAssistantLogsIndexPattern)) ?? 'logs-*'; - const start = moment(query.alert_started_at).subtract(30, 'minutes').unix(); - const end = moment(query.alert_started_at).unix(); + const start = moment(query.alert_started_at).subtract(30, 'minutes').valueOf(); + const end = moment(query.alert_started_at).valueOf(); - const res = await typedSearch<{ container: { id: string } }, any>(esClient, { - index, + const params: APMEventESSearchRequest['body'] = { _source: ['container.id'], terminate_after: 1, size: 1, @@ -69,28 +50,51 @@ async function getContainerIdFromLogs({ query: { bool: { filter: [ + { term: { 'service.name': query['service.name'] } }, { exists: { field: 'container.id' } }, - ...termQuery('service.name', query['service.name']), ...rangeQuery(start, end), ], }, }, + }; + const containerId = await getContainerIdFromTraces({ + params, + apmEventClient, + }); + + if (containerId) { + return containerId; + } + + return getContainerIdFromLogs({ params, esClient, coreContext }); +} + +async function getContainerIdFromLogs({ + params, + esClient, + coreContext, +}: { + params: ESSearchRequest['body']; + esClient: ElasticsearchClient; + coreContext: CoreRequestHandlerContext; +}) { + const index = await coreContext.uiSettings.client.get(aiAssistantLogsIndexPattern); + const res = await typedSearch<{ container: { id: string } }, any>(esClient, { + index, + ...params, }); return res.hits.hits[0]?._source?.container?.id; } -async function getContainerIdFromTrace({ - query, +async function getContainerIdFromTraces({ + params, apmEventClient, }: { - query: t.TypeOf; + params: APMEventESSearchRequest['body']; apmEventClient: APMEventClient; }) { - const start = moment(query.alert_started_at).subtract(30, 'minutes').unix(); - const end = moment(query.alert_started_at).unix(); - - const res = await apmEventClient.search('get_container_id', { + const res = await apmEventClient.search('get_container_id_from_traces', { apm: { sources: [ { @@ -99,21 +103,7 @@ async function getContainerIdFromTrace({ }, ], }, - body: { - _source: ['container.id'], - terminate_after: 1, - size: 1, - track_total_hits: false, - query: { - bool: { - filter: [ - { exists: { field: 'container.id' } }, - ...termQuery('service.name', query['service.name']), - ...rangeQuery(start, end), - ], - }, - }, - }, + body: params, }); return res.hits.hits[0]?._source.container?.id; diff --git a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_service_name_from_signals.ts b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_service_name_from_signals.ts index 738cb54f162a9..3f79178b76d19 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_service_name_from_signals.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/get_service_name_from_signals.ts @@ -11,8 +11,12 @@ import { aiAssistantLogsIndexPattern } from '@kbn/observability-ai-assistant-plu import { rangeQuery, termQuery, typedSearch } from '@kbn/observability-plugin/server/utils/queries'; import * as t from 'io-ts'; import moment from 'moment'; +import { ESSearchRequest } from '@kbn/es-types'; import { ApmDocumentType } from '../../../../common/document_type'; -import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +import { + APMEventClient, + APMEventESSearchRequest, +} from '../../../lib/helpers/create_es_client/create_apm_event_client'; import { observabilityAlertDetailsContextRt } from '.'; import { RollupInterval } from '../../../../common/rollup'; @@ -31,37 +35,14 @@ export async function getServiceNameFromSignals({ return query['service.name']; } - if (query['container.id']) { - const serviceName = await getServiceNameFromTraces({ - query, - apmEventClient, - }); - - if (serviceName) { - return serviceName; - } - - return getServiceNameFromLogs({ query, esClient, coreContext }); + if (!query['kubernetes.pod.name'] && !query['container.id']) { + return; } -} -async function getServiceNameFromLogs({ - query, - esClient, - coreContext, -}: { - query: t.TypeOf; - esClient: ElasticsearchClient; - coreContext: CoreRequestHandlerContext; -}) { - const index = - (await coreContext.uiSettings.client.get(aiAssistantLogsIndexPattern)) ?? 'logs-*'; - - const start = moment(query.alert_started_at).subtract(30, 'minutes').unix(); - const end = moment(query.alert_started_at).unix(); + const start = moment(query.alert_started_at).subtract(30, 'minutes').valueOf(); + const end = moment(query.alert_started_at).valueOf(); - const res = await typedSearch<{ service: { name: string } }, any>(esClient, { - index, + const params: APMEventESSearchRequest['body'] = { _source: ['service.name'], terminate_after: 1, size: 1, @@ -69,28 +50,60 @@ async function getServiceNameFromLogs({ query: { bool: { filter: [ + { + bool: { + should: [ + ...termQuery('container.id', query['container.id']), + ...termQuery('kubernetes.pod.name', query['kubernetes.pod.name']), + ], + minimum_should_match: 1, + }, + }, { exists: { field: 'service.name' } }, - ...termQuery('container.id', query['container.id']), ...rangeQuery(start, end), ], }, }, + }; + + const serviceName = await getServiceNameFromTraces({ + params, + apmEventClient, + }); + + if (serviceName) { + return serviceName; + } + + return getServiceNameFromLogs({ params, esClient, coreContext }); +} + +async function getServiceNameFromLogs({ + params, + esClient, + coreContext, +}: { + params: ESSearchRequest['body']; + esClient: ElasticsearchClient; + coreContext: CoreRequestHandlerContext; +}) { + const index = await coreContext.uiSettings.client.get(aiAssistantLogsIndexPattern); + const res = await typedSearch<{ service: { name: string } }, any>(esClient, { + index, + ...params, }); return res.hits.hits[0]?._source?.service?.name; } async function getServiceNameFromTraces({ - query, + params, apmEventClient, }: { - query: t.TypeOf; + params: APMEventESSearchRequest['body']; apmEventClient: APMEventClient; }) { - const start = moment(query.alert_started_at).subtract(30, 'minutes').unix(); - const end = moment(query.alert_started_at).unix(); - - const res = await apmEventClient.search('get_service_name', { + const res = await apmEventClient.search('get_service_name_from_traces', { apm: { sources: [ { @@ -99,21 +112,7 @@ async function getServiceNameFromTraces({ }, ], }, - body: { - _source: ['service.name'], - terminate_after: 1, - size: 1, - track_total_hits: false, - query: { - bool: { - filter: [ - { exists: { field: 'service.name' } }, - ...termQuery('container.id', query['container.id']), - ...rangeQuery(start, end), - ], - }, - }, - }, + body: params, }); return res.hits.hits[0]?._source.service.name; diff --git a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/index.ts b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/index.ts index e888fedbc8139..0b76089d1e1c5 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/index.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/get_observability_alert_details_context/index.ts @@ -36,6 +36,7 @@ export const observabilityAlertDetailsContextRt = t.intersection([ // infrastructure fields 'host.name': t.string, 'container.id': t.string, + 'kubernetes.pod.name': t.string, }), ]); @@ -61,6 +62,7 @@ export async function getObservabilityAlertDetailsContext({ const alertStartedAt = query.alert_started_at; const serviceEnvironment = query['service.environment']; const hostName = query['host.name']; + const kubernetesPodName = query['kubernetes.pod.name']; const [serviceName, containerId] = await Promise.all([ getServiceNameFromSignals({ query, @@ -76,70 +78,93 @@ export async function getObservabilityAlertDetailsContext({ }), ]); + async function handleError(cb: () => Promise): Promise { + try { + return await cb(); + } catch (error) { + logger.error('Error while fetching observability alert details context'); + logger.error(error); + return; + } + } + const serviceSummaryPromise = serviceName - ? getApmServiceSummary({ - apmEventClient, - annotationsClient, - esClient, - apmAlertsClient, - mlClient, - logger, - arguments: { - 'service.name': serviceName, - 'service.environment': serviceEnvironment, - start: moment(alertStartedAt).subtract(5, 'minute').toISOString(), - end: alertStartedAt, - }, - }) + ? handleError(() => + getApmServiceSummary({ + apmEventClient, + annotationsClient, + esClient, + apmAlertsClient, + mlClient, + logger, + arguments: { + 'service.name': serviceName, + 'service.environment': serviceEnvironment, + start: moment(alertStartedAt).subtract(5, 'minute').toISOString(), + end: alertStartedAt, + }, + }) + ) : undefined; const downstreamDependenciesPromise = serviceName - ? getAssistantDownstreamDependencies({ - apmEventClient, - arguments: { - 'service.name': serviceName, - 'service.environment': serviceEnvironment, - start: moment(alertStartedAt).subtract(5, 'minute').toISOString(), - end: alertStartedAt, - }, - }) + ? handleError(() => + getAssistantDownstreamDependencies({ + apmEventClient, + arguments: { + 'service.name': serviceName, + 'service.environment': serviceEnvironment, + start: moment(alertStartedAt).subtract(5, 'minute').toISOString(), + end: alertStartedAt, + }, + }) + ) : undefined; - const logCategoriesPromise = getLogCategories({ - esClient, - coreContext, - arguments: { - start: moment(alertStartedAt).subtract(5, 'minute').toISOString(), - end: alertStartedAt, - 'service.name': serviceName, - 'host.name': hostName, - 'container.id': containerId, - }, - }); + const logCategoriesPromise = handleError(() => + getLogCategories({ + esClient, + coreContext, + arguments: { + start: moment(alertStartedAt).subtract(5, 'minute').toISOString(), + end: alertStartedAt, + 'service.name': serviceName, + 'host.name': hostName, + 'container.id': containerId, + 'kubernetes.pod.name': kubernetesPodName, + }, + }) + ); - const serviceChangePointsPromise = getServiceChangePoints({ - apmEventClient, - alertStartedAt, - serviceName, - serviceEnvironment, - transactionType: query['transaction.type'], - transactionName: query['transaction.name'], - }); + const serviceChangePointsPromise = handleError(() => + getServiceChangePoints({ + apmEventClient, + alertStartedAt, + serviceName, + serviceEnvironment, + transactionType: query['transaction.type'], + transactionName: query['transaction.name'], + }) + ); - const exitSpanChangePointsPromise = getExitSpanChangePoints({ - apmEventClient, - alertStartedAt, - serviceName, - serviceEnvironment, - }); + const exitSpanChangePointsPromise = handleError(() => + getExitSpanChangePoints({ + apmEventClient, + alertStartedAt, + serviceName, + serviceEnvironment, + }) + ); - const anomaliesPromise = getAnomalies({ - start: moment(alertStartedAt).subtract(1, 'hour').valueOf(), - end: moment(alertStartedAt).valueOf(), - environment: serviceEnvironment, - mlClient, - logger, - }); + const anomaliesPromise = handleError(() => + getAnomalies({ + start: moment(alertStartedAt).subtract(1, 'hour').valueOf(), + end: moment(alertStartedAt).valueOf(), + environment: serviceEnvironment, + mlClient, + logger, + }) + ); const [ serviceSummary, diff --git a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/route.ts b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/route.ts index 62729b60e4e92..a94b13b79577c 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/route.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/assistant_functions/route.ts @@ -34,7 +34,7 @@ import { LogCategories } from './get_log_categories'; const getObservabilityAlertDetailsContextRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', options: { - tags: ['access:apm', 'access:ai_assistant'], + tags: ['access:apm'], }, params: t.type({ @@ -45,16 +45,16 @@ const getObservabilityAlertDetailsContextRoute = createApmServerRoute({ ): Promise<{ serviceSummary?: ServiceSummary; downstreamDependencies?: APMDownstreamDependency[]; - logCategories: LogCategories; - serviceChangePoints: Array<{ + logCategories?: LogCategories; + serviceChangePoints?: Array<{ title: string; changes: TimeseriesChangePoint[]; }>; - exitSpanChangePoints: Array<{ + exitSpanChangePoints?: Array<{ title: string; changes: TimeseriesChangePoint[]; }>; - anomalies: ApmAnomalies; + anomalies?: ApmAnomalies; }> => { const { context, request, plugins, logger, params } = resources; const { query } = params; diff --git a/x-pack/plugins/observability_solution/apm/server/routes/services/get_service_metadata_details.ts b/x-pack/plugins/observability_solution/apm/server/routes/services/get_service_metadata_details.ts index 5d233c8ac0837..d7a81a7902efb 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/services/get_service_metadata_details.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/services/get_service_metadata_details.ts @@ -171,7 +171,8 @@ export async function getServiceMetadataDetails({ const response = await apmEventClient.search('get_service_metadata_details', params); - if (response.hits.total.value === 0) { + const hit = response.hits.hits[0]?._source as ServiceMetadataDetailsRaw | undefined; + if (!hit) { return { service: undefined, container: undefined, @@ -179,8 +180,7 @@ export async function getServiceMetadataDetails({ }; } - const { service, agent, host, kubernetes, container, cloud, labels } = response.hits.hits[0] - ._source as ServiceMetadataDetailsRaw; + const { service, agent, host, kubernetes, container, cloud, labels } = hit; const serviceMetadataDetails = { versions: response.aggregations?.serviceVersions.buckets.map((bucket) => bucket.key as string), diff --git a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details_contextual_insights.tsx b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details_contextual_insights.tsx index 6228d778ec70c..5b043e3ac8928 100644 --- a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details_contextual_insights.tsx +++ b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details_contextual_insights.tsx @@ -28,40 +28,42 @@ export function AlertDetailContextualInsights({ alert }: { alert: AlertData | nu return []; } - const res = await http.get('/internal/apm/assistant/get_obs_alert_details_context', { - query: { - alert_started_at: new Date(alert.formatted.start).toISOString(), - - // service fields - 'service.name': fields['service.name'], - 'service.environment': fields['service.environment'], - 'transaction.type': fields['transaction.type'], - 'transaction.name': fields['transaction.name'], - - // infra fields - 'host.name': fields['host.name'], - 'container.id': fields['container.id'], - }, - }); - - const { - serviceSummary, - downstreamDependencies, - logCategories, - serviceChangePoints, - exitSpanChangePoints, - anomalies, - } = res as any; - - const serviceName = fields['service.name']; - const serviceEnvironment = fields['service.environment']; - - const obsAlertContext = `${ - !isEmpty(serviceSummary) - ? `Metadata for the service where the alert occurred: + try { + const res = await http.get('/internal/apm/assistant/get_obs_alert_details_context', { + query: { + alert_started_at: new Date(alert.formatted.start).toISOString(), + + // service fields + 'service.name': fields['service.name'], + 'service.environment': fields['service.environment'], + 'transaction.type': fields['transaction.type'], + 'transaction.name': fields['transaction.name'], + + // infra fields + 'host.name': fields['host.name'], + 'container.id': fields['container.id'], + 'kubernetes.pod.name': fields['kubernetes.pod.name'], + }, + }); + + const { + serviceSummary, + downstreamDependencies, + logCategories, + serviceChangePoints, + exitSpanChangePoints, + anomalies, + } = res as any; + + const serviceName = fields['service.name']; + const serviceEnvironment = fields['service.environment']; + + const obsAlertContext = `${ + !isEmpty(serviceSummary) + ? `Metadata for the service where the alert occurred: ${JSON.stringify(serviceSummary, null, 2)}` - : '' - } + : '' + } ${ !isEmpty(downstreamDependencies) @@ -99,21 +101,29 @@ ${JSON.stringify(downstreamDependencies, null, 2)}` } `; - return observabilityAIAssistant.getContextualInsightMessages({ - message: `I'm looking at an alert and trying to understand why it was triggered`, - instructions: dedent( - `I'm an SRE. I am looking at an alert that was triggered. I want to understand why it was triggered, what it means, and what I should do next. + return observabilityAIAssistant.getContextualInsightMessages({ + message: `I'm looking at an alert and trying to understand why it was triggered`, + instructions: dedent( + `I'm an SRE. I am looking at an alert that was triggered. I want to understand why it was triggered, what it means, and what I should do next. The following contextual information is available to help me understand the alert: ${obsAlertContext} Be brief and to the point. Do not list the alert details as bullet points. - Do refer to the contextual information provided above when relevant. + Refer to the contextual information provided above when relevant. Pay specific attention to why the alert happened and what may have contributed to it. ` - ), - }); + ), + }); + } catch (e) { + return observabilityAIAssistant.getContextualInsightMessages({ + message: `I'm looking at an alert and trying to understand why it was triggered`, + instructions: dedent( + `I'm an SRE. I am looking at an alert that was triggered. I want to understand why it was triggered, what it means, and what I should do next.` + ), + }); + } }, [alert, http, observabilityAIAssistant]); if (!ObservabilityAIAssistantContextualInsight) { diff --git a/x-pack/test/apm_api_integration/common/apm_api_supertest.ts b/x-pack/test/apm_api_integration/common/apm_api_supertest.ts index 4fe7ae4a62e71..9e4f25a7c7c7b 100644 --- a/x-pack/test/apm_api_integration/common/apm_api_supertest.ts +++ b/x-pack/test/apm_api_integration/common/apm_api_supertest.ts @@ -31,6 +31,9 @@ export function createApmApiClient(st: supertest.SuperTest) { const pathnameWithSpaceId = options.spaceId ? `/s/${options.spaceId}${pathname}` : pathname; const url = format({ pathname: pathnameWithSpaceId, query: params?.query }); + // eslint-disable-next-line no-console + console.debug(`Calling APM API: ${method.toUpperCase()} ${url}`); + const headers: Record = { 'kbn-xsrf': 'foo', 'x-elastic-internal-origin': 'foo', diff --git a/x-pack/test/apm_api_integration/common/config.ts b/x-pack/test/apm_api_integration/common/config.ts index e2c57ae442d26..a4f02524b98cf 100644 --- a/x-pack/test/apm_api_integration/common/config.ts +++ b/x-pack/test/apm_api_integration/common/config.ts @@ -7,7 +7,13 @@ import { ApmUsername } from '@kbn/apm-plugin/server/test_helpers/create_apm_users/authentication'; import { createApmUsers } from '@kbn/apm-plugin/server/test_helpers/create_apm_users/create_apm_users'; -import { ApmSynthtraceEsClient, ApmSynthtraceKibanaClient } from '@kbn/apm-synthtrace'; +import { + ApmSynthtraceEsClient, + ApmSynthtraceKibanaClient, + LogsSynthtraceEsClient, + createLogger, + LogLevel, +} from '@kbn/apm-synthtrace'; import { FtrConfigProviderContext, kbnTestConfig } from '@kbn/test'; import supertest from 'supertest'; import { format, UrlObject } from 'url'; @@ -66,6 +72,9 @@ export interface CreateTest { services: InheritedServices & { apmFtrConfig: () => ApmFtrConfig; registry: ({ getService }: FtrProviderContext) => ReturnType; + logSynthtraceEsClient: ( + context: InheritedFtrProviderContext + ) => Promise; synthtraceEsClient: (context: InheritedFtrProviderContext) => Promise; synthtraceKibanaClient: ( context: InheritedFtrProviderContext @@ -106,6 +115,12 @@ export function createTestConfig( synthtraceEsClient: (context: InheritedFtrProviderContext) => { return bootstrapApmSynthtrace(context, synthtraceKibanaClient); }, + logSynthtraceEsClient: (context: InheritedFtrProviderContext) => + new LogsSynthtraceEsClient({ + client: context.getService('es'), + logger: createLogger(LogLevel.info), + refreshAfterIndex: true, + }), synthtraceKibanaClient: () => synthtraceKibanaClient, apmApiClient: async (context: InheritedFtrProviderContext) => { const { username, password } = servers.kibana; diff --git a/x-pack/test/apm_api_integration/tests/assistant/obs_alert_details_context.spec.ts b/x-pack/test/apm_api_integration/tests/assistant/obs_alert_details_context.spec.ts new file mode 100644 index 0000000000000..fe9967683ec8d --- /dev/null +++ b/x-pack/test/apm_api_integration/tests/assistant/obs_alert_details_context.spec.ts @@ -0,0 +1,484 @@ +/* + * 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 moment from 'moment'; +import { log, apm, generateShortId, timerange } from '@kbn/apm-synthtrace-client'; +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { SupertestReturnType } from '../../common/apm_api_supertest'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const registry = getService('registry'); + const apmApiClient = getService('apmApiClient'); + const apmSynthtraceClient = getService('synthtraceEsClient'); + const logSynthtraceClient = getService('logSynthtraceEsClient'); + + registry.when( + 'fetching observability alerts details context for AI assistant contextual insights', + { config: 'trial', archives: [] }, + () => { + const start = moment().subtract(10, 'minutes').valueOf(); + const end = moment().valueOf(); + const range = timerange(start, end); + + describe('when no traces or logs are available', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + }, + }, + }); + }); + + it('returns nothing', () => { + expect(response.body).to.eql({ + serviceChangePoints: [], + exitSpanChangePoints: [], + anomalies: [], + }); + }); + }); + + describe('when traces and logs are ingested and logs are not annotated with service.name', async () => { + before(async () => { + await ingestTraces({ 'service.name': 'Backend', 'container.id': 'my-container-a' }); + await ingestLogs({ + 'container.id': 'my-container-a', + 'kubernetes.pod.name': 'pod-a', + }); + }); + + after(async () => { + await cleanup(); + }); + + describe('when no params are specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + }, + }, + }); + }); + + it('returns no service summary', async () => { + expect(response.body.serviceSummary).to.be(undefined); + }); + + it('returns no downstream dependencies', async () => { + expect(response.body.downstreamDependencies ?? []).to.eql([]); + }); + + it('returns 1 log category', async () => { + expect(response.body.logCategories?.map(({ errorCategory }) => errorCategory)).to.eql([ + 'Error message from container my-container-a', + ]); + }); + }); + + describe('when service name is specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + 'service.name': 'Backend', + }, + }, + }); + }); + + it('returns service summary', () => { + expect(response.body.serviceSummary).to.eql({ + 'service.name': 'Backend', + 'service.environment': ['production'], + 'agent.name': 'java', + 'service.version': ['1.0.0'], + 'language.name': 'java', + instances: 1, + anomalies: [], + alerts: [], + deployments: [], + }); + }); + + it('returns downstream dependencies', async () => { + expect(response.body.downstreamDependencies).to.eql([ + { + 'span.destination.service.resource': 'elasticsearch', + 'span.type': 'db', + 'span.subtype': 'elasticsearch', + }, + ]); + }); + + it('returns log categories', () => { + expect(response.body.logCategories).to.have.length(1); + + const logCategory = response.body.logCategories?.[0]; + expect(logCategory?.sampleMessage).to.match( + /Error message #\d{16} from container my-container-a/ + ); + expect(logCategory?.docCount).to.be.greaterThan(0); + expect(logCategory?.errorCategory).to.be('Error message from container my-container-a'); + }); + }); + + describe('when container id is specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + 'container.id': 'my-container-a', + }, + }, + }); + }); + + it('returns service summary', () => { + expect(response.body.serviceSummary).to.eql({ + 'service.name': 'Backend', + 'service.environment': ['production'], + 'agent.name': 'java', + 'service.version': ['1.0.0'], + 'language.name': 'java', + instances: 1, + anomalies: [], + alerts: [], + deployments: [], + }); + }); + + it('returns downstream dependencies', async () => { + expect(response.body.downstreamDependencies).to.eql([ + { + 'span.destination.service.resource': 'elasticsearch', + 'span.type': 'db', + 'span.subtype': 'elasticsearch', + }, + ]); + }); + + it('returns log categories', () => { + expect(response.body.logCategories).to.have.length(1); + + const logCategory = response.body.logCategories?.[0]; + expect(logCategory?.sampleMessage).to.match( + /Error message #\d{16} from container my-container-a/ + ); + expect(logCategory?.docCount).to.be.greaterThan(0); + expect(logCategory?.errorCategory).to.be('Error message from container my-container-a'); + }); + }); + + describe('when non-existing container id is specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + 'container.id': 'non-existing-container', + }, + }, + }); + }); + + it('returns nothing', () => { + expect(response.body).to.eql({ + logCategories: [], + serviceChangePoints: [], + exitSpanChangePoints: [], + anomalies: [], + }); + }); + }); + + describe('when non-existing service.name is specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + 'service.name': 'non-existing-service', + }, + }, + }); + }); + + it('returns empty service summary', () => { + expect(response.body.serviceSummary).to.eql({ + 'service.name': 'non-existing-service', + 'service.environment': [], + instances: 1, + anomalies: [], + alerts: [], + deployments: [], + }); + }); + + it('returns no downstream dependencies', async () => { + expect(response.body.downstreamDependencies).to.eql([]); + }); + + it('returns log categories', () => { + expect(response.body.logCategories).to.have.length(1); + }); + }); + }); + + describe('when traces and logs are ingested and logs are annotated with service.name', async () => { + before(async () => { + await ingestTraces({ 'service.name': 'Backend', 'container.id': 'my-container-a' }); + await ingestLogs({ + 'service.name': 'Backend', + 'container.id': 'my-container-a', + 'kubernetes.pod.name': 'pod-a', + }); + + // also ingest unrelated Frontend traces and logs that should not show up in the response when fetching "Backend"-related things + await ingestTraces({ 'service.name': 'Frontend', 'container.id': 'my-container-b' }); + await ingestLogs({ + 'service.name': 'Frontend', + 'container.id': 'my-container-b', + 'kubernetes.pod.name': 'pod-b', + }); + + // also ingest logs that are not annotated with service.name + await ingestLogs({ + 'container.id': 'my-container-c', + 'kubernetes.pod.name': 'pod-c', + }); + }); + + after(async () => { + await cleanup(); + }); + + describe('when no params are specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + }, + }, + }); + }); + + it('returns no service summary', async () => { + expect(response.body.serviceSummary).to.be(undefined); + }); + + it('returns 1 log category', async () => { + expect(response.body.logCategories?.map(({ errorCategory }) => errorCategory)).to.eql([ + 'Error message from service', + 'Error message from container my-container-c', + ]); + }); + }); + + describe('when service name is specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + 'service.name': 'Backend', + }, + }, + }); + }); + + it('returns log categories', () => { + expect(response.body.logCategories).to.have.length(1); + + const logCategory = response.body.logCategories?.[0]; + expect(logCategory?.sampleMessage).to.match( + /Error message #\d{16} from service Backend/ + ); + expect(logCategory?.docCount).to.be.greaterThan(0); + expect(logCategory?.errorCategory).to.be('Error message from service Backend'); + }); + }); + + describe('when container id is specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + 'container.id': 'my-container-a', + }, + }, + }); + }); + + it('returns log categories', () => { + expect(response.body.logCategories).to.have.length(1); + + const logCategory = response.body.logCategories?.[0]; + expect(logCategory?.sampleMessage).to.match( + /Error message #\d{16} from service Backend/ + ); + expect(logCategory?.docCount).to.be.greaterThan(0); + expect(logCategory?.errorCategory).to.be('Error message from service Backend'); + }); + }); + + describe('when non-existing service.name is specified', async () => { + let response: SupertestReturnType<'GET /internal/apm/assistant/get_obs_alert_details_context'>; + before(async () => { + response = await apmApiClient.writeUser({ + endpoint: 'GET /internal/apm/assistant/get_obs_alert_details_context', + params: { + query: { + alert_started_at: new Date(end).toISOString(), + 'service.name': 'non-existing-service', + }, + }, + }); + }); + + it('returns empty service summary', () => { + expect(response.body.serviceSummary).to.eql({ + 'service.name': 'non-existing-service', + 'service.environment': [], + instances: 1, + anomalies: [], + alerts: [], + deployments: [], + }); + }); + + it('does not return log categories', () => { + expect(response.body.logCategories?.map(({ errorCategory }) => errorCategory)).to.eql([ + 'Error message from container my-container-c', + ]); + }); + }); + }); + + async function ingestTraces(eventMetadata: { + 'service.name': string; + 'container.id'?: string; + 'host.name'?: string; + 'kubernetes.pod.name'?: string; + }) { + const serviceInstance = apm + .service({ + name: eventMetadata['service.name'], + environment: 'production', + agentName: 'java', + }) + .instance('my-instance'); + + const events = range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return serviceInstance + .transaction({ transactionName: 'tx' }) + .timestamp(timestamp) + .duration(10000) + .defaults({ 'service.version': '1.0.0', ...eventMetadata }) + .outcome('success') + .children( + serviceInstance + .span({ + spanName: 'GET apm-*/_search', + spanType: 'db', + spanSubtype: 'elasticsearch', + }) + .duration(1000) + .success() + .destination('elasticsearch') + .timestamp(timestamp) + ); + }); + + await apmSynthtraceClient.index(events); + } + + function ingestLogs(eventMetadata: { + 'service.name'?: string; + 'container.id'?: string; + 'kubernetes.pod.name'?: string; + 'host.name'?: string; + }) { + const getMessage = () => { + const msgPrefix = `Error message #${generateShortId()}`; + + if (eventMetadata['service.name']) { + return `${msgPrefix} from service ${eventMetadata['service.name']}`; + } + + if (eventMetadata['container.id']) { + return `${msgPrefix} from container ${eventMetadata['container.id']}`; + } + + if (eventMetadata['kubernetes.pod.name']) { + return `${msgPrefix} from pod ${eventMetadata['kubernetes.pod.name']}`; + } + + if (eventMetadata['host.name']) { + return `${msgPrefix} from host ${eventMetadata['host.name']}`; + } + + return msgPrefix; + }; + + const events = range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return [ + log + .create() + .message(getMessage()) + .logLevel('error') + .defaults({ + 'trace.id': generateShortId(), + 'agent.name': 'synth-agent', + ...eventMetadata, + }) + .timestamp(timestamp), + ]; + }); + + return logSynthtraceClient.index(events); + } + + async function cleanup() { + await apmSynthtraceClient.clean(); + await logSynthtraceClient.clean(); + } + } + ); +} From 441d00d880bfe9cb6f04b23fd2fff13b8df113b2 Mon Sep 17 00:00:00 2001 From: Pablo Machado Date: Tue, 23 Apr 2024 13:10:43 +0200 Subject: [PATCH 064/183] [SecuritySolution] Add auditing to Asset Criticality and Risk Engine (#181045) ## Summary Add auditing to Asset Criticality and Risk Engine as specified in the EPIC ticket. All telemetry is sent from data clients and route files. To do that, I had to update some extra files to make sure the routes and data clients had access to the audit logger. ### How to test 1. Deploy branch to cloud 2. Send cloud deployment logs to another deployment 3. Enable `xpack.security.audit.enabled: true` for kibana 4. Use the risk engine on the deployment 5. On the logs deployment, verify if the audit logs are arriving * Open explore * Set the data view `elastic-cloud-logs-*` * Search for the actions `event.action: action_name` --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../routes/__mocks__/request_context.ts | 3 + .../asset_criticality_data_client.test.ts | 5 ++ .../asset_criticality_data_client.ts | 25 +++++++ .../asset_criticality/audit.ts | 16 ++++ ...ck_and_init_asset_criticality_resources.ts | 1 + .../asset_criticality/routes/delete.ts | 15 +++- .../asset_criticality/routes/get.ts | 12 +++ .../asset_criticality/routes/privileges.ts | 13 ++++ .../asset_criticality/routes/status.ts | 13 ++++ .../asset_criticality/routes/upload_csv.ts | 14 +++- .../asset_criticality/routes/upsert.ts | 12 +++ .../server/lib/entity_analytics/audit.ts | 25 +++++++ .../lib/entity_analytics/risk_engine/audit.ts | 19 +++++ .../risk_engine_data_client.test.ts | 1 + .../risk_engine/risk_engine_data_client.ts | 75 +++++++++++++++++++ .../risk_engine/routes/disable.ts | 32 +++++++- .../risk_engine/routes/enable.ts | 30 +++++++- .../risk_engine/routes/init.ts | 15 +++- .../risk_engine/routes/privileges.ts | 15 +++- .../risk_engine/routes/settings.ts | 12 +++ .../lib/entity_analytics/risk_score/audit.ts | 13 ++++ .../risk_score/risk_score_data_client.ts | 14 ++++ .../risk_score/routes/calculation.ts | 15 +++- .../risk_score/routes/preview.ts | 12 +++ .../tasks/risk_scoring_task.test.ts | 2 + .../risk_score/tasks/risk_scoring_task.ts | 6 ++ .../security_solution/server/plugin.ts | 1 + .../server/request_context_factory.ts | 6 ++ .../plugins/security_solution/server/types.ts | 2 + .../plugins/security_solution/tsconfig.json | 3 +- 30 files changed, 418 insertions(+), 9 deletions(-) create mode 100644 x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/audit.ts create mode 100644 x-pack/plugins/security_solution/server/lib/entity_analytics/audit.ts create mode 100644 x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/audit.ts create mode 100644 x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/audit.ts diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts index cb0b48b8e3f0d..0893c7297763c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts @@ -37,6 +37,7 @@ import type { EndpointAuthz } from '../../../../../common/endpoint/types/authz'; import { riskEngineDataClientMock } from '../../../entity_analytics/risk_engine/risk_engine_data_client.mock'; import { riskScoreDataClientMock } from '../../../entity_analytics/risk_score/risk_score_data_client.mock'; import { assetCriticalityDataClientMock } from '../../../entity_analytics/asset_criticality/asset_criticality_data_client.mock'; +import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; export const createMockClients = () => { const core = coreMock.createRequestHandlerContext(); @@ -114,6 +115,7 @@ const createSecuritySolutionRequestContextMock = ( ): jest.Mocked => { const core = clients.core; const kibanaRequest = requestMock.create(); + const mockAuditLogger = auditLoggerMock.create(); return { core, @@ -148,6 +150,7 @@ const createSecuritySolutionRequestContextMock = ( getRiskEngineDataClient: jest.fn(() => clients.riskEngineDataClient), getRiskScoreDataClient: jest.fn(() => clients.riskScoreDataClient), getAssetCriticalityDataClient: jest.fn(() => clients.assetCriticalityDataClient), + getAuditLogger: jest.fn(() => mockAuditLogger), }; }; diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.test.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.test.ts index b9cabeb732450..b77ea7742077d 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.test.ts @@ -8,6 +8,7 @@ import { loggingSystemMock, elasticsearchServiceMock } from '@kbn/core/server/mocks'; import { AssetCriticalityDataClient } from './asset_criticality_data_client'; import { createOrUpdateIndex } from '../utils/create_or_update_index'; +import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; type MockInternalEsClient = ReturnType< typeof elasticsearchServiceMock.createScopedClusterClient @@ -19,12 +20,15 @@ jest.mock('../utils/create_or_update_index', () => ({ describe('AssetCriticalityDataClient', () => { const esClientInternal = elasticsearchServiceMock.createScopedClusterClient().asInternalUser; const logger = loggingSystemMock.createLogger(); + const mockAuditLogger = auditLoggerMock.create(); + describe('init', () => { it('ensures the index is available and up to date', async () => { const assetCriticalityDataClient = new AssetCriticalityDataClient({ esClient: esClientInternal, logger, namespace: 'default', + auditLogger: mockAuditLogger, }); await assetCriticalityDataClient.init(); @@ -72,6 +76,7 @@ describe('AssetCriticalityDataClient', () => { esClient: esClientMock, logger: loggerMock, namespace: 'default', + auditLogger: mockAuditLogger, }); }); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts index fd72e7501f7bb..81f0386a6c96c 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/asset_criticality_data_client.ts @@ -8,6 +8,7 @@ import type { ESFilter } from '@kbn/es-types'; import type { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; import type { Logger, ElasticsearchClient } from '@kbn/core/server'; import { mappingFromFieldMap } from '@kbn/alerting-plugin/common'; +import type { AuditLogger } from '@kbn/security-plugin-types-server'; import type { AssetCriticalityCsvUploadResponse, AssetCriticalityUpsert, @@ -16,9 +17,12 @@ import type { AssetCriticalityRecord } from '../../../../common/api/entity_analy import { createOrUpdateIndex } from '../utils/create_or_update_index'; import { getAssetCriticalityIndex } from '../../../../common/entity_analytics/asset_criticality'; import { assetCriticalityFieldMap } from './constants'; +import { AssetCriticalityAuditActions } from './audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../audit'; interface AssetCriticalityClientOpts { logger: Logger; + auditLogger: AuditLogger | undefined; esClient: ElasticsearchClient; namespace: string; } @@ -49,6 +53,16 @@ export class AssetCriticalityDataClient { mappings: mappingFromFieldMap(assetCriticalityFieldMap, 'strict'), }, }); + + this.options.auditLogger?.log({ + message: 'User installed asset criticality Elasticsearch resources', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_INITIALIZE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CREATION, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); } /** @@ -83,6 +97,17 @@ export class AssetCriticalityDataClient { const result = await this.options.esClient.indices.exists({ index: this.getIndex(), }); + + this.options.auditLogger?.log({ + message: 'User checked if the asset criticality Elasticsearch resources were installed', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_INITIALIZE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + return result; } catch (e) { return false; diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/audit.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/audit.ts new file mode 100644 index 0000000000000..3d4a4dfed4c22 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/audit.ts @@ -0,0 +1,16 @@ +/* + * 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 enum AssetCriticalityAuditActions { + ASSET_CRITICALITY_INITIALIZE = 'asset_criticality_initialize', + ASSET_CRITICALITY_UNASSIGN = 'asset_criticality_unassign', + ASSET_CRITICALITY_GET = 'asset_criticality_get', + ASSET_CRITICALITY_PRIVILEGE_GET = 'asset_criticality_privilege_get', + ASSET_CRITICALITY_STATUS_GET = 'asset_criticality_status_get', + ASSET_CRITICALITY_UPDATE = 'asset_criticality_update', + ASSET_CRITICALITY_BULK_UPDATE = 'asset_criticality_bulk_update', +} diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/check_and_init_asset_criticality_resources.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/check_and_init_asset_criticality_resources.ts index 08843c90a1739..9dbede37adb50 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/check_and_init_asset_criticality_resources.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/check_and_init_asset_criticality_resources.ts @@ -25,6 +25,7 @@ export const checkAndInitAssetCriticalityResources = async ( const assetCriticalityDataClient = new AssetCriticalityDataClient({ esClient, logger, + auditLogger: securityContext.getAuditLogger(), namespace: securityContext.getSpaceId(), }); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/delete.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/delete.ts index 596e371fad4fb..f9630542283ef 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/delete.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/delete.ts @@ -17,6 +17,8 @@ import { buildRouteValidationWithZod } from '../../../../utils/build_validation/ import { checkAndInitAssetCriticalityResources } from '../check_and_init_asset_criticality_resources'; import { assertAdvancedSettingsEnabled } from '../../utils/assert_advanced_setting_enabled'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { AssetCriticalityAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const assetCriticalityDeleteRoute = ( router: EntityAnalyticsRoutesDeps['router'], logger: Logger @@ -39,12 +41,23 @@ export const assetCriticalityDeleteRoute = ( }, }, async (context, request, response) => { + const securitySolution = await context.securitySolution; + + securitySolution.getAuditLogger()?.log({ + message: 'User attempted to un-assign asset criticality from an entity', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_UNASSIGN, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.DELETION, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + const siemResponse = buildSiemResponse(response); try { await assertAdvancedSettingsEnabled(await context.core, ENABLE_ASSET_CRITICALITY_SETTING); await checkAndInitAssetCriticalityResources(context, logger); - const securitySolution = await context.securitySolution; const assetCriticalityClient = securitySolution.getAssetCriticalityDataClient(); await assetCriticalityClient.delete({ idField: request.query.id_field, diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/get.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/get.ts index b81eddfa5ecea..fd2a826df117a 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/get.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/get.ts @@ -17,6 +17,8 @@ import { buildRouteValidationWithZod } from '../../../../utils/build_validation/ import { AssetCriticalityRecordIdParts } from '../../../../../common/api/entity_analytics/asset_criticality'; import { assertAdvancedSettingsEnabled } from '../../utils/assert_advanced_setting_enabled'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { AssetCriticalityAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const assetCriticalityGetRoute = ( router: EntityAnalyticsRoutesDeps['router'], logger: Logger @@ -55,6 +57,16 @@ export const assetCriticalityGetRoute = ( return response.notFound(); } + securitySolution.getAuditLogger()?.log({ + message: 'User accessed the criticality level for an entity', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_GET, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + return response.ok({ body: record }); } catch (e) { const error = transformError(e); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/privileges.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/privileges.ts index a4433eaaca4cf..a339ee994c8c2 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/privileges.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/privileges.ts @@ -16,6 +16,8 @@ import { checkAndInitAssetCriticalityResources } from '../check_and_init_asset_c import { getUserAssetCriticalityPrivileges } from '../get_user_asset_criticality_privileges'; import { assertAdvancedSettingsEnabled } from '../../utils/assert_advanced_setting_enabled'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { AssetCriticalityAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const assetCriticalityPrivilegesRoute = ( router: EntityAnalyticsRoutesDeps['router'], @@ -45,6 +47,17 @@ export const assetCriticalityPrivilegesRoute = ( const [_, { security }] = await getStartServices(); const body = await getUserAssetCriticalityPrivileges(request, security); + const securitySolution = await context.securitySolution; + securitySolution.getAuditLogger()?.log({ + message: 'User checked if they have the required privileges to use asset criticality', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_PRIVILEGE_GET, + category: AUDIT_CATEGORY.AUTHENTICATION, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + return response.ok({ body, }); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/status.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/status.ts index 465cfcc4d4154..27910cfd40631 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/status.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/status.ts @@ -13,8 +13,10 @@ import { APP_ID, ENABLE_ASSET_CRITICALITY_SETTING, } from '../../../../../common/constants'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; import type { EntityAnalyticsRoutesDeps } from '../../types'; import { assertAdvancedSettingsEnabled } from '../../utils/assert_advanced_setting_enabled'; +import { AssetCriticalityAuditActions } from '../audit'; import { checkAndInitAssetCriticalityResources } from '../check_and_init_asset_criticality_resources'; export const assetCriticalityStatusRoute = ( @@ -39,6 +41,17 @@ export const assetCriticalityStatusRoute = ( const assetCriticalityClient = securitySolution.getAssetCriticalityDataClient(); const result = await assetCriticalityClient.getStatus(); + + securitySolution.getAuditLogger()?.log({ + message: 'User checked the status of the asset criticality service', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_STATUS_GET, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + const body: AssetCriticalityStatusResponse = { asset_criticality_resources_installed: result.isAssetCriticalityResourcesInstalled, }; diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upload_csv.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upload_csv.ts index 2374c4427b6d3..cf4123db487a4 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upload_csv.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upload_csv.ts @@ -23,6 +23,8 @@ import { transformCSVToUpsertRecords } from '../transform_csv_to_upsert_records' import { createAssetCriticalityProcessedFileEvent } from '../../../telemetry/event_based/events'; import { assertAdvancedSettingsEnabled } from '../../utils/assert_advanced_setting_enabled'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { AssetCriticalityAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const assetCriticalityCSVUploadRoute = ( router: EntityAnalyticsRoutesDeps['router'], @@ -57,6 +59,17 @@ export const assetCriticalityCSVUploadRoute = ( }, }, async (context, request, response) => { + const securitySolution = await context.securitySolution; + securitySolution.getAuditLogger()?.log({ + message: 'User attempted to assign many asset criticalities via file upload', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_BULK_UPDATE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CREATION, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + const start = new Date(); const siemResponse = buildSiemResponse(response); const [coreStart] = await getStartServices(); @@ -65,7 +78,6 @@ export const assetCriticalityCSVUploadRoute = ( try { await assertAdvancedSettingsEnabled(await context.core, ENABLE_ASSET_CRITICALITY_SETTING); await checkAndInitAssetCriticalityResources(context, logger); - const securitySolution = await context.securitySolution; const assetCriticalityClient = securitySolution.getAssetCriticalityDataClient(); const fileStream = request.body.file as HapiReadableStream; diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upsert.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upsert.ts index c1e9db429ceaa..6398c2ec56e3a 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upsert.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/asset_criticality/routes/upsert.ts @@ -12,6 +12,8 @@ import { checkAndInitAssetCriticalityResources } from '../check_and_init_asset_c import { buildRouteValidationWithZod } from '../../../../utils/build_validation/route_validation'; import { CreateAssetCriticalityRecord } from '../../../../../common/api/entity_analytics/asset_criticality'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { AssetCriticalityAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const assetCriticalityUpsertRoute = ( router: EntityAnalyticsRoutesDeps['router'], logger: Logger @@ -49,6 +51,16 @@ export const assetCriticalityUpsertRoute = ( const result = await assetCriticalityClient.upsert(assetCriticalityRecord); + securitySolution.getAuditLogger()?.log({ + message: 'User attempted to assign the asset criticality level for an entity', + event: { + action: AssetCriticalityAuditActions.ASSET_CRITICALITY_UPDATE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CREATION, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + return response.ok({ body: result, }); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/audit.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/audit.ts new file mode 100644 index 0000000000000..685cf50dc8024 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/audit.ts @@ -0,0 +1,25 @@ +/* + * 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 enum AUDIT_TYPE { + CHANGE = 'change', + DELETION = 'deletion', + ACCESS = 'access', + CREATION = 'creation', +} + +export enum AUDIT_CATEGORY { + AUTHENTICATION = 'authentication', + DATABASE = 'database', + WEB = 'web', +} + +export enum AUDIT_OUTCOME { + FAILURE = 'failure', + SUCCESS = 'success', + UNKNOWN = 'unknown', +} diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/audit.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/audit.ts new file mode 100644 index 0000000000000..e92319c81719f --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/audit.ts @@ -0,0 +1,19 @@ +/* + * 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 enum RiskEngineAuditActions { + RISK_ENGINE_ENABLE = 'risk_engine_enable', + RISK_ENGINE_START = 'risk_engine_start', + RISK_ENGINE_DISABLE = 'risk_engine_disable', + RISK_ENGINE_INIT = 'risk_engine_init', + RISK_ENGINE_GET_LEGACY_ENGINE_STATUS_GET = 'risk_engine_get_legacy_engine_status_get', + RISK_ENGINE_STATUS_FOR_ALL_SPACES_GET = 'risk_engine_status_for_all_spaces_get', + RISK_ENGINE_STATUS_GET = 'risk_engine_status_get', + RISK_ENGINE_CONFIGURATION_GET = 'risk_engine_configuration_get', + RISK_ENGINE_DISABLE_LEGACY_ENGINE = 'risk_engine_disable_legacy_engine', + RISK_ENGINE_REMOVE_TASK = 'risk_engine_remove_task', +} diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.test.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.test.ts index a155a320cb606..15569b0b17f21 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.test.ts @@ -78,6 +78,7 @@ describe('RiskEngineDataClient', () => { esClient, soClient: mockSavedObjectClient, namespace: 'default', + auditLogger: undefined, }; riskEngineDataClient = new RiskEngineDataClient(options); }); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.ts index 88c911a6d7789..f462584a60ea0 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/risk_engine_data_client.ts @@ -7,6 +7,7 @@ import type { Logger, ElasticsearchClient, SavedObjectsClientContract } from '@kbn/core/server'; import type { TaskManagerStartContract } from '@kbn/task-manager-plugin/server'; +import type { AuditLogger } from '@kbn/security-plugin-types-server'; import type { InitRiskEngineResult } from '../../../../common/entity_analytics/risk_engine'; import { RiskEngineStatus, @@ -23,6 +24,8 @@ import { import { bulkDeleteSavedObjects } from '../../risk_score/prebuilt_saved_objects/helpers/bulk_delete_saved_objects'; import type { RiskScoreDataClient } from '../risk_score/risk_score_data_client'; import { removeRiskScoringTask, startRiskScoringTask } from '../risk_score/tasks'; +import { RiskEngineAuditActions } from './audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../audit'; interface InitOpts { namespace: string; @@ -36,6 +39,7 @@ interface RiskEngineDataClientOpts { esClient: ElasticsearchClient; namespace: string; soClient: SavedObjectsClientContract; + auditLogger: AuditLogger | undefined; } export class RiskEngineDataClient { @@ -52,6 +56,15 @@ export class RiskEngineDataClient { try { result.legacyRiskEngineDisabled = await this.disableLegacyRiskEngine({ namespace }); + this.options.auditLogger?.log({ + message: 'System disabled the legacy risk engine.', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_DISABLE_LEGACY_ENGINE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); } catch (e) { result.legacyRiskEngineDisabled = false; result.errors.push(e.message); @@ -97,6 +110,17 @@ export class RiskEngineDataClient { const riskEngineStatus = await this.getCurrentStatus(); const legacyRiskEngineStatus = await this.getLegacyStatus({ namespace }); const isMaxAmountOfRiskEnginesReached = await this.getIsMaxAmountOfRiskEnginesReached(); + + this.options.auditLogger?.log({ + message: 'User checked if the risk engine is enabled', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_STATUS_GET, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + return { riskEngineStatus, legacyRiskEngineStatus, isMaxAmountOfRiskEnginesReached }; } @@ -116,10 +140,31 @@ export class RiskEngineDataClient { taskManager, }); + this.options.auditLogger?.log({ + message: 'User started risk scoring service', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_START, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + return configurationResult; } catch (e) { this.options.logger.error(`Error while enabling risk engine: ${e.message}`); + this.options.auditLogger?.log({ + message: 'System stopped risk scoring service after error occurred', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_DISABLE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.FAILURE, + }, + error: e, + }); + await this.disableRiskEngine({ taskManager }); throw e; @@ -133,6 +178,16 @@ export class RiskEngineDataClient { logger: this.options.logger, }); + this.options.auditLogger?.log({ + message: 'User removed risk scoring task', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_REMOVE_TASK, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + return updateSavedObjectAttribute({ savedObjectsClient: this.options.soClient, attributes: { @@ -185,6 +240,16 @@ export class RiskEngineDataClient { savedObjectsClient: this.options.soClient, }); + this.options.auditLogger?.log({ + message: 'System checked if the risk engine is enabled in each space', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_STATUS_FOR_ALL_SPACES_GET, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + return amountOfEnabledConfigurations >= MAX_SPACES_COUNT; } catch (e) { this.options.logger.error(`Error while getting amount of enabled risk engines: ${e.message}`); @@ -195,6 +260,16 @@ export class RiskEngineDataClient { private async getLegacyStatus({ namespace }: { namespace: string }) { const transforms = await getLegacyTransforms({ namespace, esClient: this.options.esClient }); + this.options.auditLogger?.log({ + message: 'System checked if the legacy risk engine is enabled', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_GET_LEGACY_ENGINE_STATUS_GET, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + if (transforms.length === 0) { return RiskEngineStatus.NOT_INSTALLED; } diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/disable.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/disable.ts index 89fbdd730c912..5a8d44ef057a8 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/disable.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/disable.ts @@ -11,6 +11,8 @@ import { RISK_ENGINE_DISABLE_URL, APP_ID } from '../../../../../common/constants import { TASK_MANAGER_UNAVAILABLE_ERROR } from './translations'; import { withRiskEnginePrivilegeCheck } from '../risk_engine_privileges'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { RiskEngineAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const riskEngineDisableRoute = ( router: EntityAnalyticsRoutesDeps['router'], @@ -27,13 +29,39 @@ export const riskEngineDisableRoute = ( .addVersion( { version: '1', validate: {} }, withRiskEnginePrivilegeCheck(getStartServices, async (context, request, response) => { - const siemResponse = buildSiemResponse(response); + const securitySolution = await context.securitySolution; + securitySolution.getAuditLogger()?.log({ + message: 'User attempted to disable the risk engine.', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_DISABLE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + + const siemResponse = buildSiemResponse(response); const [_, { taskManager }] = await getStartServices(); - const securitySolution = await context.securitySolution; + const riskEngineClient = securitySolution.getRiskEngineDataClient(); if (!taskManager) { + securitySolution.getAuditLogger()?.log({ + message: + 'User attempted to disable the risk engine, but the Kibana Task Manager was unavailable', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_DISABLE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.FAILURE, + }, + error: { + message: + 'User attempted to disable the risk engine, but the Kibana Task Manager was unavailable', + }, + }); + return siemResponse.error({ statusCode: 400, body: TASK_MANAGER_UNAVAILABLE_ERROR, diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/enable.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/enable.ts index a086278a8b7d2..237f10bc00ad6 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/enable.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/enable.ts @@ -11,6 +11,8 @@ import { RISK_ENGINE_ENABLE_URL, APP_ID } from '../../../../../common/constants' import { TASK_MANAGER_UNAVAILABLE_ERROR } from './translations'; import { withRiskEnginePrivilegeCheck } from '../risk_engine_privileges'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { RiskEngineAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const riskEngineEnableRoute = ( router: EntityAnalyticsRoutesDeps['router'], @@ -27,11 +29,37 @@ export const riskEngineEnableRoute = ( .addVersion( { version: '1', validate: {} }, withRiskEnginePrivilegeCheck(getStartServices, async (context, request, response) => { + const securitySolution = await context.securitySolution; + + securitySolution.getAuditLogger()?.log({ + message: 'User attempted to enable the risk engine', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_ENABLE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + const siemResponse = buildSiemResponse(response); const [_, { taskManager }] = await getStartServices(); - const securitySolution = await context.securitySolution; const riskEngineClient = securitySolution.getRiskEngineDataClient(); if (!taskManager) { + securitySolution.getAuditLogger()?.log({ + message: + 'User attempted to enable the risk engine, but the Kibana Task Manager was unavailable', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_ENABLE, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.FAILURE, + }, + error: { + message: + 'User attempted to enable the risk engine, but the Kibana Task Manager was unavailable', + }, + }); + return siemResponse.error({ statusCode: 400, body: TASK_MANAGER_UNAVAILABLE_ERROR, diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/init.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/init.ts index 5dcc657497fc0..0b0efda642fc0 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/init.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/init.ts @@ -11,6 +11,8 @@ import { RISK_ENGINE_INIT_URL, APP_ID } from '../../../../../common/constants'; import { TASK_MANAGER_UNAVAILABLE_ERROR } from './translations'; import type { EntityAnalyticsRoutesDeps, InitRiskEngineResultResponse } from '../../types'; import { withRiskEnginePrivilegeCheck } from '../risk_engine_privileges'; +import { RiskEngineAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const riskEngineInitRoute = ( router: EntityAnalyticsRoutesDeps['router'], getStartServices: EntityAnalyticsRoutesDeps['getStartServices'] @@ -26,8 +28,19 @@ export const riskEngineInitRoute = ( .addVersion( { version: '1', validate: {} }, withRiskEnginePrivilegeCheck(getStartServices, async (context, request, response) => { - const siemResponse = buildSiemResponse(response); const securitySolution = await context.securitySolution; + + securitySolution.getAuditLogger()?.log({ + message: 'User attempted to initialize the risk engine', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_INIT, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + + const siemResponse = buildSiemResponse(response); const [_, { taskManager }] = await getStartServices(); const riskEngineDataClient = securitySolution.getRiskEngineDataClient(); const riskScoreDataClient = securitySolution.getRiskScoreDataClient(); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/privileges.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/privileges.ts index ebcf382cc148e..d7343343a1c3d 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/privileges.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/privileges.ts @@ -8,6 +8,8 @@ import { buildSiemResponse } from '@kbn/lists-plugin/server/routes/utils'; import { transformError } from '@kbn/securitysolution-es-utils'; import { RISK_ENGINE_PRIVILEGES_URL, APP_ID } from '../../../../../common/constants'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; +import { RiskScoreAuditActions } from '../../risk_score/audit'; import type { EntityAnalyticsRoutesDeps } from '../../types'; import { getUserRiskEnginePrivileges } from '../risk_engine_privileges'; @@ -26,10 +28,21 @@ export const riskEnginePrivilegesRoute = ( }) .addVersion({ version: '1', validate: false }, async (context, request, response) => { const siemResponse = buildSiemResponse(response); - const [_, { security }] = await getStartServices(); + const securitySolution = await context.securitySolution; + const body = await getUserRiskEnginePrivileges(request, security); + securitySolution.getAuditLogger()?.log({ + message: 'User checked if they have the required privileges to configure the risk engine', + event: { + action: RiskScoreAuditActions.RISK_ENGINE_PRIVILEGES_GET, + category: AUDIT_CATEGORY.AUTHENTICATION, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + try { return response.ok({ body, diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/settings.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/settings.ts index e2af681785554..e538ae660b6eb 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/settings.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/settings.ts @@ -8,7 +8,9 @@ import { buildSiemResponse } from '@kbn/lists-plugin/server/routes/utils'; import { transformError } from '@kbn/securitysolution-es-utils'; import { RISK_ENGINE_SETTINGS_URL, APP_ID } from '../../../../../common/constants'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { RiskEngineAuditActions } from '../audit'; export const riskEngineSettingsRoute = (router: EntityAnalyticsRoutesDeps['router']) => { router.versioned @@ -27,6 +29,16 @@ export const riskEngineSettingsRoute = (router: EntityAnalyticsRoutesDeps['route try { const result = await riskEngineClient.getConfiguration(); + securitySolution.getAuditLogger()?.log({ + message: 'User accessed risk engine configuration information', + event: { + action: RiskEngineAuditActions.RISK_ENGINE_CONFIGURATION_GET, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.ACCESS, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + if (!result) { throw new Error('Unable to get risk engine configuration'); } diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/audit.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/audit.ts new file mode 100644 index 0000000000000..012b55cf4f325 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/audit.ts @@ -0,0 +1,13 @@ +/* + * 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 enum RiskScoreAuditActions { + RISK_ENGINE_INSTALL = 'risk_engine_install', + RISK_ENGINE_PRIVILEGES_GET = 'risk_engine_privileges_get', + RISK_ENGINE_MANUAL_SCORING = 'risk_engine_manual_scoring', + RISK_ENGINE_PREVIEW = 'risk_engine_preview', +} diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/risk_score_data_client.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/risk_score_data_client.ts index 1b7e3d36ae34c..ac912e3eb6308 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/risk_score_data_client.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/risk_score_data_client.ts @@ -17,6 +17,7 @@ import { import { mappingFromFieldMap } from '@kbn/alerting-plugin/common'; import type { ElasticsearchClient, Logger, SavedObjectsClientContract } from '@kbn/core/server'; +import type { AuditLogger } from '@kbn/security-plugin-types-server'; import { getIndexPatternDataStream, getTransformOptions, @@ -33,6 +34,8 @@ import { getRiskInputsIndex } from './get_risk_inputs_index'; import { createOrUpdateIndex } from '../utils/create_or_update_index'; import { retryTransientEsErrors } from '../utils/retry_transient_es_errors'; +import { RiskScoreAuditActions } from './audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../audit'; interface RiskScoringDataClientOpts { logger: Logger; @@ -40,6 +43,7 @@ interface RiskScoringDataClientOpts { esClient: ElasticsearchClient; namespace: string; soClient: SavedObjectsClientContract; + auditLogger?: AuditLogger | undefined; } export class RiskScoreDataClient { @@ -160,6 +164,16 @@ export class RiskScoreDataClient { }), }, }); + + this.options.auditLogger?.log({ + message: 'System installed risk engine Elasticsearch components', + event: { + action: RiskScoreAuditActions.RISK_ENGINE_INSTALL, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); } catch (error) { this.options.logger.error(`Error initializing risk engine resources: ${error.message}`); throw error; diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/calculation.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/calculation.ts index e5a489852c48e..b303eaaf407d5 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/calculation.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/calculation.ts @@ -19,6 +19,8 @@ import { assetCriticalityServiceFactory } from '../../asset_criticality'; import { riskScoreServiceFactory } from '../risk_score_service'; import { getRiskInputsIndex } from '../get_risk_inputs_index'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { RiskScoreAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const riskScoreCalculationRoute = ( router: EntityAnalyticsRoutesDeps['router'], @@ -38,8 +40,19 @@ export const riskScoreCalculationRoute = ( validate: { request: { body: buildRouteValidation(riskScoreCalculationRequestSchema) } }, }, async (context, request, response) => { - const siemResponse = buildSiemResponse(response); const securityContext = await context.securitySolution; + + securityContext.getAuditLogger()?.log({ + message: 'User triggered custom manual scoring', + event: { + action: RiskScoreAuditActions.RISK_ENGINE_MANUAL_SCORING, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.UNKNOWN, + }, + }); + + const siemResponse = buildSiemResponse(response); const coreContext = await context.core; const esClient = coreContext.elasticsearch.client.asCurrentUser; const soClient = coreContext.savedObjects.client; diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/preview.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/preview.ts index 86bfa37f219f0..d0a083cf2a5a2 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/preview.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/routes/preview.ts @@ -20,6 +20,8 @@ import { assetCriticalityServiceFactory } from '../../asset_criticality'; import { riskScoreServiceFactory } from '../risk_score_service'; import { getRiskInputsIndex } from '../get_risk_inputs_index'; import type { EntityAnalyticsRoutesDeps } from '../../types'; +import { RiskScoreAuditActions } from '../audit'; +import { AUDIT_CATEGORY, AUDIT_OUTCOME, AUDIT_TYPE } from '../../audit'; export const riskScorePreviewRoute = ( router: EntityAnalyticsRoutesDeps['router'], @@ -105,6 +107,16 @@ export const riskScorePreviewRoute = ( alertSampleSizePerShard, }); + securityContext.getAuditLogger()?.log({ + message: 'User triggered custom manual scoring', + event: { + action: RiskScoreAuditActions.RISK_ENGINE_PREVIEW, + category: AUDIT_CATEGORY.DATABASE, + type: AUDIT_TYPE.CHANGE, + outcome: AUDIT_OUTCOME.SUCCESS, + }, + }); + return response.ok({ body: result }); } catch (e) { const error = transformError(e); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.test.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.test.ts index 89721e949a1d6..7e1519e3745c4 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.test.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.test.ts @@ -59,6 +59,7 @@ describe('Risk Scoring Task', () => { logger: mockLogger, telemetry: mockTelemetry, entityAnalyticsConfig, + auditLogger: undefined, }); expect(mockTaskManagerSetup.registerTaskDefinitions).toHaveBeenCalled(); }); @@ -72,6 +73,7 @@ describe('Risk Scoring Task', () => { logger: mockLogger, telemetry: mockTelemetry, entityAnalyticsConfig, + auditLogger: undefined, }); expect(mockTaskManagerSetup.registerTaskDefinitions).not.toHaveBeenCalled(); }); diff --git a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.ts b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.ts index 5e1881cb7173f..f936ca6a83c76 100644 --- a/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.ts +++ b/x-pack/plugins/security_solution/server/lib/entity_analytics/risk_score/tasks/risk_scoring_task.ts @@ -14,6 +14,7 @@ import type { TaskManagerStartContract, } from '@kbn/task-manager-plugin/server'; import type { AnalyticsServiceSetup } from '@kbn/core-analytics-server'; +import type { AuditLogger } from '@kbn/security-plugin-types-server'; import { type AfterKeys, type IdentifierType, @@ -56,6 +57,7 @@ export const registerRiskScoringTask = ({ getStartServices, kibanaVersion, logger, + auditLogger, taskManager, telemetry, entityAnalyticsConfig, @@ -63,6 +65,7 @@ export const registerRiskScoringTask = ({ getStartServices: EntityAnalyticsRoutesDeps['getStartServices']; kibanaVersion: string; logger: Logger; + auditLogger: AuditLogger | undefined; taskManager: TaskManagerSetupContract | undefined; telemetry: AnalyticsServiceSetup; entityAnalyticsConfig: EntityAnalyticsConfig; @@ -80,6 +83,7 @@ export const registerRiskScoringTask = ({ const assetCriticalityDataClient = new AssetCriticalityDataClient({ esClient, logger, + auditLogger, namespace, }); @@ -94,6 +98,7 @@ export const registerRiskScoringTask = ({ esClient, namespace, soClient, + auditLogger, }); const riskScoreDataClient = new RiskScoreDataClient({ logger, @@ -101,6 +106,7 @@ export const registerRiskScoringTask = ({ esClient, namespace, soClient, + auditLogger, }); return riskScoreServiceFactory({ diff --git a/x-pack/plugins/security_solution/server/plugin.ts b/x-pack/plugins/security_solution/server/plugin.ts index 1b05cbd1740b3..1b282771a608a 100644 --- a/x-pack/plugins/security_solution/server/plugin.ts +++ b/x-pack/plugins/security_solution/server/plugin.ts @@ -211,6 +211,7 @@ export class Plugin implements ISecuritySolutionPlugin { getStartServices: core.getStartServices, kibanaVersion: pluginContext.env.packageInfo.version, logger: this.logger, + auditLogger: plugins.security?.audit.withoutRequest, taskManager: plugins.taskManager, telemetry: core.analytics, entityAnalyticsConfig: config.entityAnalytics, diff --git a/x-pack/plugins/security_solution/server/request_context_factory.ts b/x-pack/plugins/security_solution/server/request_context_factory.ts index 3f1d9f818e431..ddb825cb642e6 100644 --- a/x-pack/plugins/security_solution/server/request_context_factory.ts +++ b/x-pack/plugins/security_solution/server/request_context_factory.ts @@ -77,6 +77,8 @@ export class RequestContextFactory implements IRequestContextFactory { kibanaBranch: options.kibanaBranch, }); + const getAuditLogger = () => security?.audit.asScoped(request); + // List of endpoint authz for the current request's user. Will be initialized the first // time it is requested (see `getEndpointAuthz()` below) let endpointAuthz: Immutable; @@ -107,6 +109,8 @@ export class RequestContextFactory implements IRequestContextFactory { getRacClient: startPlugins.ruleRegistry.getRacClientWithRequest, + getAuditLogger, + getDetectionEngineHealthClient: memoize(() => ruleMonitoringService.createDetectionEngineHealthClient({ rulesClient: startPlugins.alerting.getRulesClientWithRequest(request), @@ -141,6 +145,7 @@ export class RequestContextFactory implements IRequestContextFactory { esClient: coreContext.elasticsearch.client.asCurrentUser, soClient: coreContext.savedObjects.client, namespace: getSpaceId(), + auditLogger: getAuditLogger(), }) ), getRiskScoreDataClient: memoize( @@ -159,6 +164,7 @@ export class RequestContextFactory implements IRequestContextFactory { logger: options.logger, esClient: coreContext.elasticsearch.client.asCurrentUser, namespace: getSpaceId(), + auditLogger: getAuditLogger(), }) ), }; diff --git a/x-pack/plugins/security_solution/server/types.ts b/x-pack/plugins/security_solution/server/types.ts index 7833c1dff6b8a..513eb6079e041 100644 --- a/x-pack/plugins/security_solution/server/types.ts +++ b/x-pack/plugins/security_solution/server/types.ts @@ -19,6 +19,7 @@ import type { ExceptionListClient, ListsApiRequestHandlerContext } from '@kbn/li import type { AlertsClient, IRuleDataService } from '@kbn/rule-registry-plugin/server'; import type { Readable } from 'stream'; +import type { AuditLogger } from '@kbn/security-plugin-types-server'; import type { Immutable } from '../common/endpoint/types'; import { AppClient } from './client'; import type { ConfigType } from './config'; @@ -46,6 +47,7 @@ export interface SecuritySolutionApiRequestHandlerContext { getDetectionEngineHealthClient: () => IDetectionEngineHealthClient; getRuleExecutionLog: () => IRuleExecutionLogForRoutes; getRacClient: (req: KibanaRequest) => Promise; + getAuditLogger: () => AuditLogger | undefined; getExceptionListClient: () => ExceptionListClient | null; getInternalFleetServices: () => EndpointInternalFleetServicesInterface; getRiskEngineDataClient: () => RiskEngineDataClient; diff --git a/x-pack/plugins/security_solution/tsconfig.json b/x-pack/plugins/security_solution/tsconfig.json index 81be1505f116c..48e37a562dd72 100644 --- a/x-pack/plugins/security_solution/tsconfig.json +++ b/x-pack/plugins/security_solution/tsconfig.json @@ -198,6 +198,7 @@ "@kbn/core-chrome-browser", "@kbn/shared-ux-chrome-navigation", "@kbn/core-ui-settings-browser-mocks", - "@kbn/management-plugin" + "@kbn/management-plugin", + "@kbn/security-plugin-types-server" ] } From d9f345108eb1e6af94b59177004b45716fea23e9 Mon Sep 17 00:00:00 2001 From: Elastic Machine Date: Tue, 23 Apr 2024 13:49:02 +0200 Subject: [PATCH 065/183] Update kubernetes templates for elastic-agent (#181213) Automated by https://buildkite.com/elastic/elastic-agent/builds/8460 --------- Co-authored-by: Andreas Gkizas --- x-pack/plugins/fleet/server/services/elastic_agent_manifest.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/services/elastic_agent_manifest.ts b/x-pack/plugins/fleet/server/services/elastic_agent_manifest.ts index 829b72070cf89..912bc637120be 100644 --- a/x-pack/plugins/fleet/server/services/elastic_agent_manifest.ts +++ b/x-pack/plugins/fleet/server/services/elastic_agent_manifest.ts @@ -42,7 +42,7 @@ spec: # - -c # - >- # mkdir -p /etc/elastic-agent/inputs.d && - # wget -O - https://github.com/elastic/elastic-agent/archive/8.14.tar.gz | tar xz -C /etc/elastic-agent/inputs.d --strip=5 "elastic-agent-8.14/deploy/kubernetes/elastic-agent/templates.d" + # wget -O - https://github.com/elastic/elastic-agent/archive/8.15.tar.gz | tar xz -C /etc/elastic-agent/inputs.d --strip=5 "elastic-agent-8.15/deploy/kubernetes/elastic-agent/templates.d" # volumeMounts: # - name: external-inputs # mountPath: /etc/elastic-agent/inputs.d From cc94a663115642439d3087edf63714151013aa23 Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Tue, 23 Apr 2024 14:26:11 +0200 Subject: [PATCH 066/183] [ES|QL] Improve validation for some ES|QL scenarios (#181381) ## Summary Fixes some issues with specific types in ES|QL query validation: * comparator operators now support `ip` type too * `==` and `!=` support `boolean` type now * column/variable/returnType of `any` type will skip strict type validation Screenshot 2024-04-23 at 10 00 10 Screenshot 2024-04-23 at 09 53 12 Screenshot 2024-04-23 at 09 52 58 Screenshot 2024-04-23 at 09 52 53 ### 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 --- .../src/definitions/builtin.ts | 28 + .../src/shared/helpers.ts | 7 +- .../esql_validation_meta_tests.json | 570 +++++++++++++++++- .../src/validation/validation.test.ts | 71 ++- 4 files changed, 666 insertions(+), 10 deletions(-) diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/builtin.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/builtin.ts index 23da9e1684cf4..037e5a4a1da91 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/builtin.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/builtin.ts @@ -47,9 +47,11 @@ function createComparisonDefinition( { name, description, + extraSignatures = [], }: { name: string; description: string; + extraSignatures?: FunctionDefinition['signatures']; }, validate?: FunctionDefinition['validate'] ): FunctionDefinition { @@ -82,6 +84,14 @@ function createComparisonDefinition( ], returnType: 'boolean', }, + { + params: [ + { name: 'left', type: 'ip' }, + { name: 'right', type: 'ip' }, + ], + returnType: 'boolean', + }, + ...extraSignatures, ], }; } @@ -180,6 +190,15 @@ export const builtinFunctions: FunctionDefinition[] = [ description: i18n.translate('kbn-esql-validation-autocomplete.esql.definition.equalToDoc', { defaultMessage: 'Equal to', }), + extraSignatures: [ + { + params: [ + { name: 'left', type: 'boolean' }, + { name: 'right', type: 'boolean' }, + ], + returnType: 'boolean', + }, + ], }, { name: '!=', @@ -189,6 +208,15 @@ export const builtinFunctions: FunctionDefinition[] = [ defaultMessage: 'Not equal to', } ), + extraSignatures: [ + { + params: [ + { name: 'left', type: 'boolean' }, + { name: 'right', type: 'boolean' }, + ], + returnType: 'boolean', + }, + ], }, { name: '<', diff --git a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts index cf5ed3304b41b..b2f782b52dd45 100644 --- a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts @@ -380,7 +380,9 @@ export function isEqualType( if (arg.type === 'function') { if (isSupportedFunction(arg.name, parentCommand).supported) { const fnDef = buildFunctionLookup().get(arg.name)!; - return fnDef.signatures.some((signature) => argType === signature.returnType); + return fnDef.signatures.some( + (signature) => signature.returnType === 'any' || argType === signature.returnType + ); } } if (arg.type === 'timeInterval') { @@ -397,7 +399,8 @@ export function isEqualType( return false; } const wrappedTypes = Array.isArray(validHit.type) ? validHit.type : [validHit.type]; - return wrappedTypes.some((ct) => argType === ct); + // if final type is of type any make it pass for now + return wrappedTypes.some((ct) => ct === 'any' || argType === ct); } } diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json index 8cad05403d8fd..38f52da328688 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json +++ b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json @@ -2984,6 +2984,24 @@ ], "warning": [] }, + { + "query": "row var = to_ip(\"127.0.0.1\") > to_ip(\"127.0.0.1\")", + "error": [], + "warning": [] + }, + { + "query": "row var = now() > now()", + "error": [], + "warning": [] + }, + { + "query": "row var = false > false", + "error": [ + "Argument of [>] must be [number], found value [false] type [boolean]", + "Argument of [>] must be [number], found value [false] type [boolean]" + ], + "warning": [] + }, { "query": "row var = 5 >= 0", "error": [], @@ -3013,6 +3031,24 @@ ], "warning": [] }, + { + "query": "row var = to_ip(\"127.0.0.1\") >= to_ip(\"127.0.0.1\")", + "error": [], + "warning": [] + }, + { + "query": "row var = now() >= now()", + "error": [], + "warning": [] + }, + { + "query": "row var = false >= false", + "error": [ + "Argument of [>=] must be [number], found value [false] type [boolean]", + "Argument of [>=] must be [number], found value [false] type [boolean]" + ], + "warning": [] + }, { "query": "row var = 5 < 0", "error": [], @@ -3042,6 +3078,24 @@ ], "warning": [] }, + { + "query": "row var = to_ip(\"127.0.0.1\") < to_ip(\"127.0.0.1\")", + "error": [], + "warning": [] + }, + { + "query": "row var = now() < now()", + "error": [], + "warning": [] + }, + { + "query": "row var = false < false", + "error": [ + "Argument of [<] must be [number], found value [false] type [boolean]", + "Argument of [<] must be [number], found value [false] type [boolean]" + ], + "warning": [] + }, { "query": "row var = 5 <= 0", "error": [], @@ -3071,6 +3125,24 @@ ], "warning": [] }, + { + "query": "row var = to_ip(\"127.0.0.1\") <= to_ip(\"127.0.0.1\")", + "error": [], + "warning": [] + }, + { + "query": "row var = now() <= now()", + "error": [], + "warning": [] + }, + { + "query": "row var = false <= false", + "error": [ + "Argument of [<=] must be [number], found value [false] type [boolean]", + "Argument of [<=] must be [number], found value [false] type [boolean]" + ], + "warning": [] + }, { "query": "row var = 5 == 0", "error": [], @@ -3100,6 +3172,65 @@ ], "warning": [] }, + { + "query": "row var = to_ip(\"127.0.0.1\") == to_ip(\"127.0.0.1\")", + "error": [], + "warning": [] + }, + { + "query": "row var = now() == now()", + "error": [], + "warning": [] + }, + { + "query": "row var = false == false", + "error": [], + "warning": [] + }, + { + "query": "row var = 5 != 0", + "error": [], + "warning": [] + }, + { + "query": "row var = NOT 5 != 0", + "error": [], + "warning": [] + }, + { + "query": "row var = (numberField != 0)", + "error": [ + "Unknown column [numberField]" + ], + "warning": [] + }, + { + "query": "row var = (NOT (5 != 0))", + "error": [], + "warning": [] + }, + { + "query": "row var = \"a\" != 0", + "error": [ + "Argument of [!=] must be [number], found value [\"a\"] type [string]" + ], + "warning": [] + }, + { + "query": "row var = to_ip(\"127.0.0.1\") != to_ip(\"127.0.0.1\")", + "error": [], + "warning": [] + }, + { + "query": "row var = now() != now()", + "error": [], + "warning": [] + }, + { + "query": "row var = false != false", + "error": [], + "warning": [] + }, { "query": "row var = 1 + 1", "error": [], @@ -3110,6 +3241,11 @@ "error": [], "warning": [] }, + { + "query": "row var = now() + now()", + "error": [], + "warning": [] + }, { "query": "row var = 1 - 1", "error": [], @@ -3120,6 +3256,11 @@ "error": [], "warning": [] }, + { + "query": "row var = now() - now()", + "error": [], + "warning": [] + }, { "query": "row var = 1 * 1", "error": [], @@ -3130,6 +3271,14 @@ "error": [], "warning": [] }, + { + "query": "row var = now() * now()", + "error": [ + "Argument of [*] must be [number], found value [now()] type [date]", + "Argument of [*] must be [number], found value [now()] type [date]" + ], + "warning": [] + }, { "query": "row var = 1 / 1", "error": [], @@ -3140,6 +3289,14 @@ "error": [], "warning": [] }, + { + "query": "row var = now() / now()", + "error": [ + "Argument of [/] must be [number], found value [now()] type [date]", + "Argument of [/] must be [number], found value [now()] type [date]" + ], + "warning": [] + }, { "query": "row var = 1 % 1", "error": [], @@ -3150,6 +3307,14 @@ "error": [], "warning": [] }, + { + "query": "row var = now() % now()", + "error": [ + "Argument of [%] must be [number], found value [now()] type [date]", + "Argument of [%] must be [number], found value [now()] type [date]" + ], + "warning": [] + }, { "query": "row var = \"a\" like \"?a\"", "error": [], @@ -5158,12 +5323,40 @@ "warning": [] }, { - "query": "from a_index | eval stringField > 0", + "query": "from a_index | where stringField > 0", "error": [ "Argument of [>] must be [number], found value [stringField] type [string]" ], "warning": [] }, + { + "query": "from a_index | where stringField > stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where numberField > numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateField > dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where booleanField > booleanField", + "error": [ + "Argument of [>] must be [number], found value [booleanField] type [boolean]", + "Argument of [>] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | where ipField > ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | where numberField >= 0", "error": [], @@ -5190,12 +5383,40 @@ "warning": [] }, { - "query": "from a_index | eval stringField >= 0", + "query": "from a_index | where stringField >= 0", "error": [ "Argument of [>=] must be [number], found value [stringField] type [string]" ], "warning": [] }, + { + "query": "from a_index | where stringField >= stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where numberField >= numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateField >= dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where booleanField >= booleanField", + "error": [ + "Argument of [>=] must be [number], found value [booleanField] type [boolean]", + "Argument of [>=] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | where ipField >= ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | where numberField < 0", "error": [], @@ -5222,12 +5443,40 @@ "warning": [] }, { - "query": "from a_index | eval stringField < 0", + "query": "from a_index | where stringField < 0", "error": [ "Argument of [<] must be [number], found value [stringField] type [string]" ], "warning": [] }, + { + "query": "from a_index | where stringField < stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where numberField < numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateField < dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where booleanField < booleanField", + "error": [ + "Argument of [<] must be [number], found value [booleanField] type [boolean]", + "Argument of [<] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | where ipField < ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | where numberField <= 0", "error": [], @@ -5254,12 +5503,40 @@ "warning": [] }, { - "query": "from a_index | eval stringField <= 0", + "query": "from a_index | where stringField <= 0", "error": [ "Argument of [<=] must be [number], found value [stringField] type [string]" ], "warning": [] }, + { + "query": "from a_index | where stringField <= stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where numberField <= numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateField <= dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where booleanField <= booleanField", + "error": [ + "Argument of [<=] must be [number], found value [booleanField] type [boolean]", + "Argument of [<=] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | where ipField <= ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | where numberField == 0", "error": [], @@ -5286,12 +5563,94 @@ "warning": [] }, { - "query": "from a_index | eval stringField == 0", + "query": "from a_index | where stringField == 0", "error": [ "Argument of [==] must be [number], found value [stringField] type [string]" ], "warning": [] }, + { + "query": "from a_index | where stringField == stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where numberField == numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateField == dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where booleanField == booleanField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where ipField == ipField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where numberField != 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where NOT numberField != 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where (numberField != 0)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where (NOT (numberField != 0))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where 1 != 0", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where stringField != 0", + "error": [ + "Argument of [!=] must be [number], found value [stringField] type [string]" + ], + "warning": [] + }, + { + "query": "from a_index | where stringField != stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where numberField != numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where dateField != dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where booleanField != booleanField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | where ipField != ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | where - numberField > 0", "error": [], @@ -11418,6 +11777,34 @@ ], "warning": [] }, + { + "query": "from a_index | eval stringField > stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval numberField > numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateField > dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval booleanField > booleanField", + "error": [ + "Argument of [>] must be [number], found value [booleanField] type [boolean]", + "Argument of [>] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | eval ipField > ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | eval numberField >= 0", "error": [], @@ -11450,6 +11837,34 @@ ], "warning": [] }, + { + "query": "from a_index | eval stringField >= stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval numberField >= numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateField >= dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval booleanField >= booleanField", + "error": [ + "Argument of [>=] must be [number], found value [booleanField] type [boolean]", + "Argument of [>=] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | eval ipField >= ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | eval numberField < 0", "error": [], @@ -11482,6 +11897,34 @@ ], "warning": [] }, + { + "query": "from a_index | eval stringField < stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval numberField < numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateField < dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval booleanField < booleanField", + "error": [ + "Argument of [<] must be [number], found value [booleanField] type [boolean]", + "Argument of [<] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | eval ipField < ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | eval numberField <= 0", "error": [], @@ -11514,6 +11957,34 @@ ], "warning": [] }, + { + "query": "from a_index | eval stringField <= stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval numberField <= numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateField <= dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval booleanField <= booleanField", + "error": [ + "Argument of [<=] must be [number], found value [booleanField] type [boolean]", + "Argument of [<=] must be [number], found value [booleanField] type [boolean]" + ], + "warning": [] + }, + { + "query": "from a_index | eval ipField <= ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | eval numberField == 0", "error": [], @@ -11546,6 +12017,31 @@ ], "warning": [] }, + { + "query": "from a_index | eval stringField == stringField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval numberField == numberField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval dateField == dateField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval booleanField == booleanField", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval ipField == ipField", + "error": [], + "warning": [] + }, { "query": "from a_index | eval numberField + 1", "error": [], @@ -11561,6 +12057,11 @@ "error": [], "warning": [] }, + { + "query": "from a_index | eval now() + now()", + "error": [], + "warning": [] + }, { "query": "from a_index | eval numberField - 1", "error": [], @@ -11576,6 +12077,11 @@ "error": [], "warning": [] }, + { + "query": "from a_index | eval now() - now()", + "error": [], + "warning": [] + }, { "query": "from a_index | eval numberField * 1", "error": [], @@ -11591,6 +12097,14 @@ "error": [], "warning": [] }, + { + "query": "from a_index | eval now() * now()", + "error": [ + "Argument of [*] must be [number], found value [now()] type [date]", + "Argument of [*] must be [number], found value [now()] type [date]" + ], + "warning": [] + }, { "query": "from a_index | eval numberField / 1", "error": [], @@ -11606,6 +12120,14 @@ "error": [], "warning": [] }, + { + "query": "from a_index | eval now() / now()", + "error": [ + "Argument of [/] must be [number], found value [now()] type [date]", + "Argument of [/] must be [number], found value [now()] type [date]" + ], + "warning": [] + }, { "query": "from a_index | eval numberField % 1", "error": [], @@ -11621,6 +12143,14 @@ "error": [], "warning": [] }, + { + "query": "from a_index | eval now() % now()", + "error": [ + "Argument of [%] must be [number], found value [now()] type [date]", + "Argument of [%] must be [number], found value [now()] type [date]" + ], + "warning": [] + }, { "query": "from a_index | eval 1/0", "error": [], @@ -11900,6 +12430,26 @@ "error": [], "warning": [] }, + { + "query": "from a_index | eval result = case(false, 0, 1), round(result)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval result = case(false, 0, 1) | stats sum(result)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval result = case(false, 0, 1) | stats var0 = sum(result)", + "error": [], + "warning": [] + }, + { + "query": "from a_index | eval round(case(false, 0, 1))", + "error": [], + "warning": [] + }, { "query": "from a_index | eval 1 anno", "error": [ @@ -14836,6 +15386,16 @@ "error": [], "warning": [] }, + { + "query": "from a_index | stats sum(case(false, 0, 1))", + "error": [], + "warning": [] + }, + { + "query": "from a_index | stats var0 = sum( case(false, 0, 1))", + "error": [], + "warning": [] + }, { "query": "from a_index | sort ", "error": [ diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts index 42748a62be92f..49283cdd7f210 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts @@ -656,7 +656,7 @@ describe('validation logic', () => { } } } - for (const op of ['>', '>=', '<', '<=', '==']) { + for (const op of ['>', '>=', '<', '<=', '==', '!=']) { testErrorsAndWarnings(`row var = 5 ${op} 0`, []); testErrorsAndWarnings(`row var = NOT 5 ${op} 0`, []); testErrorsAndWarnings(`row var = (numberField ${op} 0)`, ['Unknown column [numberField]']); @@ -664,10 +664,30 @@ describe('validation logic', () => { testErrorsAndWarnings(`row var = "a" ${op} 0`, [ `Argument of [${op}] must be [number], found value ["a"] type [string]`, ]); + testErrorsAndWarnings(`row var = to_ip("127.0.0.1") ${op} to_ip("127.0.0.1")`, []); + testErrorsAndWarnings(`row var = now() ${op} now()`, []); + testErrorsAndWarnings( + `row var = false ${op} false`, + ['==', '!='].includes(op) + ? [] + : [ + `Argument of [${op}] must be [number], found value [false] type [boolean]`, + `Argument of [${op}] must be [number], found value [false] type [boolean]`, + ] + ); } for (const op of ['+', '-', '*', '/', '%']) { testErrorsAndWarnings(`row var = 1 ${op} 1`, []); testErrorsAndWarnings(`row var = (5 ${op} 1)`, []); + testErrorsAndWarnings( + `row var = now() ${op} now()`, + ['+', '-'].includes(op) + ? [] + : [ + `Argument of [${op}] must be [number], found value [now()] type [date]`, + `Argument of [${op}] must be [number], found value [now()] type [date]`, + ] + ); } for (const op of ['like', 'rlike']) { @@ -1064,15 +1084,26 @@ describe('validation logic', () => { testErrorsAndWarnings(`from a_index | where ${nValue} > 0`, []); testErrorsAndWarnings(`from a_index | where NOT ${nValue} > 0`, []); } - for (const op of ['>', '>=', '<', '<=', '==']) { + for (const op of ['>', '>=', '<', '<=', '==', '!=']) { testErrorsAndWarnings(`from a_index | where numberField ${op} 0`, []); testErrorsAndWarnings(`from a_index | where NOT numberField ${op} 0`, []); testErrorsAndWarnings(`from a_index | where (numberField ${op} 0)`, []); testErrorsAndWarnings(`from a_index | where (NOT (numberField ${op} 0))`, []); testErrorsAndWarnings(`from a_index | where 1 ${op} 0`, []); - testErrorsAndWarnings(`from a_index | eval stringField ${op} 0`, [ + testErrorsAndWarnings(`from a_index | where stringField ${op} 0`, [ `Argument of [${op}] must be [number], found value [stringField] type [string]`, ]); + for (const type of ['string', 'number', 'date', 'boolean', 'ip']) { + testErrorsAndWarnings( + `from a_index | where ${type}Field ${op} ${type}Field`, + type !== 'boolean' || ['==', '!='].includes(op) + ? [] + : [ + `Argument of [${op}] must be [number], found value [${type}Field] type [${type}]`, + `Argument of [${op}] must be [number], found value [${type}Field] type [${type}]`, + ] + ); + } } for (const nesting of NESTED_DEPTHS) { @@ -1643,11 +1674,31 @@ describe('validation logic', () => { testErrorsAndWarnings(`from a_index | eval stringField ${op} 0`, [ `Argument of [${op}] must be [number], found value [stringField] type [string]`, ]); + for (const type of ['string', 'number', 'date', 'boolean', 'ip']) { + testErrorsAndWarnings( + `from a_index | eval ${type}Field ${op} ${type}Field`, + type !== 'boolean' || ['==', '!='].includes(op) + ? [] + : [ + `Argument of [${op}] must be [number], found value [${type}Field] type [${type}]`, + `Argument of [${op}] must be [number], found value [${type}Field] type [${type}]`, + ] + ); + } } for (const op of ['+', '-', '*', '/', '%']) { testErrorsAndWarnings(`from a_index | eval numberField ${op} 1`, []); testErrorsAndWarnings(`from a_index | eval (numberField ${op} 1)`, []); testErrorsAndWarnings(`from a_index | eval 1 ${op} 1`, []); + testErrorsAndWarnings( + `from a_index | eval now() ${op} now()`, + ['+', '-'].includes(op) + ? [] + : [ + `Argument of [${op}] must be [number], found value [now()] type [date]`, + `Argument of [${op}] must be [number], found value [now()] type [date]`, + ] + ); } for (const divideByZeroExpr of ['1/0', 'var = 1/0', '1 + 1/0']) { testErrorsAndWarnings( @@ -1745,6 +1796,17 @@ describe('validation logic', () => { testErrorsAndWarnings(`from a_index | eval mv_sort(["a", "b"], "ASC")`, []); testErrorsAndWarnings(`from a_index | eval mv_sort(["a", "b"], "DESC")`, []); + testErrorsAndWarnings(`from a_index | eval result = case(false, 0, 1), round(result)`, []); + testErrorsAndWarnings( + `from a_index | eval result = case(false, 0, 1) | stats sum(result)`, + [] + ); + testErrorsAndWarnings( + `from a_index | eval result = case(false, 0, 1) | stats var0 = sum(result)`, + [] + ); + testErrorsAndWarnings(`from a_index | eval round(case(false, 0, 1))`, []); + describe('date math', () => { testErrorsAndWarnings('from a_index | eval 1 anno', [ 'EVAL does not support [date_period] in expression [1 anno]', @@ -2251,6 +2313,9 @@ describe('validation logic', () => { `FROM index | STATS AVG(numberField) by round(numberField) + 1 | EVAL \`round(numberField) + 1\` / 2`, [] ); + + testErrorsAndWarnings(`from a_index | stats sum(case(false, 0, 1))`, []); + testErrorsAndWarnings(`from a_index | stats var0 = sum( case(false, 0, 1))`, []); }); describe('sort', () => { From 2384e46ef4ebb28aa71f804953a4b957b6881c6a Mon Sep 17 00:00:00 2001 From: Pablo Machado Date: Tue, 23 Apr 2024 14:29:07 +0200 Subject: [PATCH 067/183] [SecuritySolution] Update asset criticality CSV upload copy (#181390) ## Summary Copy after changes: ![Screenshot 2024-04-23 at 11 17 36](https://github.com/elastic/kibana/assets/1490444/375d26c8-8337-4ee3-856f-98246c60e49a) ![Screenshot 2024-04-23 at 11 17 46](https://github.com/elastic/kibana/assets/1490444/217a2e74-dcf9-473e-9621-e1bcd8f4be68) ![Screenshot 2024-04-23 at 11 17 58](https://github.com/elastic/kibana/assets/1490444/58203f1a-59c3-4e25-bf85-12019dbf3754) ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [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 --- .../components/file_picker_step.tsx | 21 ++++++++++--------- .../components/result_step.tsx | 2 +- .../components/validation_step.test.tsx | 2 +- .../components/validation_step.tsx | 2 +- .../pages/asset_criticality_upload_page.tsx | 6 +++--- .../asset_criticality_upload_page.cy.ts | 5 ++++- 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx index 094b43595aa3b..efe70c77f4c8f 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx @@ -6,6 +6,7 @@ */ import { + EuiCode, EuiCodeBlock, EuiFilePicker, EuiPanel, @@ -52,7 +53,7 @@ export const AssetCriticalityFilePickerStep: React.FC

@@ -62,7 +63,7 @@ export const AssetCriticalityFilePickerStep: React.FC
  • @@ -93,7 +94,7 @@ export const AssetCriticalityFilePickerStep: React.FC
  • {'host'}, @@ -104,21 +105,21 @@ export const AssetCriticalityFilePickerStep: React.FC { {'Host.name'}, - userName: {'User.name'}, + hostName: {'host.name'}, + userName: {'user.name'}, }} /> }
  • {ValidCriticalityLevels.join(', ')}, + labels: {ValidCriticalityLevels.join(', ')}, }} />
  • diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/result_step.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/result_step.tsx index c620e020cd5d1..30834f2fb8c32 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/result_step.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/result_step.tsx @@ -67,7 +67,7 @@ export const AssetCriticalityResultStep: React.FC<{ iconType="checkInCircleFilled" > diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.test.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.test.tsx index c20a0b6e0aaea..ca1dcfb6e7f42 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.test.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.test.tsx @@ -54,7 +54,7 @@ describe('AssetCriticalityValidationStep', () => { wrapper: TestProviders, }); - expect(container).toHaveTextContent('10 asset criticalities will be assigned'); + expect(container).toHaveTextContent('10 asset criticality levels will be assigned'); expect(container).toHaveTextContent("5 lines are invalid and won't be assigned"); expect(container).toHaveTextContent('test.csv preview'); }); diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.tsx index 0c8150d85a369..538e19f4d5fd6 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/validation_step.tsx @@ -72,7 +72,7 @@ export const AssetCriticalityValidationStep: React.FC {validLines.count}, diff --git a/x-pack/plugins/security_solution/public/entity_analytics/pages/asset_criticality_upload_page.tsx b/x-pack/plugins/security_solution/public/entity_analytics/pages/asset_criticality_upload_page.tsx index 67fd97d2e8026..eced6e59031ad 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/pages/asset_criticality_upload_page.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/pages/asset_criticality_upload_page.tsx @@ -121,7 +121,7 @@ export const AssetCriticalityUploadPage = () => {

    @@ -129,7 +129,7 @@ export const AssetCriticalityUploadPage = () => { @@ -152,7 +152,7 @@ export const AssetCriticalityUploadPage = () => { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/asset_criticality_upload_page.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/asset_criticality_upload_page.cy.ts index 9a31f3f06edad..097e2541f57f9 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/asset_criticality_upload_page.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/asset_criticality_upload_page.cy.ts @@ -38,7 +38,10 @@ describe( uploadAssetCriticalityFile(); cy.get(FILE_PICKER).should('not.visible'); - cy.get(VALID_LINES_MESSAGE).should('have.text', '4 asset criticalities will be assigned'); + cy.get(VALID_LINES_MESSAGE).should( + 'have.text', + '4 asset criticality levels will be assigned' + ); cy.get(INVALID_LINES_MESSAGE).should('have.text', "1 line is invalid and won't be assigned"); clickAssignButton(); From 26b8c71730de6686fe4fe5de5f60ab5577b79902 Mon Sep 17 00:00:00 2001 From: Rudolf Meijering Date: Tue, 23 Apr 2024 14:33:35 +0200 Subject: [PATCH 068/183] Enable heap snapshots for all our distributables (#181363) ## Summary Fixes https://github.com/elastic/kibana/issues/167955 To test: ``` # Build Kibana node scripts/build --skip-os-packages --skip-cdn-assets --skip-canvas-shareable-runtime --skip-docker-ubi --skip-docker-ubuntu --skip-docker-fips --skip-node-download # Run Kibana cd build/default/kibana-8.15.0-SNAPSHOT-darwin-aarch64 ./bin/kibana # In a different terminal find the pid and send the signal ps -e | grep bin/node kill -s SIGUSR2 PID # use pid from ^ # verify heap snapshot is created ls ./data # expect to see a file like Heap.20240423.132053.37884.0.001.heapsnapshot ``` ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- config/node.options | 4 ++++ .../os_packages/docker_generator/templates/base/Dockerfile | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config/node.options b/config/node.options index abcb40a5c19d4..2bc49f5db1f4a 100644 --- a/config/node.options +++ b/config/node.options @@ -13,3 +13,7 @@ ## enable OpenSSL 3 legacy provider --openssl-legacy-provider + +# Enable capturing heap snapshots. See https://nodejs.org/api/cli.html#--heapsnapshot-signalsignal +--heapsnapshot-signal=SIGUSR2 +--diagnostic-dir=./data \ No newline at end of file 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 1869086b51ab7..2284e504229a8 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 @@ -157,9 +157,6 @@ COPY --chown=1000:0 config/serverless.yml /usr/share/kibana/config/serverless.ym COPY --chown=1000:0 config/serverless.es.yml /usr/share/kibana/config/serverless.es.yml COPY --chown=1000:0 config/serverless.oblt.yml /usr/share/kibana/config/serverless.oblt.yml COPY --chown=1000:0 config/serverless.security.yml /usr/share/kibana/config/serverless.security.yml -# Supportability enhancement: enable capturing heap snapshots. See https://nodejs.org/api/cli.html#--heapsnapshot-signalsignal -RUN /usr/bin/echo -e '\n--heapsnapshot-signal=SIGUSR2' >> config/node.options -RUN /usr/bin/echo '--diagnostic-dir=./data' >> config/node.options ENV PROFILER_SIGNAL=SIGUSR1 {{/serverless}} {{^opensslLegacyProvider}} From 1b53a8d0505c9061f51f824d471507d069d9206c Mon Sep 17 00:00:00 2001 From: Pablo Machado Date: Tue, 23 Apr 2024 14:55:10 +0200 Subject: [PATCH 069/183] [SecuritySolution] Add asset criticality page to serverless (#180817) ## Summary Add asset criticality page to serverless. ![Captura de pantalla 2024-04-16 a les 10 15 33](https://github.com/elastic/kibana/assets/1490444/abbb5307-3b0e-4bc9-b098-95a573dd0b58) --- .../app/solution_navigation/categories.ts | 5 +++- .../links/sections/settings_links.ts | 23 ++++++++++--------- .../public/navigation/management_cards.ts | 1 + .../public/navigation/management_cards.ts | 1 + 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/x-pack/plugins/security_solution/public/app/solution_navigation/categories.ts b/x-pack/plugins/security_solution/public/app/solution_navigation/categories.ts index 1cd7124891e53..01e2f54375c99 100644 --- a/x-pack/plugins/security_solution/public/app/solution_navigation/categories.ts +++ b/x-pack/plugins/security_solution/public/app/solution_navigation/categories.ts @@ -47,7 +47,10 @@ export const CATEGORIES: Array> = [ // --- Hidden links that need to be configured in the navigationTree for breadcrumbs --- { type: LinkCategoryType.separator, - linkIds: [SecurityPageName.entityAnalyticsManagement], // Linked from the management cards landing. + linkIds: [ + SecurityPageName.entityAnalyticsManagement, + SecurityPageName.entityAnalyticsAssetClassification, + ], // Linked from the management cards landing. }, ]; diff --git a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/settings_links.ts b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/settings_links.ts index f66af2ee30d13..ed08596fe6c79 100644 --- a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/settings_links.ts +++ b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/settings_links.ts @@ -10,18 +10,19 @@ import type { LinkItem } from '../../../../common/links/types'; import type { SolutionNavLink } from '../../../../common/links'; import * as i18n from './settings_translations'; +const ENTITY_ANALYTICS_LINKS = [ + SecurityPageName.entityAnalyticsManagement, + SecurityPageName.entityAnalyticsAssetClassification, +]; + export const createSettingsLinksFromManage = (manageLink: LinkItem): LinkItem[] => { - const entityAnalyticsLink = manageLink.links?.find( - ({ id }) => id === SecurityPageName.entityAnalyticsManagement - ); - return entityAnalyticsLink - ? [ - { - ...entityAnalyticsLink, - sideNavDisabled: true, // Link disabled from the side nav but configured in the navigationTree (breadcrumbs). It is displayed in the management cards landing. - }, - ] - : []; + const entityAnalyticsLinks = + manageLink.links?.filter(({ id }) => ENTITY_ANALYTICS_LINKS.includes(id)) ?? []; + + return entityAnalyticsLinks.map((link) => ({ + ...link, + sideNavDisabled: true, // Link disabled from the side nav but configured in the navigationTree (breadcrumbs). It is displayed in the management cards landing. + })); }; export const settingsNavLinks: SolutionNavLink[] = [ diff --git a/x-pack/plugins/security_solution_ess/public/navigation/management_cards.ts b/x-pack/plugins/security_solution_ess/public/navigation/management_cards.ts index 07900f824fa7f..c2b302956384a 100644 --- a/x-pack/plugins/security_solution_ess/public/navigation/management_cards.ts +++ b/x-pack/plugins/security_solution_ess/public/navigation/management_cards.ts @@ -17,6 +17,7 @@ const SecurityManagementCards = new Map { const { securitySolution, management, application, navigation } = services; diff --git a/x-pack/plugins/security_solution_serverless/public/navigation/management_cards.ts b/x-pack/plugins/security_solution_serverless/public/navigation/management_cards.ts index 2199b4411e4d5..6306933d6a14b 100644 --- a/x-pack/plugins/security_solution_serverless/public/navigation/management_cards.ts +++ b/x-pack/plugins/security_solution_serverless/public/navigation/management_cards.ts @@ -16,6 +16,7 @@ const SecurityManagementCards = new Map { From 4c09bc938ce1654d0acf40d9a1f881a04ac8b709 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Tue, 23 Apr 2024 14:55:30 +0200 Subject: [PATCH 070/183] [UnifiedHistogram] Improve breakdown chart when values for the field are missing (#181013) ## Summary This PR changes Lens configuration to visualize data even if values for the "Breakdown by" field are not provided. Before: Screenshot 2024-04-17 at 11 34 41 After: Screenshot 2024-04-17 at 11 35 13 --- .../public/services/lens_vis_service.attributes.test.ts | 2 +- .../unified_histogram/public/services/lens_vis_service.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts b/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts index 3703439b32fca..2e4f5a873aeb7 100644 --- a/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts +++ b/src/plugins/unified_histogram/public/services/lens_vis_service.attributes.test.ts @@ -240,7 +240,7 @@ describe('LensVisService attributes', () => { "label": "Top 3 values of extension", "operationType": "terms", "params": Object { - "missingBucket": false, + "missingBucket": true, "orderBy": Object { "columnId": "count_column", "type": "column", diff --git a/src/plugins/unified_histogram/public/services/lens_vis_service.ts b/src/plugins/unified_histogram/public/services/lens_vis_service.ts index a78d3859da441..a7f75f91d0430 100644 --- a/src/plugins/unified_histogram/public/services/lens_vis_service.ts +++ b/src/plugins/unified_histogram/public/services/lens_vis_service.ts @@ -378,7 +378,7 @@ export class LensVisService { }, orderDirection: 'desc', otherBucket: true, - missingBucket: false, + missingBucket: true, parentFormat: { id: 'terms', }, From 0a4081e1d81eb980998585144c85ac8fbd078f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?= Date: Tue, 23 Apr 2024 15:49:25 +0200 Subject: [PATCH 071/183] [Search] Adds telemetry warning rules and fixes a bunch of telemetry issues (#181350) ## Summary Enables telemetry warning eslint rule. Fixes a bunch of missing telemetry strings. ### Checklist Delete any items that are not applicable to this PR. - [ ] [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 --- .eslintrc.js | 1 + .../connector_detail/attach_index_box.tsx | 4 +++ .../connector_configuration.tsx | 30 ++++++++++++++-- .../connector_detail/connector_stats.tsx | 4 ++- .../native_connector_configuration.tsx | 7 +++- .../components/connector_detail/overview.tsx | 14 ++++++-- .../components/connectors/connectors.tsx | 9 ++++- .../connectors/crawler_empty_state.tsx | 2 ++ .../connectors/delete_connector_modal.tsx | 34 +++++++++---------- .../select_connector/connector_checkable.tsx | 16 +++++++-- .../select_connector/native_popover.tsx | 2 ++ .../select_connector/select_connector.tsx | 4 +++ .../settings/default_settings_flyout.tsx | 14 ++++++-- 13 files changed, 110 insertions(+), 31 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 5c44dcc5ad40a..062626507ab8f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1524,6 +1524,7 @@ module.exports = { ], '@kbn/i18n/strings_should_be_translated_with_i18n': 'warn', '@kbn/i18n/strings_should_be_translated_with_formatted_message': 'warn', + '@kbn/telemetry/event_generating_elements_should_be_instrumented': 'warn', }, }, /** diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/attach_index_box.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/attach_index_box.tsx index 5acc069144df1..8b5bb17020ac0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/attach_index_box.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/attach_index_box.tsx @@ -253,6 +253,8 @@ export const AttachIndexBox: React.FC = ({ connector }) => onSave()} disabled={!selectedIndex || selectedIndex.label === connector.index_name} isLoading={isSaveLoading} @@ -286,6 +288,8 @@ export const AttachIndexBox: React.FC = ({ connector }) => { values={{ exampleLink: ( { values={{ link: ( { fetchConnector({ connectorId: connector.id })} @@ -272,7 +277,12 @@ export const ConnectorConfiguration: React.FC = () => { defaultMessage="{advancedSyncRulesDocs} can override some configuration fields." values={{ advancedSyncRulesDocs: ( - + {i18n.translate( 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedSyncRulesDocs', { defaultMessage: 'Advanced Sync Rules' } @@ -417,7 +427,12 @@ export const ConnectorConfiguration: React.FC = () => { - + {i18n.translate( 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.support.viewDocumentation.label', { @@ -438,6 +453,8 @@ export const ConnectorConfiguration: React.FC = () => { @@ -451,7 +468,12 @@ export const ConnectorConfiguration: React.FC = () => { {docsUrl && ( - + {i18n.translate( 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.support.dockerDeploy.label', { @@ -463,6 +485,8 @@ export const ConnectorConfiguration: React.FC = () => { )} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx index 09db1326768a0..ec2edf2df0450 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_stats.tsx @@ -168,7 +168,9 @@ export const ConnectorStats: React.FC = ({ connector, index { } )} - + {i18n.translate( 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.securityReminder.securityLinkLabel', { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx index f8a9b8f12bcb0..a97f7b8c862fd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/overview.tsx @@ -148,7 +148,12 @@ export const ConnectorDetailOverview: React.FC = () => { defaultMessage="Convert it to a {link}, to be self-managed on your own infrastructure. Native connectors are available only in your Elastic Cloud deployment." values={{ link: ( - + {i18n.translate( 'xpack.enterpriseSearch.content.connectors.overview.nativeCloudCallout.connectorClient', { defaultMessage: 'connector client' } @@ -160,7 +165,12 @@ export const ConnectorDetailOverview: React.FC = () => {

    - showModal()}> + showModal()} + > {i18n.translate( 'xpack.enterpriseSearch.content.indices.connectors.overview.convertConnector.buttonLabel', { defaultMessage: 'Convert connector' } diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/connectors.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/connectors.tsx index 1356a5ff98799..eab42df85cc2f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/connectors.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/connectors.tsx @@ -108,6 +108,8 @@ export const Connectors: React.FC = ({ isCrawler }) => { = ({ isCrawler }) => { closePopover={() => setShowMoreOptionsPopover(false)} button={ = ({ isCrawler }) => { ] : [ = ({ isCrawler }) => { ? [ setShowDefaultSettingsFlyout(true)} > {i18n.translate( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx index dd3aed042928d..8e5b91b94e39b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx @@ -41,6 +41,8 @@ export const CrawlerEmptyState: React.FC = () => { } actions={ = ({ isCr

    {isCrawler && ( - <> - - - {connectorName} - - ), - }} - /> - - + + + {connectorName} + + ), + }} + /> + )} {!isCrawler && ( @@ -199,13 +197,13 @@ export const DeleteConnectorModal: React.FC = ({ isCr } > setInputConnectorName(e.target.value)} value={inputConnectorName} /> - ) : ( - <> - ); + ) : null; }; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/connector_checkable.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/connector_checkable.tsx index e765138a848d5..9a1a8727245c7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/connector_checkable.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/connector_checkable.tsx @@ -119,6 +119,8 @@ export const ConnectorCheckable: React.FC = ({ = ({ = ({ = ({ { defaultMessage: 'Setup a Native Connector' } )} , - , - + , { @@ -263,7 +268,12 @@ export const ConnectorCheckable: React.FC = ({ {documentationUrl && ( - + {i18n.translate( 'xpack.enterpriseSearch.content.indices.selectConnector.connectorCheckable.documentationLinkLabel', { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/native_popover.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/native_popover.tsx index 641e2b655adfa..226d4a96c6978 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/native_popover.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/select_connector/native_popover.tsx @@ -73,6 +73,8 @@ export const NativePopover: React.FC = ({ { { />

    = ({ cl defaultMessage="These settings apply to all new Elasticsearch indices created by Search ingestion mechanisms. For API ingest-based indices, remember to include the pipeline when you ingest documents. These features are powered by {link}" values={{ link: ( - + {i18n.translate( 'xpack.enterpriseSearch.defaultSettingsFlyout.body.description.ingestPipelinesLink.link', { @@ -154,7 +159,12 @@ export const DefaultSettingsFlyout: React.FC = ({ cl defaultMessage: 'ML Inference', })} link={ - + {i18n.translate('xpack.enterpriseSearch.content.settings.mlInference.link', { defaultMessage: 'Learn more about document enrichment with ML', })} From 46cb23a80deb106f29a5823b492ea75d94d6b8e8 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Tue, 23 Apr 2024 08:07:33 -0600 Subject: [PATCH 072/183] Update SearchReactEmbeddable example to use sessionId and abortSignal (#181249) Fixes https://github.com/elastic/kibana/issues/181199 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../public/react_embeddables/search/get_count.ts | 6 +++++- .../search/search_react_embeddable.tsx | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/examples/embeddable_examples/public/react_embeddables/search/get_count.ts b/examples/embeddable_examples/public/react_embeddables/search/get_count.ts index d4cdb2e70cb33..fdb1269097c00 100644 --- a/examples/embeddable_examples/public/react_embeddables/search/get_count.ts +++ b/examples/embeddable_examples/public/react_embeddables/search/get_count.ts @@ -16,7 +16,9 @@ export async function getCount( dataService: DataPublicPluginStart, filters: Filter[], query: Query | AggregateQuery | undefined, - timeRange: TimeRange | undefined + timeRange: TimeRange | undefined, + abortSignal: AbortSignal, + sessionId?: string ) { const searchSource = await dataService.search.searchSource.create(); searchSource.setField('index', dataView); @@ -38,7 +40,9 @@ export async function getCount( const { rawResponse: resp } = await lastValueFrom( searchSource.fetch$({ + abortSignal, legacyHitsTotal: false, + sessionId, }) ); // eslint-disable-next-line no-console diff --git a/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx b/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx index 6d5aff1dcb490..3f1918beda531 100644 --- a/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx +++ b/examples/embeddable_examples/public/react_embeddables/search/search_react_embeddable.tsx @@ -15,7 +15,7 @@ import { useBatchedPublishingSubjects, } from '@kbn/presentation-publishing'; import React, { useEffect } from 'react'; -import { BehaviorSubject, switchMap } from 'rxjs'; +import { BehaviorSubject, switchMap, tap } from 'rxjs'; import { SEARCH_EMBEDDABLE_ID } from './constants'; import { getCount } from './get_count'; import { Api, Services, State } from './types'; @@ -55,8 +55,14 @@ export const getSearchEmbeddableFactory = (services: Services) => { const error$ = new BehaviorSubject(undefined); const count$ = new BehaviorSubject(0); + let prevRequestAbortController: AbortController | undefined; const fetchSubscription = fetch$(api) .pipe( + tap(() => { + if (prevRequestAbortController) { + prevRequestAbortController.abort(); + } + }), switchMap(async (fetchContext) => { error$.next(undefined); if (!defaultDataView) { @@ -65,6 +71,8 @@ export const getSearchEmbeddableFactory = (services: Services) => { try { dataLoading$.next(true); + const abortController = new AbortController(); + prevRequestAbortController = abortController; const count = await getCount( defaultDataView, services.data, @@ -79,11 +87,13 @@ export const getSearchEmbeddableFactory = (services: Services) => { to: new Date(fetchContext.timeslice[1]).toISOString(), mode: 'absolute' as 'absolute', } - : fetchContext.timeRange + : fetchContext.timeRange, + abortController.signal, + fetchContext.searchSessionId ); return { count }; } catch (error) { - return { error }; + return error.name === 'AbortError' ? undefined : { error }; } }) ) From d6e3bd1693e78968ce69226317458ae7bce77fc9 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Tue, 23 Apr 2024 16:10:05 +0200 Subject: [PATCH 073/183] [Ent Search] Connectors tooltip copyediting (#181308) Following up on https://github.com/elastic/kibana/pull/180728/files Part of https://github.com/elastic/connectors/issues/2316 --------- Co-authored-by: Sean Story Co-authored-by: Sean Story --- .../sync_jobs/__snapshots__/documents_panel.test.tsx.snap | 6 +++--- .../components/sync_jobs/documents_panel.tsx | 6 +++--- .../components/sync_jobs/sync_jobs_table.tsx | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/kbn-search-connectors/components/sync_jobs/__snapshots__/documents_panel.test.tsx.snap b/packages/kbn-search-connectors/components/sync_jobs/__snapshots__/documents_panel.test.tsx.snap index 66caa5b55f567..06d3ba30eff83 100644 --- a/packages/kbn-search-connectors/components/sync_jobs/__snapshots__/documents_panel.test.tsx.snap +++ b/packages/kbn-search-connectors/components/sync_jobs/__snapshots__/documents_panel.test.tsx.snap @@ -12,7 +12,7 @@ exports[`DocumentsPanel renders 1`] = ` "name": = (sync content={ index }} /> } @@ -51,7 +51,7 @@ export const SyncJobDocumentsPanel: React.FC = (sync content={ delete }} /> } @@ -72,7 +72,7 @@ export const SyncJobDocumentsPanel: React.FC = (sync content={ index }} /> } diff --git a/packages/kbn-search-connectors/components/sync_jobs/sync_jobs_table.tsx b/packages/kbn-search-connectors/components/sync_jobs/sync_jobs_table.tsx index 87f3559c3fab6..d526bc2bc0afc 100644 --- a/packages/kbn-search-connectors/components/sync_jobs/sync_jobs_table.tsx +++ b/packages/kbn-search-connectors/components/sync_jobs/sync_jobs_table.tsx @@ -64,7 +64,7 @@ export const SyncJobsTable: React.FC = ({ content={ completed_at }} /> } @@ -88,7 +88,7 @@ export const SyncJobsTable: React.FC = ({ content={ completed_at, started_at: started_at, @@ -116,7 +116,7 @@ export const SyncJobsTable: React.FC = ({ content={ index }} /> } @@ -144,7 +144,7 @@ export const SyncJobsTable: React.FC = ({ content={ delete }} /> } From bd1666705653e941bfdc4bf7ec7d048d81ddf810 Mon Sep 17 00:00:00 2001 From: Vadim Kibana <82822460+vadimkibana@users.noreply.github.com> Date: Tue, 23 Apr 2024 16:35:04 +0200 Subject: [PATCH 074/183] Connection Details Flyout (#180912) ## Summary Implements the new *Connection Details* flyout, which allows to copy ES connection details and provides a simplified interface to create an API key. ![connection-details](https://github.com/elastic/kibana/assets/82822460/2223db63-748c-4620-9686-1b79c40037a7) ![image](https://github.com/elastic/kibana/assets/82822460/6c3f9661-12bf-4868-b432-483e88dbaab5) ![image](https://github.com/elastic/kibana/assets/82822460/50016456-c880-4738-af24-cb7bebafd01a) ![image](https://github.com/elastic/kibana/assets/82822460/d92f20a5-75bf-4563-abc9-afa5c3256bbd) ### Old UIs Old connection details modal: ![image](https://github.com/elastic/kibana/assets/82822460/661a9988-6c3b-493f-beca-96e7d2457ad4) Could be open from help menu: ![image](https://github.com/elastic/kibana/assets/82822460/717bac4c-b041-4163-b4b9-1b7e5ef0a791) Or, could be open from a setup guide card: ![image](https://github.com/elastic/kibana/assets/82822460/c1d5a657-183f-4af6-90c3-c1d393379785) ## How to test Add these Cloud settings to your `config/kibana.dev.yml` as a mock data: ``` elasticsearch.hosts: ["http://localhost:9200"] xpack.cloud.id: my-cluster-id:dXMtZWFzdC0xLmF3cy5zdGFnaW5nLmZvdW5kaXQubm8kZjY3ZDZiZjFhM2NmNDA4ODhlODg2M2Y2Y2IyY2RjNGMkOWViYzEzYjRkOTU0NDI2NDljMzcwZTNlZjMyZWYzOGI= ``` To make Kibana think your local user is a "cloud user", hard-code `elastic_cloud_user` to `true`: image ### Checklist Delete any items that are not applicable to this PR. - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [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 - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [x] 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) ## Release note The new *Connection details* overlay features a cleaner UI for Elasticsearch endpoint URL and Cloud ID token retrieval. As well as the new *"API key"* tab, which is a simplified interface for creating an API key with all the default settings, except the expiration time is set to 90 days. If user wants a more granular API keys, there is a link which navigates to the right section in Stack Management. ![connection-details](https://github.com/elastic/kibana/assets/82822460/2223db63-748c-4620-9686-1b79c40037a7) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- packages/cloud/.storybook/main.js | 14 +++ .../copy_input/copy_input.stories.tsx | 23 ++++ .../components/copy_input/copy_input.tsx | 72 ++++++++++++ .../components/copy_input/index.ts | 9 ++ .../fancy_select/fancy_select.stories.tsx | 33 ++++++ .../components/fancy_select/fancy_select.tsx | 51 ++++++++ .../components/fancy_select/index.ts | 9 ++ .../components/fancy_select/types.ts | 14 +++ .../components/spa_no_router_link/index.ts | 9 ++ .../spa_no_router_link/spa_no_router_link.tsx | 49 ++++++++ .../connection_details.stories.tsx | 23 ++++ .../connection_details/connection_details.tsx | 67 +++++++++++ ...nection_details_flyout_content.stories.tsx | 50 ++++++++ .../connection_details_flyout_content.tsx | 64 ++++++++++ .../cloud/connection_details/context/index.ts | 10 ++ .../connection_details/context/options.tsx | 37 ++++++ .../connection_details/context/service.tsx | 22 ++++ .../hooks/use_async_memo.ts | 32 +++++ .../hooks/use_behavior_subject.ts | 14 +++ packages/cloud/connection_details/index.ts | 13 +++ .../cloud/connection_details/kibana/global.ts | 44 +++++++ .../cloud/connection_details/kibana/index.ts | 22 ++++ .../kibana_connection_details_provider.tsx | 106 +++++++++++++++++ ...bana_wired_connection_details_provider.tsx | 29 +++++ .../kibana/open_connection_details.tsx | 42 +++++++ .../kibana/open_wired_connection_details.tsx | 25 ++++ packages/cloud/connection_details/service.ts | 86 ++++++++++++++ packages/cloud/connection_details/stories.tsx | 76 ++++++++++++ .../api_keys_tab/api_keys_tab.stories.tsx | 23 ++++ .../tabs/api_keys_tab/api_keys_tab.tsx | 27 +++++ .../components/manage_keys_link.tsx | 32 +++++ .../tabs/api_keys_tab/index.ts | 9 ++ .../configuration_form/configuration_form.tsx | 40 +++++++ .../configuration_form_controlled.tsx | 110 ++++++++++++++++++ .../views/configuration_form/index.tsx | 9 ++ .../views/missing_permissions_panel.tsx | 31 +++++ .../views/success_form/format_select.tsx | 59 ++++++++++ .../api_keys_tab/views/success_form/index.tsx | 9 ++ .../views/success_form/success_form.tsx | 28 +++++ .../success_form_controlled.stories.tsx | 35 ++++++ .../success_form/success_form_controlled.tsx | 74 ++++++++++++ .../api_keys_tab/views/success_form/types.tsx | 14 +++ .../endpoints_tab/endpoint_tab.stories.tsx | 23 ++++ .../tabs/endpoints_tab/endpoints_tab.tsx | 26 +++++ .../tabs/endpoints_tab/index.ts | 9 ++ .../tabs/endpoints_tab/rows/cloud_id_row.tsx | 56 +++++++++ .../endpoints_tab/rows/endpoints_url_row.tsx | 33 ++++++ packages/cloud/connection_details/types.ts | 33 ++++++ packages/cloud/tsconfig.json | 4 + .../landing_page/guide/guide_card.tsx | 43 +------ .../landing_page/guide/guide_cards.tsx | 13 --- packages/kbn-guided-onboarding/tsconfig.json | 7 -- src/dev/storybook/aliases.ts | 1 + .../guided_onboarding/getting_started.tsx | 20 +--- .../public/application/kibana_services.ts | 8 +- src/plugins/home/public/plugin.ts | 16 ++- .../maybe_add_cloud_links/help_menu_links.tsx | 29 +---- .../maybe_add_cloud_links.ts | 5 +- .../cloud_links/public/plugin.tsx | 12 +- .../functional_cloud/tests/cloud_links.ts | 68 +++++++++-- 60 files changed, 1823 insertions(+), 128 deletions(-) create mode 100644 packages/cloud/.storybook/main.js create mode 100644 packages/cloud/connection_details/components/copy_input/copy_input.stories.tsx create mode 100644 packages/cloud/connection_details/components/copy_input/copy_input.tsx create mode 100644 packages/cloud/connection_details/components/copy_input/index.ts create mode 100644 packages/cloud/connection_details/components/fancy_select/fancy_select.stories.tsx create mode 100644 packages/cloud/connection_details/components/fancy_select/fancy_select.tsx create mode 100644 packages/cloud/connection_details/components/fancy_select/index.ts create mode 100644 packages/cloud/connection_details/components/fancy_select/types.ts create mode 100644 packages/cloud/connection_details/components/spa_no_router_link/index.ts create mode 100644 packages/cloud/connection_details/components/spa_no_router_link/spa_no_router_link.tsx create mode 100644 packages/cloud/connection_details/connection_details.stories.tsx create mode 100644 packages/cloud/connection_details/connection_details.tsx create mode 100644 packages/cloud/connection_details/connection_details_flyout_content.stories.tsx create mode 100644 packages/cloud/connection_details/connection_details_flyout_content.tsx create mode 100644 packages/cloud/connection_details/context/index.ts create mode 100644 packages/cloud/connection_details/context/options.tsx create mode 100644 packages/cloud/connection_details/context/service.tsx create mode 100644 packages/cloud/connection_details/hooks/use_async_memo.ts create mode 100644 packages/cloud/connection_details/hooks/use_behavior_subject.ts create mode 100644 packages/cloud/connection_details/index.ts create mode 100644 packages/cloud/connection_details/kibana/global.ts create mode 100644 packages/cloud/connection_details/kibana/index.ts create mode 100644 packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx create mode 100644 packages/cloud/connection_details/kibana/kibana_wired_connection_details_provider.tsx create mode 100644 packages/cloud/connection_details/kibana/open_connection_details.tsx create mode 100644 packages/cloud/connection_details/kibana/open_wired_connection_details.tsx create mode 100644 packages/cloud/connection_details/service.ts create mode 100644 packages/cloud/connection_details/stories.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.stories.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/components/manage_keys_link.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/index.ts create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form_controlled.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/index.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/missing_permissions_panel.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/format_select.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/index.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.stories.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.tsx create mode 100644 packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/types.tsx create mode 100644 packages/cloud/connection_details/tabs/endpoints_tab/endpoint_tab.stories.tsx create mode 100644 packages/cloud/connection_details/tabs/endpoints_tab/endpoints_tab.tsx create mode 100644 packages/cloud/connection_details/tabs/endpoints_tab/index.ts create mode 100644 packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row.tsx create mode 100644 packages/cloud/connection_details/tabs/endpoints_tab/rows/endpoints_url_row.tsx create mode 100644 packages/cloud/connection_details/types.ts diff --git a/packages/cloud/.storybook/main.js b/packages/cloud/.storybook/main.js new file mode 100644 index 0000000000000..b7011e2dd8cca --- /dev/null +++ b/packages/cloud/.storybook/main.js @@ -0,0 +1,14 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { defaultConfig } from '@kbn/storybook'; + +module.exports = { + ...defaultConfig, + stories: ['../**/*.stories.+(tsx|mdx)'], +}; diff --git a/packages/cloud/connection_details/components/copy_input/copy_input.stories.tsx b/packages/cloud/connection_details/components/copy_input/copy_input.stories.tsx new file mode 100644 index 0000000000000..49dd62ce94366 --- /dev/null +++ b/packages/cloud/connection_details/components/copy_input/copy_input.stories.tsx @@ -0,0 +1,23 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { StoriesProvider } from '../../stories'; +import { CopyInput } from './copy_input'; + +export default { + title: 'Connection Details/Components/', +}; + +export const Default = () => { + return ( + + + + ); +}; diff --git a/packages/cloud/connection_details/components/copy_input/copy_input.tsx b/packages/cloud/connection_details/components/copy_input/copy_input.tsx new file mode 100644 index 0000000000000..6111208b06148 --- /dev/null +++ b/packages/cloud/connection_details/components/copy_input/copy_input.tsx @@ -0,0 +1,72 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiCopy, EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiPanel, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +export interface CopyInputProps { + value: string; +} + +export const CopyInput: React.FC = ({ value }) => { + const textRef = React.useRef(null); + + return ( + + + + + { + const span = textRef.current; + if (!span) return; + if (window.getSelection && document.createRange) { + const selection = window.getSelection(); + if (!selection) return; + event.preventDefault(); + const range = document.createRange(); + range.selectNodeContents(span); + selection.removeAllRanges(); + selection.addRange(range); + } + }} + data-test-subj="copyText" + > + {value} + + + + + + {(copy) => ( + + )} + + + + + ); +}; diff --git a/packages/cloud/connection_details/components/copy_input/index.ts b/packages/cloud/connection_details/components/copy_input/index.ts new file mode 100644 index 0000000000000..9dc3294964e27 --- /dev/null +++ b/packages/cloud/connection_details/components/copy_input/index.ts @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './copy_input'; diff --git a/packages/cloud/connection_details/components/fancy_select/fancy_select.stories.tsx b/packages/cloud/connection_details/components/fancy_select/fancy_select.stories.tsx new file mode 100644 index 0000000000000..a18e4f7814de6 --- /dev/null +++ b/packages/cloud/connection_details/components/fancy_select/fancy_select.stories.tsx @@ -0,0 +1,33 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { StoriesProvider } from '../../stories'; +import { FancySelect } from './fancy_select'; + +export default { + title: 'Connection Details/Components/', +}; + +export const Default = () => { + const [value, setValue] = React.useState('1'); + + return ( + + setValue(newValue)} + /> + + ); +}; diff --git a/packages/cloud/connection_details/components/fancy_select/fancy_select.tsx b/packages/cloud/connection_details/components/fancy_select/fancy_select.tsx new file mode 100644 index 0000000000000..303f4eec1bed5 --- /dev/null +++ b/packages/cloud/connection_details/components/fancy_select/fancy_select.tsx @@ -0,0 +1,51 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiSuperSelect, EuiText, EuiFlexGroup, EuiFlexItem, EuiIcon } from '@elastic/eui'; +import type { FancySelectOption } from './types'; + +export interface FancySelectProps { + value: string; + options: FancySelectOption[]; + onChange: (value: string) => void; +} + +export const FancySelect: React.FC = ({ value, options, onChange }) => { + return ( + ({ + value: option.id, + icon: option.icon, + layoutAlign: 'center', + inputDisplay: ( + + + + + + + {option.title} + + + + ), + dropdownDisplay: ( + + {option.title} + +

    {option.description}

    +
    +
    + ), + }))} + onChange={onChange} + /> + ); +}; diff --git a/packages/cloud/connection_details/components/fancy_select/index.ts b/packages/cloud/connection_details/components/fancy_select/index.ts new file mode 100644 index 0000000000000..5b76ace802b4d --- /dev/null +++ b/packages/cloud/connection_details/components/fancy_select/index.ts @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './fancy_select'; diff --git a/packages/cloud/connection_details/components/fancy_select/types.ts b/packages/cloud/connection_details/components/fancy_select/types.ts new file mode 100644 index 0000000000000..6927dc6618604 --- /dev/null +++ b/packages/cloud/connection_details/components/fancy_select/types.ts @@ -0,0 +1,14 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export interface FancySelectOption { + id: string; + title: string; + description: string; + icon: string; +} diff --git a/packages/cloud/connection_details/components/spa_no_router_link/index.ts b/packages/cloud/connection_details/components/spa_no_router_link/index.ts new file mode 100644 index 0000000000000..df700c03225a7 --- /dev/null +++ b/packages/cloud/connection_details/components/spa_no_router_link/index.ts @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './spa_no_router_link'; diff --git a/packages/cloud/connection_details/components/spa_no_router_link/spa_no_router_link.tsx b/packages/cloud/connection_details/components/spa_no_router_link/spa_no_router_link.tsx new file mode 100644 index 0000000000000..3756adb2f35da --- /dev/null +++ b/packages/cloud/connection_details/components/spa_no_router_link/spa_no_router_link.tsx @@ -0,0 +1,49 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiLink } from '@elastic/eui'; + +const hasActiveModifierKey = (event: React.MouseEvent): boolean => { + return event.metaKey || event.altKey || event.ctrlKey || event.shiftKey; +}; + +export interface SpaNoRouterLinkProps { + url: string; + go?: (url: string) => void; + onClick?: React.MouseEventHandler; + 'data-test-subj'?: string; +} + +export const SpaNoRouterLink: React.FC = ({ + url, + go, + onClick, + children, + ...rest +}) => { + return ( + /* eslint-disable-next-line @elastic/eui/href-or-on-click */ + { + if (!go) return; + + if (!hasActiveModifierKey(e)) { + e.preventDefault(); + go(url); + } + + onClick?.(e); + }} + > + {children} + + ); +}; diff --git a/packages/cloud/connection_details/connection_details.stories.tsx b/packages/cloud/connection_details/connection_details.stories.tsx new file mode 100644 index 0000000000000..b365bcaa86d1e --- /dev/null +++ b/packages/cloud/connection_details/connection_details.stories.tsx @@ -0,0 +1,23 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { StoriesProvider } from './stories'; +import { ConnectionDetails } from './connection_details'; + +export default { + title: 'Connection Details', +}; + +export const Default = () => { + return ( + + + + ); +}; diff --git a/packages/cloud/connection_details/connection_details.tsx b/packages/cloud/connection_details/connection_details.tsx new file mode 100644 index 0000000000000..d1aabbbc7b958 --- /dev/null +++ b/packages/cloud/connection_details/connection_details.tsx @@ -0,0 +1,67 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiSpacer, EuiTab, EuiTabs } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { useConnectionDetailsOpts } from './context'; +import { EndpointsTab } from './tabs/endpoints_tab'; +import { ApiKeysTab } from './tabs/api_keys_tab'; + +export const ConnectionDetails: React.FC = () => { + type TabID = 'endpoints' | 'apiKeys'; + type Tab = [id: TabID, name: string, content: React.ReactNode]; + + const ctx = useConnectionDetailsOpts(); + const [tab, setTab] = React.useState('endpoints'); + + const tabs: Tab[] = []; + + if (ctx.endpoints) { + tabs.push([ + 'endpoints', + i18n.translate('cloud.connectionDetails.tab.endpoints', { + defaultMessage: 'Endpoints', + }), + , + ]); + } + + if (ctx.apiKeys) { + tabs.push([ + 'apiKeys', + i18n.translate('cloud.connectionDetails.tab.apiKeys', { + defaultMessage: 'API key', + }), + , + ]); + } + + if (tabs.length === 0) { + return null; + } + + return ( + <> + + {tabs.map(([id, name]) => ( + setTab(id)} + isSelected={tab === id} + data-test-subj={`connectionDetailsTabBtn-${id}`} + > + {name} + + ))} + + + {tabs.find(([id]) => id === tab)?.[2] || null} + + ); +}; diff --git a/packages/cloud/connection_details/connection_details_flyout_content.stories.tsx b/packages/cloud/connection_details/connection_details_flyout_content.stories.tsx new file mode 100644 index 0000000000000..5bd9cd140dfdf --- /dev/null +++ b/packages/cloud/connection_details/connection_details_flyout_content.stories.tsx @@ -0,0 +1,50 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { EuiFlyout } from '@elastic/eui'; +import { + StoriesProvider, + StoriesProviderKeyCreationError, + StoriesProviderNoKeyPermissions, +} from './stories'; +import { ConnectionDetailsFlyoutContent } from './connection_details_flyout_content'; + +export default { + title: 'Connection Details/Flyout', +}; + +export const Default = () => { + return ( + {}}> + + + + + ); +}; + +export const CreationError = () => { + return ( + {}}> + + + + + ); +}; + +export const MissingPermissions = () => { + return ( + {}}> + + + + + ); +}; diff --git a/packages/cloud/connection_details/connection_details_flyout_content.tsx b/packages/cloud/connection_details/connection_details_flyout_content.tsx new file mode 100644 index 0000000000000..83cf22b45ee3a --- /dev/null +++ b/packages/cloud/connection_details/connection_details_flyout_content.tsx @@ -0,0 +1,64 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { + EuiFlyoutBody, + EuiFlyoutHeader, + EuiLink, + EuiSpacer, + EuiText, + EuiTitle, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { ConnectionDetails } from './connection_details'; +import { useConnectionDetailsOpts } from './context'; + +export const ConnectionDetailsFlyoutContent: React.FC = () => { + const ctx = useConnectionDetailsOpts(); + + const header = ( + + +

    + {i18n.translate('cloud.connectionDetails.flyout.title', { + defaultMessage: 'Connection details', + })} +

    +
    + + +

    + {i18n.translate('cloud.connectionDetails.flyout.subtitle', { + defaultMessage: 'Connect to the Elasticsearch API by using the following details.', + })}{' '} + {!!ctx.links?.learnMore && ( + + {i18n.translate('cloud.connectionDetails.learnMoreButtonLabel', { + defaultMessage: 'Learn more', + })} + + )} +

    +
    +
    + ); + + const body = ( + + + + ); + + return ( + <> + {header} + {body} + + ); +}; diff --git a/packages/cloud/connection_details/context/index.ts b/packages/cloud/connection_details/context/index.ts new file mode 100644 index 0000000000000..d3885d5b4c94c --- /dev/null +++ b/packages/cloud/connection_details/context/index.ts @@ -0,0 +1,10 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './options'; +export { useConnectionDetailsService } from './service'; diff --git a/packages/cloud/connection_details/context/options.tsx b/packages/cloud/connection_details/context/options.tsx new file mode 100644 index 0000000000000..63bd650016d25 --- /dev/null +++ b/packages/cloud/connection_details/context/options.tsx @@ -0,0 +1,37 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { ConnectionDetailsService } from '../service'; +import { ConnectionDetailsOpts } from '../types'; +import { context as serviceContext } from './service'; + +export const context = React.createContext({}); + +export const ConnectionDetailsOptsProvider: React.FC = ({ + children, + ...opts +}) => { + const service = React.useMemo(() => new ConnectionDetailsService(opts), [opts]); + + return ( + + {children} + + ); +}; + +export const useConnectionDetailsOpts = (): ConnectionDetailsOpts => { + const value = React.useContext(context); + + if (!value || Object.keys(value).length === 0) { + throw new Error('ConnectionDetailsOptsContextValue is not set up.'); + } + + return value; +}; diff --git a/packages/cloud/connection_details/context/service.tsx b/packages/cloud/connection_details/context/service.tsx new file mode 100644 index 0000000000000..9cd5c5f24960f --- /dev/null +++ b/packages/cloud/connection_details/context/service.tsx @@ -0,0 +1,22 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { ConnectionDetailsService } from '../service'; + +export const context = React.createContext(null!); + +export const useConnectionDetailsService = (): ConnectionDetailsService => { + const value = React.useContext(context); + + if (!value || Object.keys(value).length === 0) { + throw new Error('ConnectionDetailsServiceProvider is not set up.'); + } + + return value; +}; diff --git a/packages/cloud/connection_details/hooks/use_async_memo.ts b/packages/cloud/connection_details/hooks/use_async_memo.ts new file mode 100644 index 0000000000000..5391e74faa088 --- /dev/null +++ b/packages/cloud/connection_details/hooks/use_async_memo.ts @@ -0,0 +1,32 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; + +export const useAsyncMemo = ( + fn: () => Promise, + deps: React.DependencyList +): T | undefined => { + const [value, setValue] = React.useState(undefined); + + React.useLayoutEffect(() => { + let isMounted = true; + + fn().then((result) => { + if (isMounted) { + setValue(result); + } + }); + + return () => { + isMounted = false; + }; + }, deps); // eslint-disable-line react-hooks/exhaustive-deps + + return value; +}; diff --git a/packages/cloud/connection_details/hooks/use_behavior_subject.ts b/packages/cloud/connection_details/hooks/use_behavior_subject.ts new file mode 100644 index 0000000000000..e4a199200174b --- /dev/null +++ b/packages/cloud/connection_details/hooks/use_behavior_subject.ts @@ -0,0 +1,14 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import useObservable from 'react-use/lib/useObservable'; +import type { BehaviorSubject } from 'rxjs'; + +export const useBehaviorSubject = (subject: BehaviorSubject): T => { + return useObservable(subject, subject.getValue()); +}; diff --git a/packages/cloud/connection_details/index.ts b/packages/cloud/connection_details/index.ts new file mode 100644 index 0000000000000..3e991bc1ffad0 --- /dev/null +++ b/packages/cloud/connection_details/index.ts @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './types'; +export { ConnectionDetailsOptsProvider } from './context'; +export { ConnectionDetails } from './connection_details'; +export { ConnectionDetailsFlyoutContent } from './connection_details_flyout_content'; +export * from './kibana'; diff --git a/packages/cloud/connection_details/kibana/global.ts b/packages/cloud/connection_details/kibana/global.ts new file mode 100644 index 0000000000000..af3767d12ad77 --- /dev/null +++ b/packages/cloud/connection_details/kibana/global.ts @@ -0,0 +1,44 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreStart } from '@kbn/core-lifecycle-browser'; +import type { CloudStart } from '@kbn/cloud-plugin/public'; +import type { SharePluginStart } from '@kbn/share-plugin/public'; + +export interface ConnectionDetailsGlobalDependencies { + start: { + core: { + i18n: CoreStart['i18n']; + docLinks: CoreStart['docLinks']; + theme: CoreStart['theme']; + http: CoreStart['http']; + application: CoreStart['application']; + overlays: CoreStart['overlays']; + }; + plugins: { + cloud?: CloudStart; + share?: SharePluginStart; + }; + }; +} + +const kDependencies = 'ConnectionDetailsGlobalDependencies'; + +export const setGlobalDependencies = (dependencies: ConnectionDetailsGlobalDependencies) => { + (global as any)[kDependencies] = dependencies; +}; + +export const getGlobalDependencies = (): ConnectionDetailsGlobalDependencies => { + const dependencies = (global as any)[kDependencies]; + + if (dependencies === undefined) { + throw new Error('ConnectionDetailsGlobalDependencies not set'); + } + + return dependencies as ConnectionDetailsGlobalDependencies; +}; diff --git a/packages/cloud/connection_details/kibana/index.ts b/packages/cloud/connection_details/kibana/index.ts new file mode 100644 index 0000000000000..12c2575059e36 --- /dev/null +++ b/packages/cloud/connection_details/kibana/index.ts @@ -0,0 +1,22 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { + KibanaConnectionDetailsProvider, + type KibanaConnectionDetailsProviderProps, +} from './kibana_connection_details_provider'; +export { setGlobalDependencies } from './global'; +export { + KibanaWiredConnectionDetailsProvider, + type KibanaWiredConnectionDetailsProviderProps, +} from './kibana_wired_connection_details_provider'; +export { openConnectionDetails, type OpenConnectionDetailsParams } from './open_connection_details'; +export { + openWiredConnectionDetails, + type OpenWiredConnectionDetailsParams, +} from './open_wired_connection_details'; diff --git a/packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx b/packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx new file mode 100644 index 0000000000000..57f1fe13df4d8 --- /dev/null +++ b/packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx @@ -0,0 +1,106 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import type { CoreStart } from '@kbn/core-lifecycle-browser'; +import type { CloudStart } from '@kbn/cloud-plugin/public'; +import type { SharePluginStart } from '@kbn/share-plugin/public'; +import type { CreateAPIKeyParams, CreateAPIKeyResult } from '@kbn/security-plugin-types-server'; +import { ConnectionDetailsOptsProvider } from '../context'; +import { ConnectionDetailsOpts } from '../types'; +import { useAsyncMemo } from '../hooks/use_async_memo'; + +const createOpts = async (props: KibanaConnectionDetailsProviderProps) => { + const { options, start } = props; + const { http, docLinks } = start.core; + const locator = start.plugins?.share?.url?.locators.get('MANAGEMENT_APP_LOCATOR'); + const manageKeysLink = await locator?.getUrl({ sectionId: 'security', appId: 'api_keys' }); + const result: ConnectionDetailsOpts = { + ...options, + navigateToUrl: start.core.application + ? (link: string) => { + props.onNavigation?.(); + start.core.application?.navigateToUrl?.(link); + } + : undefined, + links: { + learnMore: docLinks.links.fleet.apiKeysLearnMore, + ...options?.links, + }, + endpoints: { + id: start.plugins?.cloud?.cloudId, + url: start.plugins?.cloud?.elasticsearchUrl, + ...options?.endpoints, + }, + apiKeys: { + manageKeysLink, + createKey: async ({ name }) => { + if (!http) { + throw new Error('HTTP service is not available'); + } + + const request: CreateAPIKeyParams = { + name, + expiration: '90d', + metadata: {}, + role_descriptors: {}, + }; + + const response = await http.post('/internal/security/api_key', { + body: JSON.stringify(request), + }); + + return { + apiKey: { + id: response.id, + name: response.name, + key: response.api_key, + encoded: response.encoded, + }, + }; + }, + hasPermission: async () => true, + ...options?.apiKeys, + }, + }; + + return result; +}; + +export interface KibanaConnectionDetailsProviderProps { + onNavigation?: () => void; + options?: ConnectionDetailsOpts; + start: { + core: { + i18n: CoreStart['i18n']; + docLinks: CoreStart['docLinks']; + theme: CoreStart['theme']; + http?: CoreStart['http']; + application?: CoreStart['application']; + }; + plugins?: { + cloud?: CloudStart; + share?: SharePluginStart; + }; + }; +} + +export const KibanaConnectionDetailsProvider: React.FC = ( + props +) => { + const opts = useAsyncMemo( + () => createOpts(props), + [props.onNavigation, props.options, props.start] + ); + + if (!opts) { + return null; + } + + return {props.children}; +}; diff --git a/packages/cloud/connection_details/kibana/kibana_wired_connection_details_provider.tsx b/packages/cloud/connection_details/kibana/kibana_wired_connection_details_provider.tsx new file mode 100644 index 0000000000000..a45e9ce436676 --- /dev/null +++ b/packages/cloud/connection_details/kibana/kibana_wired_connection_details_provider.tsx @@ -0,0 +1,29 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { + KibanaConnectionDetailsProvider, + KibanaConnectionDetailsProviderProps, +} from './kibana_connection_details_provider'; +import { getGlobalDependencies } from './global'; + +export type KibanaWiredConnectionDetailsProviderProps = Omit< + KibanaConnectionDetailsProviderProps, + 'start' +>; + +export const KibanaWiredConnectionDetailsProvider: React.FC< + KibanaWiredConnectionDetailsProviderProps +> = (props) => { + return ( + + {props.children} + + ); +}; diff --git a/packages/cloud/connection_details/kibana/open_connection_details.tsx b/packages/cloud/connection_details/kibana/open_connection_details.tsx new file mode 100644 index 0000000000000..52078662c337d --- /dev/null +++ b/packages/cloud/connection_details/kibana/open_connection_details.tsx @@ -0,0 +1,42 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import ReactDOM from 'react-dom'; +import type { CoreStart } from '@kbn/core-lifecycle-browser'; +import * as conn from '..'; + +export interface OpenConnectionDetailsParams { + props: conn.KibanaConnectionDetailsProviderProps; + start: { + core: { + overlays: CoreStart['overlays']; + }; + }; +} + +export const openConnectionDetails = async ({ props, start }: OpenConnectionDetailsParams) => { + const mount = (element: HTMLElement) => { + const reactElement = ( + { + flyoutRef?.close(); + }} + > + + + ); + ReactDOM.render(reactElement, element); + + return () => ReactDOM.unmountComponentAtNode(element); + }; + const flyoutRef = start.core.overlays.openFlyout(mount, { size: 's' }); + + return flyoutRef; +}; diff --git a/packages/cloud/connection_details/kibana/open_wired_connection_details.tsx b/packages/cloud/connection_details/kibana/open_wired_connection_details.tsx new file mode 100644 index 0000000000000..a119caf04847c --- /dev/null +++ b/packages/cloud/connection_details/kibana/open_wired_connection_details.tsx @@ -0,0 +1,25 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { openConnectionDetails, OpenConnectionDetailsParams } from './open_connection_details'; +import { getGlobalDependencies } from './global'; + +export type OpenWiredConnectionDetailsParams = Partial>; + +export const openWiredConnectionDetails = async (params: OpenWiredConnectionDetailsParams = {}) => { + const start = getGlobalDependencies().start; + + return openConnectionDetails({ + ...params, + props: { + ...params.props, + start, + }, + start, + }); +}; diff --git a/packages/cloud/connection_details/service.ts b/packages/cloud/connection_details/service.ts new file mode 100644 index 0000000000000..2fec4e95d179b --- /dev/null +++ b/packages/cloud/connection_details/service.ts @@ -0,0 +1,86 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { BehaviorSubject } from 'rxjs'; +import { i18n } from '@kbn/i18n'; +import { ApiKey } from './tabs/api_keys_tab/views/success_form/types'; +import type { Format } from './tabs/api_keys_tab/views/success_form/format_select'; +import type { ConnectionDetailsOpts } from './types'; + +export class ConnectionDetailsService { + public readonly showCloudId$ = new BehaviorSubject(false); + public readonly apiKeyName$ = new BehaviorSubject(''); + public readonly apiKeyStatus$ = new BehaviorSubject<'configuring' | 'creating'>('configuring'); + public readonly apiKeyError$ = new BehaviorSubject(undefined); + public readonly apiKey$ = new BehaviorSubject(null); + public readonly apiKeyFormat$ = new BehaviorSubject('encoded'); + public readonly apiKeyHasAccess$ = new BehaviorSubject(null); + + constructor(public readonly opts: ConnectionDetailsOpts) { + opts.apiKeys + ?.hasPermission() + .then((hasAccess) => { + this.apiKeyHasAccess$.next(hasAccess); + }) + .catch((error) => { + // eslint-disable-next-line no-console + console.error('Error checking API key creation permissions', error); + }); + } + + public readonly toggleShowCloudId = () => { + this.showCloudId$.next(!this.showCloudId$.getValue()); + }; + + public readonly setApiKeyName = (name: string) => { + this.apiKeyName$.next(name); + this.apiKeyError$.next(undefined); + }; + + public readonly setApiKeyFormat = (format: Format) => { + this.apiKeyFormat$.next(format); + }; + + private validateName = () => { + const name = this.apiKeyName$.getValue(); + + if (!name) { + const message = i18n.translate('cloud.connectionDetails.tab.apiKeys.nameField.missingError', { + defaultMessage: 'API key name is required.', + }); + throw new Error(message); + } + }; + + private readonly createKeyAsync = async () => { + const createKey = this.opts.apiKeys?.createKey; + + if (!createKey) { + throw new Error('createKey() is not implemented'); + } + + this.apiKeyStatus$.next('creating'); + try { + this.validateName(); + const { apiKey } = await createKey({ + name: this.apiKeyName$.getValue(), + }); + this.apiKey$.next(apiKey); + } catch (error) { + this.apiKeyError$.next(error); + } finally { + this.apiKeyStatus$.next('configuring'); + } + }; + + public readonly createKey = () => { + this.createKeyAsync().catch((error) => { + this.apiKeyError$.next(error); + }); + }; +} diff --git a/packages/cloud/connection_details/stories.tsx b/packages/cloud/connection_details/stories.tsx new file mode 100644 index 0000000000000..e3c9a82beea38 --- /dev/null +++ b/packages/cloud/connection_details/stories.tsx @@ -0,0 +1,76 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { ConnectionDetailsOptsProvider } from './context'; +import type { ConnectionDetailsOpts } from './types'; + +const defaultOpts: ConnectionDetailsOpts = { + links: { + learnMore: 'https://www.elastic.co/LEARN_MORE', + }, + endpoints: { + url: 'https://f67d6bf1a3cf40888e8863f6cb2cdc4c.us-east-1.aws.staging.foundit.no:443', + id: 'my-cluster-id:dXMtZWFzdC0xLmF3cy5zdGFnaW5nLmZvdW5kaXQubm8kZjY3ZDZiZjFhM2NmNDA4ODhlODg2M2Y2Y2IyY2RjNGMkOWViYzEzYjRkOTU0NDI2NDljMzcwZTNlZjMyZWYzOGI=', + }, + apiKeys: { + manageKeysLink: 'https://www.elastic.co/MANAGE_API_KEYS', + createKey: async ({ name }) => { + await new Promise((resolve) => setTimeout(resolve, 1000)); + + return { + apiKey: { + id: 'hjfq4o4BTjxWQruxIear', + name, + encoded: 'aGpmcTRvNEJUanhXUXJ1eEllYXI6VUJYc1lPNkhSTy1PempUTk0tSjF6Zw==', + key: 'UBXsYO6HRO-OzjTNM-J1zg', + }, + }; + }, + hasPermission: async () => { + await new Promise((resolve) => setTimeout(resolve, 1000)); + + return true; + }, + }, +}; + +export const StoriesProvider: React.FC = ({ children }) => { + return {children}; +}; + +export const StoriesProviderKeyCreationError: React.FC = ({ children }) => { + const opts: ConnectionDetailsOpts = { + ...defaultOpts, + apiKeys: { + ...defaultOpts!.apiKeys!, + createKey: async () => { + await new Promise((resolve) => setTimeout(resolve, 1000)); + throw new Error('Failed to create API key'); + }, + }, + }; + + return {children}; +}; + +export const StoriesProviderNoKeyPermissions: React.FC = ({ children }) => { + const opts: ConnectionDetailsOpts = { + ...defaultOpts, + apiKeys: { + ...defaultOpts!.apiKeys!, + hasPermission: async () => { + await new Promise((resolve) => setTimeout(resolve, 1000)); + + return false; + }, + }, + }; + + return {children}; +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.stories.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.stories.tsx new file mode 100644 index 0000000000000..8e870bbe0c704 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.stories.tsx @@ -0,0 +1,23 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { StoriesProvider } from '../../stories'; +import { ApiKeysTab } from './api_keys_tab'; + +export default { + title: 'Connection Details/Tabs/API Keys', +}; + +export const Default = () => { + return ( + + + + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.tsx new file mode 100644 index 0000000000000..dcb31eabfc287 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/api_keys_tab.tsx @@ -0,0 +1,27 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { useConnectionDetailsService } from '../../context'; +import { useBehaviorSubject } from '../../hooks/use_behavior_subject'; +import { ConfigurationForm } from './views/configuration_form'; +import { MissingPermissionsPanel } from './views/missing_permissions_panel'; +import { SuccessForm } from './views/success_form'; + +export const ApiKeysTab: React.FC = () => { + const service = useConnectionDetailsService(); + const { apiKeys } = service.opts; + const apiKey = useBehaviorSubject(service.apiKey$); + const hasAccess = useBehaviorSubject(service.apiKeyHasAccess$); + + if (!apiKeys) return null; + if (hasAccess === false) return ; + if (apiKey) return ; + + return ; +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/components/manage_keys_link.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/components/manage_keys_link.tsx new file mode 100644 index 0000000000000..a6ead0f520bb4 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/components/manage_keys_link.tsx @@ -0,0 +1,32 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { i18n } from '@kbn/i18n'; +import { useConnectionDetailsService } from '../../../context'; +import { SpaNoRouterLink } from '../../../components/spa_no_router_link'; + +export const ManageKeysLink: React.FC = () => { + const service = useConnectionDetailsService(); + + const link = service.opts.apiKeys?.manageKeysLink; + + if (!link) return null; + + return ( + + {i18n.translate('cloud.connectionDetails.apiKeys.managerLinkLabel', { + defaultMessage: 'Manage API keys', + })} + + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/index.ts b/packages/cloud/connection_details/tabs/api_keys_tab/index.ts new file mode 100644 index 0000000000000..de7bfb9e1ff1d --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/index.ts @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './api_keys_tab'; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form.tsx new file mode 100644 index 0000000000000..9a1c9de454ff0 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form.tsx @@ -0,0 +1,40 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiSkeletonText } from '@elastic/eui'; +import { ConfigurationFormControlled } from './configuration_form_controlled'; +import { useConnectionDetailsService } from '../../../../context'; +import { useBehaviorSubject } from '../../../../hooks/use_behavior_subject'; + +export const ConfigurationForm: React.FC = () => { + const service = useConnectionDetailsService(); + const keyName = useBehaviorSubject(service.apiKeyName$); + const keyStatus = useBehaviorSubject(service.apiKeyStatus$); + const keyError = useBehaviorSubject(service.apiKeyError$); + const hasAccess = useBehaviorSubject(service.apiKeyHasAccess$); + + const isLoadingPermissions = hasAccess === null; + + return ( + + { + service.setApiKeyName(event.target.value); + }} + onSubmit={(event) => { + event.preventDefault(); + service.createKey(); + }} + /> + + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form_controlled.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form_controlled.tsx new file mode 100644 index 0000000000000..9d566ef431522 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/configuration_form_controlled.tsx @@ -0,0 +1,110 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + EuiButton, + EuiCallOut, + EuiFieldText, + EuiFlexGroup, + EuiFlexItem, + EuiForm, + EuiFormRow, + EuiSpacer, +} from '@elastic/eui'; +import * as React from 'react'; +import { i18n } from '@kbn/i18n'; +import { ManageKeysLink } from '../../components/manage_keys_link'; + +export interface ConfigurationFormControlledProps { + name: string; + loading?: boolean; + error?: Error | unknown; + onNameChange: React.ChangeEventHandler; + onSubmit: React.FormEventHandler; +} + +export const ConfigurationFormControlled: React.FC = ({ + name, + loading, + error, + onNameChange, + onSubmit, +}) => { + const body = ( + <> + {!!error && ( + <> + + {error instanceof Error ? error.message : String(error)} + + + + )} + + + + + + ); + + const footer = ( + + + + + + + {i18n.translate('cloud.connectionDetails.tab.apiKeys.nameField.createButton.label', { + defaultMessage: 'Create API key', + })} + + + + ); + + return ( + + {body} + + {footer} + + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/index.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/index.tsx new file mode 100644 index 0000000000000..e8ced5717da1d --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/configuration_form/index.tsx @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './configuration_form'; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/missing_permissions_panel.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/missing_permissions_panel.tsx new file mode 100644 index 0000000000000..5e2d5dd2da830 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/missing_permissions_panel.tsx @@ -0,0 +1,31 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiCallOut } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +export const MissingPermissionsPanel: React.FC = () => { + return ( + +

    + {i18n.translate('cloud.connectionDetails.tabs.apiKeys.missingPermPanel.description', { + defaultMessage: + 'Your assigned role does not have the necessary permissions to create an API key. ' + + 'Please contact your administrator.', + })} +

    +
    + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/format_select.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/format_select.tsx new file mode 100644 index 0000000000000..b13d562bff8ed --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/format_select.tsx @@ -0,0 +1,59 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { i18n } from '@kbn/i18n'; +import { FancySelect } from '../../../../components/fancy_select'; + +export type Format = 'encoded' | 'beats' | 'logstash'; + +export interface FormatSelectProps { + value: Format; + onChange: (value: Format) => void; +} + +export const FormatSelect: React.FC = ({ value, onChange }) => { + return ( + onChange(newValue as Format)} + /> + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/index.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/index.tsx new file mode 100644 index 0000000000000..ce50265f62f02 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/index.tsx @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './success_form'; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form.tsx new file mode 100644 index 0000000000000..154c3c8d2b4bb --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form.tsx @@ -0,0 +1,28 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { useConnectionDetailsService } from '../../../../context'; +import { useBehaviorSubject } from '../../../../hooks/use_behavior_subject'; +import { SuccessFormControlled } from './success_form_controlled'; + +export const SuccessForm: React.FC = () => { + const service = useConnectionDetailsService(); + const apiKey = useBehaviorSubject(service.apiKey$); + const format = useBehaviorSubject(service.apiKeyFormat$); + + if (!apiKey) return null; + + return ( + + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.stories.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.stories.tsx new file mode 100644 index 0000000000000..aa87dd26b568a --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.stories.tsx @@ -0,0 +1,35 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { StoriesProvider } from '../../../../stories'; +import { SuccessFormControlled } from './success_form_controlled'; +import type { Format } from './format_select'; + +export default { + title: 'Connection Details/Tabs/API Keys/Success Form (controlled)', +}; + +export const Default = () => { + const [format, setFormat] = React.useState('encoded'); + + return ( + + + + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.tsx new file mode 100644 index 0000000000000..d5717bee8e244 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/success_form_controlled.tsx @@ -0,0 +1,74 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { EuiCallOut, EuiFormRow, EuiSpacer } from '@elastic/eui'; +import * as React from 'react'; +import { i18n } from '@kbn/i18n'; +import { ApiKey } from './types'; +import { FormatSelect, type Format } from './format_select'; +import { CopyInput } from '../../../../components/copy_input'; +import { ManageKeysLink } from '../../components/manage_keys_link'; + +export interface SuccessFormControlledProps { + apiKey: ApiKey; + format: Format; + onFormatChange: (format: Format) => void; +} + +export const SuccessFormControlled: React.FC = ({ + apiKey, + format, + onFormatChange, +}) => { + const keyValue = format === 'encoded' ? apiKey.encoded : `${apiKey.id}:${apiKey.key}`; + + return ( + <> + +

    + {i18n.translate('cloud.connectionDetails.apiKeys.successForm.message', { + defaultMessage: + 'Copy your API key below now. It will not be available ' + + 'after you close this dialogue. The API key will expire in 90 days.', + })} +

    + + + + + + + + +
    + + + + + + ); +}; diff --git a/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/types.tsx b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/types.tsx new file mode 100644 index 0000000000000..d4702bd777121 --- /dev/null +++ b/packages/cloud/connection_details/tabs/api_keys_tab/views/success_form/types.tsx @@ -0,0 +1,14 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export interface ApiKey { + id: string; + name: string; + key: string; + encoded: string; +} diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/endpoint_tab.stories.tsx b/packages/cloud/connection_details/tabs/endpoints_tab/endpoint_tab.stories.tsx new file mode 100644 index 0000000000000..f31a28059b830 --- /dev/null +++ b/packages/cloud/connection_details/tabs/endpoints_tab/endpoint_tab.stories.tsx @@ -0,0 +1,23 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { StoriesProvider } from '../../stories'; +import { EndpointsTab } from './endpoints_tab'; + +export default { + title: 'Connection Details/Tabs/Endpoints Tab', +}; + +export const Default = () => { + return ( + + + + ); +}; diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/endpoints_tab.tsx b/packages/cloud/connection_details/tabs/endpoints_tab/endpoints_tab.tsx new file mode 100644 index 0000000000000..40f442348acf7 --- /dev/null +++ b/packages/cloud/connection_details/tabs/endpoints_tab/endpoints_tab.tsx @@ -0,0 +1,26 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { EuiForm } from '@elastic/eui'; +import * as React from 'react'; +import { useConnectionDetailsOpts } from '../../context'; +import { CloudIdRow } from './rows/cloud_id_row'; +import { EndpointUrlRow } from './rows/endpoints_url_row'; + +export const EndpointsTab: React.FC = () => { + const { endpoints } = useConnectionDetailsOpts(); + + if (!endpoints) return null; + + return ( + + {!!endpoints?.url && } + {!!endpoints?.id && } + + ); +}; diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/index.ts b/packages/cloud/connection_details/tabs/endpoints_tab/index.ts new file mode 100644 index 0000000000000..5b3437f2979cc --- /dev/null +++ b/packages/cloud/connection_details/tabs/endpoints_tab/index.ts @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './endpoints_tab'; diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row.tsx b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row.tsx new file mode 100644 index 0000000000000..217bc533e9255 --- /dev/null +++ b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row.tsx @@ -0,0 +1,56 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiFormRow, EuiSpacer, EuiSwitch } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { CopyInput } from '../../../components/copy_input'; +import { useConnectionDetailsService } from '../../../context'; +import { useBehaviorSubject } from '../../../hooks/use_behavior_subject'; + +export interface CloudIdRowProps { + value: string; +} + +export const CloudIdRow: React.FC = ({ value }) => { + const service = useConnectionDetailsService(); + const showCloudId = useBehaviorSubject(service.showCloudId$); + + return ( + <> + + + + + {showCloudId && } + + {showCloudId && ( + + + + )} + + ); +}; diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/rows/endpoints_url_row.tsx b/packages/cloud/connection_details/tabs/endpoints_tab/rows/endpoints_url_row.tsx new file mode 100644 index 0000000000000..29f40dcb0c5e2 --- /dev/null +++ b/packages/cloud/connection_details/tabs/endpoints_tab/rows/endpoints_url_row.tsx @@ -0,0 +1,33 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { EuiFormRow } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { CopyInput } from '../../../components/copy_input'; + +export interface EndpointUrlProps { + url: string; +} + +export const EndpointUrlRow: React.FC = ({ url }) => { + return ( + + + + ); +}; diff --git a/packages/cloud/connection_details/types.ts b/packages/cloud/connection_details/types.ts new file mode 100644 index 0000000000000..e7df5adf20bdb --- /dev/null +++ b/packages/cloud/connection_details/types.ts @@ -0,0 +1,33 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { ApiKey } from './tabs/api_keys_tab/views/success_form/types'; + +export interface ConnectionDetailsOpts { + links?: ConnectionDetailsOptsLinks; + endpoints?: ConnectionDetailsOptsEndpoints; + apiKeys?: ConnectionDetailsOptsApiKeys; + navigateToUrl?: (url: string) => void; +} + +export interface ConnectionDetailsOptsLinks { + learnMore?: string; +} + +export interface ConnectionDetailsOptsEndpoints { + url?: string; + id?: string; +} + +export interface ConnectionDetailsOptsApiKeys { + manageKeysLink?: string; + createKey: (params: { name: string }) => Promise<{ + apiKey: ApiKey; + }>; + hasPermission: () => Promise; +} diff --git a/packages/cloud/tsconfig.json b/packages/cloud/tsconfig.json index f56351356720a..1eb5dbd01b1e0 100644 --- a/packages/cloud/tsconfig.json +++ b/packages/cloud/tsconfig.json @@ -18,5 +18,9 @@ "kbn_references": [ "@kbn/i18n", "@kbn/i18n-react", + "@kbn/core-lifecycle-browser", + "@kbn/cloud-plugin", + "@kbn/share-plugin", + "@kbn/security-plugin-types-server", ] } diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_card.tsx b/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_card.tsx index 3809f212c6fa6..5c17c83c7e47f 100644 --- a/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_card.tsx +++ b/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_card.tsx @@ -10,10 +10,8 @@ import React, { useCallback, useState } from 'react'; import { EuiCard, EuiFlexGroup, EuiIcon, EuiTextColor, useEuiTheme } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; - import { css } from '@emotion/react'; -import { DeploymentDetailsModal, DeploymentDetailsProvider } from '@kbn/cloud/deployment_details'; -import { toMountPoint } from '@kbn/react-kibana-mount'; +import { openWiredConnectionDetails } from '@kbn/cloud/connection_details'; import { GuideState } from '../../../types'; import { GuideCardConstants } from './guide_cards.constants'; import { GuideCardsProps } from './guide_cards'; @@ -43,13 +41,6 @@ export const GuideCard = ({ activateGuide, navigateToApp, activeFilter, - openModal, - i18nStart, - theme, - url, - cloud, - docLinks, - navigateToUrl, }: GuideCardsProps & { card: GuideCardConstants }) => { const [isLoading, setIsLoading] = useState(false); const { euiTheme } = useEuiTheme(); @@ -58,35 +49,6 @@ export const GuideCard = ({ guideState = guidesState.find((state) => state.guideId === card.guideId); } - const managementUrl = url.locators - .get('MANAGEMENT_APP_LOCATOR') - ?.useUrl({ sectionId: 'security', appId: 'api_keys' }); - - const openESApiModal = useCallback(() => { - const modal = openModal( - toMountPoint( - - modal.close()} /> - , - { - theme, - i18n: i18nStart, - } - ), - { - maxWidth: 400, - 'data-test-subj': 'guideModalESApi', - } - ); - }, [openModal, i18nStart, theme, cloud, docLinks, managementUrl, navigateToUrl]); - const onClick = useCallback(async () => { setIsLoading(true); if (card.guideId) { @@ -96,7 +58,7 @@ export const GuideCard = ({ path: card.navigateTo.path, }); } else if (card.openEndpointModal) { - openESApiModal(); + openWiredConnectionDetails(); } setIsLoading(false); }, [ @@ -106,7 +68,6 @@ export const GuideCard = ({ guideState, navigateToApp, card.openEndpointModal, - openESApiModal, ]); const isHighlighted = activeFilter === card.solution; diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_cards.tsx b/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_cards.tsx index 239ab42c35325..1fce96f6ca2e5 100644 --- a/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_cards.tsx +++ b/packages/kbn-guided-onboarding/src/components/landing_page/guide/guide_cards.tsx @@ -12,12 +12,6 @@ import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; import type { ApplicationStart } from '@kbn/core-application-browser'; -import type { OverlayStart } from '@kbn/core-overlays-browser'; -import type { ThemeServiceStart } from '@kbn/core-theme-browser'; -import type { I18nStart } from '@kbn/core-i18n-browser'; -import type { BrowserUrlService } from '@kbn/share-plugin/public'; -import type { CloudSetup } from '@kbn/cloud-plugin/public'; -import type { CoreStart } from '@kbn/core-lifecycle-browser'; import { GuideId, GuideState } from '../../../types'; import { GuideFilterValues } from './guide_filters'; import { GuideCardConstants } from './guide_cards.constants'; @@ -31,13 +25,6 @@ export interface GuideCardsProps { activeFilter: GuideFilterValues; guidesState: GuideState[]; filteredCards?: GuideCardConstants[]; - openModal: OverlayStart['openModal']; - theme: ThemeServiceStart; - i18nStart: I18nStart; - url: BrowserUrlService; - cloud: CloudSetup; - docLinks: CoreStart['docLinks']; - navigateToUrl: ApplicationStart['navigateToUrl']; } export const GuideCards = (props: GuideCardsProps) => { const { filteredCards } = props; diff --git a/packages/kbn-guided-onboarding/tsconfig.json b/packages/kbn-guided-onboarding/tsconfig.json index 0ef62f4bc89f9..b47b2dad14429 100644 --- a/packages/kbn-guided-onboarding/tsconfig.json +++ b/packages/kbn-guided-onboarding/tsconfig.json @@ -15,14 +15,7 @@ "@kbn/i18n", "@kbn/core-application-browser", "@kbn/i18n-react", - "@kbn/react-kibana-mount", - "@kbn/core-overlays-browser", - "@kbn/core-theme-browser", - "@kbn/core-i18n-browser", "@kbn/cloud", - "@kbn/share-plugin", - "@kbn/cloud-plugin", - "@kbn/core-lifecycle-browser", "@kbn/analytics", ], "exclude": [ diff --git a/src/dev/storybook/aliases.ts b/src/dev/storybook/aliases.ts index 083337f7e6211..cc8b46c136aa2 100644 --- a/src/dev/storybook/aliases.ts +++ b/src/dev/storybook/aliases.ts @@ -16,6 +16,7 @@ export const storybookAliases = { cases: 'packages/kbn-cases-components/.storybook', cell_actions: 'packages/kbn-cell-actions/.storybook', cloud_chat: 'x-pack/plugins/cloud_integrations/cloud_chat/.storybook', + cloud: 'packages/cloud/.storybook', coloring: 'packages/kbn-coloring/.storybook', language_documentation_popover: 'packages/kbn-language-documentation-popover/.storybook', chart_icons: 'packages/kbn-chart-icons/.storybook', diff --git a/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx b/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx index 273fc22545266..ed20bc45023fb 100644 --- a/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx +++ b/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx @@ -54,18 +54,7 @@ const skipText = i18n.translate('home.guidedOnboarding.gettingStarted.skip.butto }); export const GettingStarted = () => { - const { - application, - trackUiMetric, - chrome, - guidedOnboardingService, - cloud, - openModal, - theme, - i18nStart, - docLinks, - share, - } = getServices(); + const { application, trackUiMetric, chrome, guidedOnboardingService, cloud } = getServices(); const [guidesState, setGuidesState] = useState([]); const [isLoading, setIsLoading] = useState(false); @@ -245,13 +234,6 @@ export const GettingStarted = () => { activeFilter={filter as GuideFilterValues} guidesState={guidesState} filteredCards={filteredCards} - openModal={openModal} - i18nStart={i18nStart} - theme={theme} - docLinks={docLinks} - cloud={cloud!} - url={share.url} - navigateToUrl={application.navigateToUrl} /> ); diff --git a/src/plugins/home/public/application/kibana_services.ts b/src/plugins/home/public/application/kibana_services.ts index 558f193ad84f2..14a1dfa794ccb 100644 --- a/src/plugins/home/public/application/kibana_services.ts +++ b/src/plugins/home/public/application/kibana_services.ts @@ -21,9 +21,9 @@ import { import { UiCounterMetricType } from '@kbn/analytics'; import { UrlForwardingStart } from '@kbn/url-forwarding-plugin/public'; import { DataViewsContract } from '@kbn/data-views-plugin/public'; -import type { SharePluginSetup } from '@kbn/share-plugin/public'; +import type { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public'; import { GuidedOnboardingApi } from '@kbn/guided-onboarding-plugin/public'; -import { CloudSetup } from '@kbn/cloud-plugin/public'; +import { CloudSetup, CloudStart } from '@kbn/cloud-plugin/public'; import { TutorialService } from '../services/tutorials'; import { AddDataService } from '../services/add_data'; import { FeatureCatalogueRegistry } from '../services/feature_catalogue'; @@ -35,6 +35,7 @@ export interface HomeKibanaServices { dataViewsService: DataViewsContract; kibanaVersion: string; share: SharePluginSetup; + shareStart: SharePluginStart; chrome: ChromeStart; application: ApplicationStart; uiSettings: IUiSettingsClient; @@ -55,7 +56,8 @@ export interface HomeKibanaServices { welcomeService: WelcomeService; guidedOnboardingService?: GuidedOnboardingApi; cloud: CloudSetup; - openModal: OverlayStart['openModal']; + cloudStart: CloudStart; + overlays: OverlayStart; theme: ThemeServiceStart; i18nStart: I18nStart; } diff --git a/src/plugins/home/public/plugin.ts b/src/plugins/home/public/plugin.ts index 84c383eb8a749..b002918c6a001 100644 --- a/src/plugins/home/public/plugin.ts +++ b/src/plugins/home/public/plugin.ts @@ -81,8 +81,16 @@ export class HomePublicPlugin const trackUiMetric = usageCollection ? usageCollection.reportUiCounter.bind(usageCollection, 'Kibana_home') : () => {}; - const [coreStart, { dataViews, urlForwarding: urlForwardingStart, guidedOnboarding }] = - await core.getStartServices(); + const [ + coreStart, + { + dataViews, + urlForwarding: urlForwardingStart, + guidedOnboarding, + share: shareStart, + cloud: cloudStart, + }, + ] = await core.getStartServices(); setServices({ share, @@ -108,9 +116,11 @@ export class HomePublicPlugin welcomeService: this.welcomeService, guidedOnboardingService: guidedOnboarding?.guidedOnboardingApi, cloud, - openModal: coreStart.overlays.openModal, + cloudStart, + overlays: coreStart.overlays, theme: core.theme, i18nStart: coreStart.i18n, + shareStart, }); coreStart.chrome.docTitle.change( i18n.translate('home.pageTitle', { defaultMessage: 'Home' }) diff --git a/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/help_menu_links.tsx b/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/help_menu_links.tsx index 14edb22d97665..14bcf41ea418b 100644 --- a/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/help_menu_links.tsx +++ b/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/help_menu_links.tsx @@ -4,32 +4,20 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React from 'react'; + import { i18n } from '@kbn/i18n'; import { ChromeHelpMenuLink } from '@kbn/core-chrome-browser'; import type { DocLinksStart } from '@kbn/core-doc-links-browser'; -import type { CoreStart } from '@kbn/core/public'; -import type { CloudStart } from '@kbn/cloud-plugin/public'; -import type { SharePluginStart } from '@kbn/share-plugin/public'; -import { toMountPoint } from '@kbn/react-kibana-mount'; -import { ConnectionDetailsModal } from './connection_details_modal'; +import { openWiredConnectionDetails } from '@kbn/cloud/connection_details'; export const createHelpMenuLinks = ({ docLinks, helpSupportUrl, - core, - cloud, - share, }: { docLinks: DocLinksStart; - core: CoreStart; - cloud: CloudStart; - share: SharePluginStart; helpSupportUrl: string; }) => { - const { overlays } = core; - const helpMenuLinks: ChromeHelpMenuLink[] = [ { title: i18n.translate('xpack.cloudLinks.helpMenuLinks.documentation', { @@ -55,18 +43,7 @@ export const createHelpMenuLinks = ({ }), dataTestSubj: 'connectionDetailsHelpLink', onClick: () => { - const modal = overlays.openModal( - toMountPoint( - modal.close()} - />, - { theme: core.theme, i18n: core.i18n } - ) - ); + openWiredConnectionDetails(); }, }, ]; diff --git a/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/maybe_add_cloud_links.ts b/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/maybe_add_cloud_links.ts index 2772c87d124d3..8bd2bd0ff1cf7 100644 --- a/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/maybe_add_cloud_links.ts +++ b/x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/maybe_add_cloud_links.ts @@ -22,7 +22,7 @@ export interface MaybeAddCloudLinksDeps { share: SharePluginStart; } -export function maybeAddCloudLinks({ core, security, cloud, share }: MaybeAddCloudLinksDeps): void { +export function maybeAddCloudLinks({ core, security, cloud }: MaybeAddCloudLinksDeps): void { const userObservable = defer(() => security.authc.getCurrentUser()).pipe( // Check if user is a cloud user. map((user) => user.elastic_cloud_user), @@ -56,9 +56,6 @@ export function maybeAddCloudLinks({ core, security, cloud, share }: MaybeAddClo const helpMenuLinks = createHelpMenuLinks({ docLinks: core.docLinks, helpSupportUrl, - core, - share, - cloud, }); core.chrome.setHelpMenuLinks(helpMenuLinks); diff --git a/x-pack/plugins/cloud_integrations/cloud_links/public/plugin.tsx b/x-pack/plugins/cloud_integrations/cloud_links/public/plugin.tsx index bfebe531276d4..0e8b5eec26f65 100755 --- a/x-pack/plugins/cloud_integrations/cloud_links/public/plugin.tsx +++ b/x-pack/plugins/cloud_integrations/cloud_links/public/plugin.tsx @@ -12,6 +12,7 @@ import type { CloudSetup, CloudStart } from '@kbn/cloud-plugin/public'; import type { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plugin/public'; import type { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public'; import type { SharePluginStart } from '@kbn/share-plugin/public'; +import * as connectionDetails from '@kbn/cloud/connection_details'; import { maybeAddCloudLinks } from './maybe_add_cloud_links'; interface CloudLinksDepsSetup { @@ -31,7 +32,9 @@ export class CloudLinksPlugin { public setup() {} - public start(core: CoreStart, { cloud, security, guidedOnboarding, share }: CloudLinksDepsStart) { + public start(core: CoreStart, plugins: CloudLinksDepsStart) { + const { cloud, security, guidedOnboarding, share } = plugins; + if (cloud?.isCloudEnabled && !core.http.anonymousPaths.isAnonymous(window.location.pathname)) { if (guidedOnboarding?.guidedOnboardingApi?.isEnabled) { core.chrome.registerGlobalHelpExtensionMenuLink({ @@ -54,6 +57,13 @@ export class CloudLinksPlugin }); } } + + connectionDetails.setGlobalDependencies({ + start: { + core, + plugins, + }, + }); } public stop() {} diff --git a/x-pack/test/functional_cloud/tests/cloud_links.ts b/x-pack/test/functional_cloud/tests/cloud_links.ts index 6125b52135b9c..1534c10002f90 100644 --- a/x-pack/test/functional_cloud/tests/cloud_links.ts +++ b/x-pack/test/functional_cloud/tests/cloud_links.ts @@ -47,32 +47,78 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ).to.not.be(null); }); - it('A button to open a modal to view the CloudID and ES endpoint is added', async () => { + it('Can open "Connection details" overlay with ES URL and Cloud ID', async () => { await PageObjects.common.clickAndValidate('helpMenuButton', 'connectionDetailsHelpLink'); expect(await find.byCssSelector('[data-test-subj="connectionDetailsHelpLink"]')).to.not.be( null ); - // Open the modal + // Open connection details overlay. await PageObjects.common.clickAndValidate( 'connectionDetailsHelpLink', 'deploymentDetailsModal' ); - const esEndpointInput = await find.byCssSelector( - '[data-test-subj="deploymentDetailsEsEndpoint"]' - ); - const esEndpointValue = await esEndpointInput.getAttribute('value'); - expect(esEndpointValue).to.be('https://ES123abc.hello.com:443'); + const esUrlRow = await find.byCssSelector('[data-test-subj="connectionDetailsEsUrl"]'); + const esUrlText = await esUrlRow.findByTestSubject('copyText'); + const esUrlTextValue = await esUrlText.getVisibleText(); + expect(esUrlTextValue).to.be('https://ES123abc.hello.com:443'); - const cloudIdInput = await find.byCssSelector( - '[data-test-subj="deploymentDetailsCloudID"]' + // Show Cloud ID text row. + await PageObjects.common.clickAndValidate( + 'connectionDetailsCloudIdSwitch', + 'connectionDetailsCloudId' ); - const cloudIdInputValue = await cloudIdInput.getAttribute('value'); - expect(cloudIdInputValue).to.be( + + const cloudIdRow = await find.byCssSelector('[data-test-subj="connectionDetailsCloudId"]'); + const cloudIdText = await cloudIdRow.findByTestSubject('copyText'); + const cloudIdTextValue = await cloudIdText.getVisibleText(); + expect(cloudIdTextValue).to.be( 'ftr_fake_cloud_id:aGVsbG8uY29tOjQ0MyRFUzEyM2FiYyRrYm4xMjNhYmM=' ); }); + + it('Can create an API key', async () => { + // Open connection details overlay. + await PageObjects.common.clickAndValidate('helpMenuButton', 'connectionDetailsHelpLink'); + await PageObjects.common.clickAndValidate( + 'connectionDetailsHelpLink', + 'deploymentDetailsModal' + ); + + // Navigate to the "API key" tab. + await PageObjects.common.clickAndValidate( + 'connectionDetailsTabBtn-apiKeys', + 'connectionDetailsApiKeyForm' + ); + + // Select the input form. + const form = await find.byCssSelector( + '[data-test-subj="connectionDetailsApiKeyConfigForm"]' + ); + + // Select the name in that form. + const nameInput = await form.findByCssSelector('[name="api-key-name"]'); + + // Enter a name for the API key. + const keyName = 'test-api-key-' + Date.now().toString(36); + await nameInput.type(keyName); + + // Click the submit button. + const submitButton = await form.findByCssSelector('button[type="submit"]'); + await submitButton.click(); + + // Wait for the success message to appear. + const successForm = await find.byCssSelector( + '[data-test-subj="connectionDetailsApiKeySuccessForm"]' + ); + + // Check that user is shown the API key value. + const apiKeyRow = await successForm.findByTestSubject('connectionDetailsApiKeyValueRow'); + const apiKeyText = await apiKeyRow.findByTestSubject('copyText'); + const apiKeyTextValue = await apiKeyText.getVisibleText(); + expect(apiKeyTextValue.length).to.be.greaterThan(40); + }); }); it('"Manage this deployment" is appended to the nav list', async () => { From 9e8a25c90244af4f882a62b9fca22a051b508d9d Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Tue, 23 Apr 2024 15:38:23 +0100 Subject: [PATCH 075/183] skip flaky suite (#181369) --- .../public/resolver/view/clickthrough.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx b/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx index 2bc671c1b7d78..8c53ebaf53307 100644 --- a/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx +++ b/x-pack/plugins/security_solution/public/resolver/view/clickthrough.test.tsx @@ -214,7 +214,8 @@ describe('Resolver, when analyzing a tree that has no ancestors and 2 children', }); }); -describe('Resolver, when using a generated tree with 20 generations, 4 children per child, and 10 ancestors', () => { +// FLAKY: https://github.com/elastic/kibana/issues/181369 +describe.skip('Resolver, when using a generated tree with 20 generations, 4 children per child, and 10 ancestors', () => { const findAndClickFirstLoadingNodeInPanel = async (graphSimulator: Simulator) => { // If the camera has not moved it will return a node with ID 2kt059pl3i, this is the first node with the state // loading that is outside of the initial loaded view From 3c71d69bf92e152ce05cb46b9210b6f7969f9dd6 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Tue, 23 Apr 2024 16:55:36 +0200 Subject: [PATCH 076/183] ci: integrate observability deployments with the oblt-test-env (#181041) --- .../steps/serverless/build_and_deploy.sh | 35 ++++++++++++++++++- .github/workflows/deploy-my-kibana.yml | 4 +-- .github/workflows/oblt-github-commands.yml | 1 - 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/.buildkite/scripts/steps/serverless/build_and_deploy.sh b/.buildkite/scripts/steps/serverless/build_and_deploy.sh index c346bf11a3ada..77c0cd6a92584 100644 --- a/.buildkite/scripts/steps/serverless/build_and_deploy.sh +++ b/.buildkite/scripts/steps/serverless/build_and_deploy.sh @@ -137,8 +137,41 @@ EOF buildkite-agent meta-data set pr_comment:early_comment_job_id "$BUILDKITE_JOB_ID" } +# This is the integration with the observability-test-environments +create_github_issue_oblt_test_environments() { + +echo "--- Create GitHub issue for deploying in the oblt test env" + +GITHUB_ISSUE=$(mktemp --suffix ".md") +cat < "$GITHUB_ISSUE" +### Kibana image + +$KIBANA_IMAGE + +### Kibana pull request + +$BUILDKITE_PULL_REQUEST + +### Further details + +Caused by @$GITHUB_PR_TRIGGER_USER using the github label in https://github.com/elastic/kibana/pull/$BUILDKITE_PULL_REQUEST +EOF + + GH_TOKEN="$GITHUB_TOKEN" \ + gh issue create \ + --title "[Deploy Serverless Kibana] for user $GITHUB_PR_TRIGGER_USER with PR kibana@pr-$BUILDKITE_PULL_REQUEST" \ + --body-file "${GITHUB_ISSUE}" \ + --label 'deploy-custom-kibana-serverless' \ + --repo 'elastic/observability-test-environments' \ + --assignee "$GITHUB_PR_OWNER" +} + is_pr_with_label "ci:project-deploy-elasticsearch" && deploy "elasticsearch" -is_pr_with_label "ci:project-deploy-observability" && deploy "observability" +if is_pr_with_label "ci:project-deploy-observability" ; then + create_github_issue_oblt_test_environments + echo "--- Deploy observability with Kibana CI" + deploy "observability" +fi is_pr_with_label "ci:project-deploy-security" && deploy "security" exit 0; diff --git a/.github/workflows/deploy-my-kibana.yml b/.github/workflows/deploy-my-kibana.yml index d1f7d993bf7b4..4eac490b2c0a7 100644 --- a/.github/workflows/deploy-my-kibana.yml +++ b/.github/workflows/deploy-my-kibana.yml @@ -20,7 +20,7 @@ permissions: jobs: deploy-my-kibana: - if: ${{ github.event.issue.pull_request && (github.event.comment.body == '/oblt-deploy' || github.event.comment.body == '/oblt-deploy-serverless') }} + if: ${{ github.event.issue.pull_request && github.event.comment.body == '/oblt-deploy' }} runs-on: ubuntu-latest steps: - uses: elastic/apm-pipeline-library/.github/actions/deploy-my-kibana@current @@ -28,4 +28,4 @@ jobs: vaultUrl: ${{ secrets.OBLT_VAULT_ADDR }} vaultRoleId: ${{ secrets.OBLT_VAULT_ROLE_ID }} vaultSecretId: ${{ secrets.OBLT_VAULT_SECRET_ID }} - serverless: ${{ github.event.comment.body == '/oblt-deploy-serverless' }} + serverless: false diff --git a/.github/workflows/oblt-github-commands.yml b/.github/workflows/oblt-github-commands.yml index f6d095766ccac..4388901e2fa0e 100644 --- a/.github/workflows/oblt-github-commands.yml +++ b/.github/workflows/oblt-github-commands.yml @@ -50,7 +50,6 @@ jobs: Just comment with: - \`/oblt-deploy\` : Deploy a Kibana instance using the Observability test environments. - - \`/oblt-deploy-serverless\` : Deploy a serverless Kibana instance using the Observability test environments. - \`run\` \`elasticsearch-ci/docs\` : Re-trigger the docs validation. (use unformatted text in the comment!)

    From 550fa3fb8cd0ca151651e02996b786ddc1237164 Mon Sep 17 00:00:00 2001 From: Rickyanto Ang Date: Tue, 23 Apr 2024 08:03:25 -0700 Subject: [PATCH 077/183] [Cloud Security][FTR]More FTRs (#178365) ## Summary - Added more FTRs - CIS AWS Organization - Manual (all 4 options) - CIS AWS Single - Cloud Formation - CIS AWS Single - Manual (All 4 options) - CIS GCP Single - Cloud Shell - CIS GCP Organization - Manual (both options) - CIS Azure - KSPM - Refactored cis_integration FTRs in response to the number of new FTRs added - Updated some component to include data-test-subj field for FTRs usage --------- Co-authored-by: Maxim Kholod --- ...enerated_csp_requirements_test_coverage.md | 231 +- .../__auto_generated_csp_test_log.json | 2436 ++++++++++++++--- .../public/common/constants.ts | 2 + .../aws_input_var_fields.tsx | 10 +- .../get_aws_credentials_form_options.tsx | 16 +- .../azure_credentials_form.tsx | 2 + .../fleet_extensions/eks_credentials_form.tsx | 19 +- .../fleet_extensions/policy_template_form.tsx | 4 + .../public/components/test_subjects.ts | 1 + .../config.ts | 2 +- .../add_cis_integration_form_page.ts | 151 +- .../cnvm/cis_integration_cnvm.ts | 65 + .../cspm/cis_integration_aws.ts | 320 +++ .../cspm/cis_integration_azure.ts | 282 ++ .../cspm/cis_integration_gcp.ts} | 265 +- .../kspm/cis_integration_eks.ts | 139 + .../kspm/cis_integration_k8s.ts | 38 + .../pages/index.ts | 7 +- 18 files changed, 3348 insertions(+), 642 deletions(-) create mode 100644 x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts create mode 100644 x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts create mode 100644 x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts rename x-pack/test/cloud_security_posture_functional/pages/{cis_integration.ts => cis_integrations/cspm/cis_integration_gcp.ts} (51%) create mode 100644 x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts create mode 100644 x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts diff --git a/x-pack/plugins/cloud_security_posture/common/dev_docs/__auto_generated_csp_requirements_test_coverage.md b/x-pack/plugins/cloud_security_posture/common/dev_docs/__auto_generated_csp_requirements_test_coverage.md index f0851690203c7..16c826cbc9dd2 100644 --- a/x-pack/plugins/cloud_security_posture/common/dev_docs/__auto_generated_csp_requirements_test_coverage.md +++ b/x-pack/plugins/cloud_security_posture/common/dev_docs/__auto_generated_csp_requirements_test_coverage.md @@ -7,7 +7,7 @@ You can also check out the dedicated app view, which enables easier search and f ## Directory: x-pack/plugins/cloud_security_posture -**Total Tests:** 424 | **Skipped:** 5 (1.18%) | **Todo:** 0 (0.00%) +**Total Tests:** 444 | **Skipped:** 5 (1.13%) | **Todo:** 0 (0.00%) ![](https://img.shields.io/badge/UT-brightgreen) ![](https://img.shields.io/badge/HAS-SKIP-yellow) @@ -127,11 +127,15 @@ You can also check out the dedicated app view, which enables easier search and f | [calls onAddColumn when a checkbox is checked](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | | [calls onRemoveColumn when a checkbox is unchecked](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | | [View selected](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | describe | | | -| [should render "view all" option when filterSelected is not enabled](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | -| [should render "view selected" option when filterSelected is not enabled](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | +| [should show "view all" option by default](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | +| [should render "view selected" option when previous selection was "view selected"](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | +| [should show "view all" option after the "view all" is selected](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | +| [should show only selected columns after the "view selected" option is selected](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | +| [should show all columns available after the "view all" option is selected](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | | [should open the view selector with button click](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | -| [should callback when "view all" option is clicked](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | -| [should callback when "view selected" option is clicked](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | +| [Searching columns](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | describe | | | +| [should find all columns match the search term](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | +| [should find all columns match the search term and are selected](x-pack/plugins/cloud_security_posture/public/components/cloud_security_data_table/fields_selector/fields_selector_table.test.tsx) | it | | | | [firstNonNullValue](x-pack/plugins/cloud_security_posture/public/components/cloud_security_grouping/utils/first_non_null_value.test.ts) | describe | | | | [returns the value itself for non-null single value](x-pack/plugins/cloud_security_posture/public/components/cloud_security_grouping/utils/first_non_null_value.test.ts) | it | | | | [returns undefined for a null single value](x-pack/plugins/cloud_security_posture/public/components/cloud_security_grouping/utils/first_non_null_value.test.ts) | it | | | @@ -207,10 +211,12 @@ You can also check out the dedicated app view, which enables easier search and f | [updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | | [Agentless](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | describe | | | | [should render setup technology selector for AWS and allow to select agent-based](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | +| [should render setup technology selector for GCP for organisation account type](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | +| [should render setup technology selector for GCP for single-account](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | +| [should render setup technology selector for Azure for Organisation type](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | +| [should render setup technology selector for Azure for Single Subscription type](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | | [should not render setup technology selector for KSPM](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | | [should not render setup technology selector for CNVM](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | -| [should not render setup technology selector for CSPM GCP](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | -| [should not render setup technology selector for CSPM Azure](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | | [renders Service principal with Client Certificate fields](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | | [updates Service principal with Client Certificate fields](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | | [should not render Service principal with Client Username and Password option](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx) | it | | | @@ -219,7 +225,10 @@ You can also check out the dedicated app view, which enables easier search and f | [useSetupTechnology](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | describe | | | | [create page flow](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | describe | | | | [initializes with AGENT_BASED technology](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | -| [sets to AGENTLESS when agentless is available](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | +| [sets to AGENTLESS when agentless is available and AWS cloud](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | +| [sets to AGENTLESS when agentless is available and GCP cloud](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | +| [sets to AGENTLESS when agentless is available and Azure cloud](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | +| [sets to AGENT_BASED when agentless is available but input is not supported for agentless](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | | [sets to AGENT_BASED when agentPolicyId differs from agentlessPolicyId](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | | [calls handleSetupTechnologyChange when setupTechnology changes](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | it | | | | [edit page flow](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/setup_technology_selector/use_setup_technology.test.ts) | describe | | | @@ -246,6 +255,17 @@ You can also check out the dedicated app view, which enables easier search and f | [should return "direct_access_key" for agentless](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | | [should return "assume_role" for agent-based, when cloudformation is not available](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | | [should return "cloud_formation" for agent-based, when cloudformation is available](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [should return "service_principal_with_client_secret" for agentless](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [shold return "arm_template" for agent-based, when arm_template is available](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [should return "managed_identity" for agent-based, when arm_template is not available](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [should return manual credentials-json credentials type for agentless](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [should return google_cloud_shell setup access for agent-based if cloud_shell_url is available](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [should return manual setup access for agent-based if cloud_shell_url is not available](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [Should return var item when key exist](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [Should return undefined when key is invalid](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [Should return undefined when datastream is undefined](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [Should return undefined when stream is undefined](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | +| [Should return undefined when stream.var is invalid](x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/utils.test.ts) | it | | | | [](x-pack/plugins/cloud_security_posture/public/pages/benchmarks/benchmarks_table.test.tsx) | describe | | | | [renders cis integration name](x-pack/plugins/cloud_security_posture/public/pages/benchmarks/benchmarks_table.test.tsx) | it | | | | [renders benchmark version](x-pack/plugins/cloud_security_posture/public/pages/benchmarks/benchmarks_table.test.tsx) | it | | | @@ -444,9 +464,9 @@ You can also check out the dedicated app view, which enables easier search and f ## Directory: x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture -**Total Tests:** 37 | **Skipped:** 0 (0.00%) | **Todo:** 0 (0.00%) +**Total Tests:** 37 | **Skipped:** 4 (10.81%) | **Todo:** 0 (0.00%) -![](https://img.shields.io/badge/FTR-blue) ![](https://img.shields.io/badge/SERVERLESS-pink) ![](https://img.shields.io/badge/API-INTEGRATION-purple) +![](https://img.shields.io/badge/FTR-blue) ![](https://img.shields.io/badge/SERVERLESS-pink) ![](https://img.shields.io/badge/API-INTEGRATION-purple) ![](https://img.shields.io/badge/HAS-SKIP-yellow)
    Test Details @@ -470,10 +490,10 @@ You can also check out the dedicated app view, which enables easier search and f | [Should return 200 status code and paginate rules with a limit of PerPage](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/find_csp_benchmark_rule.ts) | it | | | | [cloud_security_posture](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/index.ts) | describe | | | | [GET /internal/cloud_security_posture/status](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | describe | | | -| [STATUS = INDEXED TEST](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | describe | | | -| [Return kspm status indexed when logs-cloud_security_posture.findings_latest-default contains new kspm documents](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | it | | | -| [Return cspm status indexed when logs-cloud_security_posture.findings_latest-default contains new cspm documents](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | it | | | -| [Return vuln status indexed when logs-cloud_security_posture.vulnerabilities_latest-default contains new documents](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | it | | | +| [STATUS = INDEXED TEST](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Return kspm status indexed when logs-cloud_security_posture.findings_latest-default contains new kspm documents](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Return cspm status indexed when logs-cloud_security_posture.findings_latest-default contains new cspm documents](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Return vuln status indexed when logs-cloud_security_posture.vulnerabilities_latest-default contains new documents](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexed.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | | [GET /internal/cloud_security_posture/status](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexing.ts) | describe | | | | [STATUS = INDEXING TEST](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexing.ts) | describe | | | | [Return kspm status indexing when logs-cloud_security_posture.findings_latest-default doesn](x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/status/status_indexing.ts) | it | | | @@ -586,19 +606,19 @@ You can also check out the dedicated app view, which enables easier search and f ## Directory: x-pack/test/cloud_security_posture_api -**Total Tests:** 35 | **Skipped:** 0 (0.00%) | **Todo:** 0 (0.00%) +**Total Tests:** 35 | **Skipped:** 4 (11.43%) | **Todo:** 0 (0.00%) -![](https://img.shields.io/badge/FTR-blue) ![](https://img.shields.io/badge/API-INTEGRATION-purple) +![](https://img.shields.io/badge/FTR-blue) ![](https://img.shields.io/badge/API-INTEGRATION-purple) ![](https://img.shields.io/badge/HAS-SKIP-yellow)
    Test Details | Test Label | Type | Skipped | Todo | |------------|------|---------|------| -| [GET /internal/cloud_security_posture/benchmarks](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | describe | | | -| [Get Benchmark API](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | describe | | | -| [Verify cspm benchmark score is updated when muting rules](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | it | | | -| [Verify kspm benchmark score is updated when muting rules](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | it | | | +| [GET /internal/cloud_security_posture/benchmarks](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Get Benchmark API](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Verify cspm benchmark score is updated when muting rules](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Verify kspm benchmark score is updated when muting rules](x-pack/test/cloud_security_posture_api/routes/benchmarks.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | | [Verify update csp rules states API](x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts) | describe | | | | [mute benchmark rules successfully](x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts) | it | | | | [unmute rules successfully](x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts) | it | | | @@ -634,7 +654,7 @@ You can also check out the dedicated app view, which enables easier search and f ## Directory: x-pack/test/cloud_security_posture_functional -**Total Tests:** 137 | **Skipped:** 6 (4.38%) | **Todo:** 2 (1.46%) +**Total Tests:** 190 | **Skipped:** 37 (19.47%) | **Todo:** 2 (1.05%) ![](https://img.shields.io/badge/FTR-blue) ![](https://img.shields.io/badge/HAS-TODO-green) ![](https://img.shields.io/badge/HAS-SKIP-yellow) @@ -643,42 +663,95 @@ You can also check out the dedicated app view, which enables easier search and f | Test Label | Type | Skipped | Todo | |------------|------|---------|------| -| [Test adding Cloud Security Posture Integrations](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | describe | | | -| [CNVM AWS](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | describe | | | -| [Hyperlink on PostInstallation Modal should have the correct URL](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [CIS_AWS](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | describe | | | -| [Initial form state, AWS Org account, and CloudFormation should be selected by default](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Hyperlink on PostInstallation Modal should have the correct URL](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [CIS_GCP Organization](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | describe | | | -| [Switch between Manual and Google cloud shell](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Hyperlink on PostInstallation Modal should have the correct URL](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [CIS_GCP Single](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | describe | | | -| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID, it should use default value](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID, it should use that value](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Add Agent FLyout - Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [On add agent modal, if user chose Google Cloud Shell as their setup access; a google cloud shell modal should show up and clicking on the launch button will redirect user to Google cloud shell page](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Users are able to add CIS_GCP Integration with Manual settings using Credentials File](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Users are able to switch credentials_type from/to Credential JSON fields ](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Users are able to add CIS_GCP Integration with Manual settings using Credentials JSON](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | -| [Users are able to switch credentials_type from/to Credential File fields ](x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts) | it | | | +| [Test adding Cloud Security Posture Integrations CNVM](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts) | describe | | | +| [CNVM AWS](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts) | describe | | | +| [Hyperlink on PostInstallation Modal should have the correct URL](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts) | it | | | +| [On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts) | it | | | +| [Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts) | it | | | +| [Test adding Cloud Security Posture Integrations CSPM AWS](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Organization Cloud Formation](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [Initial form state, AWS Org account, and CloudFormation should be selected by default](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [Hyperlink on PostInstallation Modal should have the correct URL](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Organization Manual Assume Role](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Organization Manual Assume Role Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Organization Manual Direct Access](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Organization Manual Direct Access Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Organization Manual Temporary Keys](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Organization Manual Temporary Keys Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Organization Manual Shared Access](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Organization Manual Shared Access Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Single Cloud Formation](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Single Cloud Formation workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Single Manual Assume Role](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Single Manual Assume Role Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Single Manual Direct Access](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Single Manual Direct Access Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Single Manual Temporary Keys](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Single Manual Temporary Keys Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [CIS_AWS Single Manual Shared Access](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | describe | | | +| [CIS_AWS Single Manual Shared Access Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts) | it | | | +| [Test adding Cloud Security Posture Integrations CSPM AZURE](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Organization ARM Template](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Organization ARM Template Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Azure Organization Manual Managed Identity](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Organization Manual Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Azure Organization Manual Service Principle with Client Secret](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Organization Manual Service Principle with Client Secret Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Azure Organization Manual Service Principle with Client Certificate](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Organization Manual Service Principle with Client Certificate Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Azure Single ARM Template](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Single ARM Template Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Azure Single Manual Managed Identity](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Single Manual Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Azure Single Manual Service Principle with Client Secret](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Single Manual Service Principle with Client Secret Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Azure Single Manual Service Principle with Client Certificate](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | describe | | | +| [Azure Single Manual Service Principle with Client Certificate Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts) | it | | | +| [Test adding Cloud Security Posture Integrations CSPM GCP](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | describe | | | +| [CIS_GCP Organization](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | describe | | | +| [Switch between Manual and Google cloud shell](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Hyperlink on PostInstallation Modal should have the correct URL](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [CIS_GCP Organization Credentials File](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | describe | | | +| [CIS_GCP Organization Credentials File workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [CIS_GCP Organization Credentials JSON](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | describe | | | +| [CIS_GCP Organization Credentials JSON workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [CIS_GCP Single](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | describe | | | +| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID, it should use default value](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID, it should use that value](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Add Agent FLyout - Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [On add agent modal, if user chose Google Cloud Shell as their setup access; a google cloud shell modal should show up and clicking on the launch button will redirect user to Google cloud shell page](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Users are able to add CIS_GCP Integration with Manual settings using Credentials File](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Users are able to switch credentials_type from/to Credential JSON fields ](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Users are able to add CIS_GCP Integration with Manual settings using Credentials JSON](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Users are able to switch credentials_type from/to Credential File fields ](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts) | it | | | +| [Test adding Cloud Security Posture Integrations KSPM EKS](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | describe | | | +| [KSPM EKS Assume Role](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | describe | | | +| [KSPM EKS Assume Role workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | it | | | +| [KSPM EKS Direct Access](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | describe | | | +| [KSPM EKS Direct Access Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | it | | | +| [KSPM EKS Temporary Keys](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | describe | | | +| [KSPM EKS Temporary Keys Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | it | | | +| [KSPM EKS Shared Credentials](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | describe | | | +| [KSPM EKS Shared Credentials Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts) | it | | | +| [Test adding Cloud Security Posture Integrations KSPM K8S](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts) | describe | | | +| [KSPM K8S](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts) | describe | | | +| [KSPM K8S Workflow](x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts) | it | | | | [Cloud Posture Dashboard Page](x-pack/test/cloud_security_posture_functional/pages/compliance_dashboard.ts) | describe | | | | [Kubernetes Dashboard](x-pack/test/cloud_security_posture_functional/pages/compliance_dashboard.ts) | describe | | | | [displays accurate summary compliance score](x-pack/test/cloud_security_posture_functional/pages/compliance_dashboard.ts) | it | | | | [TODO - Cloud Dashboard](x-pack/test/cloud_security_posture_functional/pages/compliance_dashboard.ts) | describe | | ![](https://img.shields.io/badge/todo-green) | | [todo - displays accurate summary compliance score](x-pack/test/cloud_security_posture_functional/pages/compliance_dashboard.ts) | it | | ![](https://img.shields.io/badge/todo-green) | | [Findings Page - Alerts](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | describe | | | -| [Create detection rule](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | describe | | | -| [Creates a detection rule from the Take Action button and navigates to rule page](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | it | | | -| [Creates a detection rule from the Alerts section and navigates to rule page](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | it | | | +| [Create detection rule](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Creates a detection rule from the Take Action button and navigates to rule page](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Creates a detection rule from the Alerts section and navigates to rule page](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | | [Rule details](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | describe | | | | [The rule page contains the expected matching data](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | it | | | | [Navigation](x-pack/test/cloud_security_posture_functional/pages/findings_alerts.ts) | describe | | | @@ -724,34 +797,34 @@ You can also check out the dedicated app view, which enables easier search and f | [Findings Page - support muting rules](x-pack/test/cloud_security_posture_functional/pages/findings.ts) | describe | | | | [verify only enabled rules appears](x-pack/test/cloud_security_posture_functional/pages/findings.ts) | it | | | | [Cloud Security Posture](x-pack/test/cloud_security_posture_functional/pages/index.ts) | describe | | | -| [Cloud Posture Rules Page](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | | | -| [Rules Page - Rules Counters](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | | | -| [Shows posture score when there are findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Clicking the posture score button leads to the dashboard](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Shows integrations count when there are findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Clicking the integrations counter button leads to the integration page](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Shows the failed findings counter when there are findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Clicking the failed findings button leads to the findings page](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Shows the disabled rules count](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Clicking the disabled rules button shows enables the disabled filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Shows empty state when there are no findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Rules Page - Bulk Action buttons](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | | | -| [It should disable Enable option when there are all rules selected are already enabled ](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [It should disable both Enable and Disable options when there are no rules selected](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [It should disable Disable option when there are all rules selected are already Disabled](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Both option should not be disabled if selected rules contains both enabled and disabled rules](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Rules Page - Enable Rules and Disabled Rules Filter Toggle](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | | | -| [Should only display Enabled rules when Enabled Rules filter is ON](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Should only display Disabled rules when Disabled Rules filter is ON](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Rules Page - CIS Section & Rule Number filters](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | | | -| [Table should only show result that has the same section as in the Section filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Table should only show result that has the same section as in the Rule number filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Table should only show result that passes both Section and Rule number filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Rules Page - Flyout](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | | | -| [Users are able to Enable/Disable Rule from Switch on Rule Flyout](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Alerts section of Rules Flyout shows Disabled text when Rules are disabled](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Users are able to Enable/Disable Rule from Take Action on Rule Flyout](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | -| [Alerts section of Rules Flyout shows Detection Rule Counter component when Rules are enabled](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | | | +| [Cloud Posture Rules Page](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Rules Page - Rules Counters](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Shows posture score when there are findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Clicking the posture score button leads to the dashboard](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Shows integrations count when there are findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Clicking the integrations counter button leads to the integration page](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Shows the failed findings counter when there are findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Clicking the failed findings button leads to the findings page](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Shows the disabled rules count](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Clicking the disabled rules button shows enables the disabled filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Shows empty state when there are no findings](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Rules Page - Bulk Action buttons](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [It should disable Enable option when there are all rules selected are already enabled ](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [It should disable both Enable and Disable options when there are no rules selected](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [It should disable Disable option when there are all rules selected are already Disabled](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Both option should not be disabled if selected rules contains both enabled and disabled rules](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Rules Page - Enable Rules and Disabled Rules Filter Toggle](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Should only display Enabled rules when Enabled Rules filter is ON](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Should only display Disabled rules when Disabled Rules filter is ON](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Rules Page - CIS Section & Rule Number filters](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Table should only show result that has the same section as in the Section filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Table should only show result that has the same section as in the Rule number filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Table should only show result that passes both Section and Rule number filter](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Rules Page - Flyout](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | describe | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Users are able to Enable/Disable Rule from Switch on Rule Flyout](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Alerts section of Rules Flyout shows Disabled text when Rules are disabled](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Users are able to Enable/Disable Rule from Take Action on Rule Flyout](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | +| [Alerts section of Rules Flyout shows Detection Rule Counter component when Rules are enabled](x-pack/test/cloud_security_posture_functional/pages/rules.ts) | it | ![](https://img.shields.io/badge/skipped-yellow) | | | [Vulnerabilities Page - Grouping](x-pack/test/cloud_security_posture_functional/pages/vulnerabilities_grouping.ts) | describe | | | | [Default Grouping](x-pack/test/cloud_security_posture_functional/pages/vulnerabilities_grouping.ts) | describe | | | | [groups vulnerabilities by cloud account and sort by number of vulnerabilities desc](x-pack/test/cloud_security_posture_functional/pages/vulnerabilities_grouping.ts) | it | | | diff --git a/x-pack/plugins/cloud_security_posture/common/scripts/__auto_generated_csp_test_log.json b/x-pack/plugins/cloud_security_posture/common/scripts/__auto_generated_csp_test_log.json index 7ed63d28af437..98a7c6629ee7e 100644 --- a/x-pack/plugins/cloud_security_posture/common/scripts/__auto_generated_csp_test_log.json +++ b/x-pack/plugins/cloud_security_posture/common/scripts/__auto_generated_csp_test_log.json @@ -2488,11 +2488,15 @@ " it('calls onAddColumn when a checkbox is checked')", " it('calls onRemoveColumn when a checkbox is unchecked')", " describe('View selected')", - " it('should render \"view all\" option when filterSelected is not enabled')", - " it('should render \"view selected\" option when filterSelected is not enabled')", + " it('should show \"view all\" option by default')", + " it('should render \"view selected\" option when previous selection was \"view selected\"')", + " it('should show \"view all\" option after the \"view all\" is selected')", + " it('should show only selected columns after the \"view selected\" option is selected')", + " it('should show all columns available after the \"view all\" option is selected')", " it('should open the view selector with button click')", - " it('should callback when \"view all\" option is clicked')", - " it('should callback when \"view selected\" option is clicked')" + " describe('Searching columns')", + " it('should find all columns match the search term')", + " it('should find all columns match the search term and are selected')" ], "testSuits": [ { @@ -2546,20 +2550,50 @@ "isTodo": false }, { - "id": "should-render-\"view-all\"-option-when-filterselected-is-not-enabled", - "rawLine": " it('should render \"view all\" option when filterSelected is not enabled', () => {", - "line": " it('should render \"view all\" option when filterSelected is not enabled')", - "label": "should render \"view all\" option when filterSelected is not enabled", + "id": "should-show-\"view-all\"-option-by-default", + "rawLine": " it('should show \"view all\" option by default', () => {", + "line": " it('should show \"view all\" option by default')", + "label": "should show \"view all\" option by default", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-render-\"view-selected\"-option-when-filterselected-is-not-enabled", - "rawLine": " it('should render \"view selected\" option when filterSelected is not enabled', () => {", - "line": " it('should render \"view selected\" option when filterSelected is not enabled')", - "label": "should render \"view selected\" option when filterSelected is not enabled", + "id": "should-render-\"view-selected\"-option-when-previous-selection-was-\"view-selected\"", + "rawLine": " it('should render \"view selected\" option when previous selection was \"view selected\"', () => {", + "line": " it('should render \"view selected\" option when previous selection was \"view selected\"')", + "label": "should render \"view selected\" option when previous selection was \"view selected\"", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-show-\"view-all\"-option-after-the-\"view-all\"-is-selected", + "rawLine": " it('should show \"view all\" option after the \"view all\" is selected', async () => {", + "line": " it('should show \"view all\" option after the \"view all\" is selected')", + "label": "should show \"view all\" option after the \"view all\" is selected", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-show-only-selected-columns-after-the-\"view-selected\"-option-is-selected", + "rawLine": " it('should show only selected columns after the \"view selected\" option is selected', async () => {", + "line": " it('should show only selected columns after the \"view selected\" option is selected')", + "label": "should show only selected columns after the \"view selected\" option is selected", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-show-all-columns-available-after-the-\"view-all\"-option-is-selected", + "rawLine": " it('should show all columns available after the \"view all\" option is selected', async () => {", + "line": " it('should show all columns available after the \"view all\" option is selected')", + "label": "should show all columns available after the \"view all\" option is selected", "indent": 4, "type": "it", "isSkipped": false, @@ -2576,20 +2610,30 @@ "isTodo": false }, { - "id": "should-callback-when-\"view-all\"-option-is-clicked", - "rawLine": " it('should callback when \"view all\" option is clicked', async () => {", - "line": " it('should callback when \"view all\" option is clicked')", - "label": "should callback when \"view all\" option is clicked", + "id": "searching-columns", + "rawLine": " describe('Searching columns', () => {", + "line": " describe('Searching columns')", + "label": "Searching columns", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-find-all-columns-match-the-search-term", + "rawLine": " it('should find all columns match the search term', async () => {", + "line": " it('should find all columns match the search term')", + "label": "should find all columns match the search term", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-callback-when-\"view-selected\"-option-is-clicked", - "rawLine": " it('should callback when \"view selected\" option is clicked', async () => {", - "line": " it('should callback when \"view selected\" option is clicked')", - "label": "should callback when \"view selected\" option is clicked", + "id": "should-find-all-columns-match-the-search-term-and-are-selected", + "rawLine": " it('should find all columns match the search term and are selected', async () => {", + "line": " it('should find all columns match the search term and are selected')", + "label": "should find all columns match the search term and are selected", "indent": 4, "type": "it", "isSkipped": false, @@ -2648,20 +2692,50 @@ "isTodo": false, "children": [ { - "id": "should-render-\"view-all\"-option-when-filterselected-is-not-enabled", - "rawLine": " it('should render \"view all\" option when filterSelected is not enabled', () => {", - "line": " it('should render \"view all\" option when filterSelected is not enabled')", - "label": "should render \"view all\" option when filterSelected is not enabled", + "id": "should-show-\"view-all\"-option-by-default", + "rawLine": " it('should show \"view all\" option by default', () => {", + "line": " it('should show \"view all\" option by default')", + "label": "should show \"view all\" option by default", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-render-\"view-selected\"-option-when-previous-selection-was-\"view-selected\"", + "rawLine": " it('should render \"view selected\" option when previous selection was \"view selected\"', () => {", + "line": " it('should render \"view selected\" option when previous selection was \"view selected\"')", + "label": "should render \"view selected\" option when previous selection was \"view selected\"", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-show-\"view-all\"-option-after-the-\"view-all\"-is-selected", + "rawLine": " it('should show \"view all\" option after the \"view all\" is selected', async () => {", + "line": " it('should show \"view all\" option after the \"view all\" is selected')", + "label": "should show \"view all\" option after the \"view all\" is selected", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-show-only-selected-columns-after-the-\"view-selected\"-option-is-selected", + "rawLine": " it('should show only selected columns after the \"view selected\" option is selected', async () => {", + "line": " it('should show only selected columns after the \"view selected\" option is selected')", + "label": "should show only selected columns after the \"view selected\" option is selected", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-render-\"view-selected\"-option-when-filterselected-is-not-enabled", - "rawLine": " it('should render \"view selected\" option when filterSelected is not enabled', () => {", - "line": " it('should render \"view selected\" option when filterSelected is not enabled')", - "label": "should render \"view selected\" option when filterSelected is not enabled", + "id": "should-show-all-columns-available-after-the-\"view-all\"-option-is-selected", + "rawLine": " it('should show all columns available after the \"view all\" option is selected', async () => {", + "line": " it('should show all columns available after the \"view all\" option is selected')", + "label": "should show all columns available after the \"view all\" option is selected", "indent": 4, "type": "it", "isSkipped": false, @@ -2676,22 +2750,34 @@ "type": "it", "isSkipped": false, "isTodo": false - }, + } + ] + }, + { + "id": "searching-columns", + "rawLine": " describe('Searching columns', () => {", + "line": " describe('Searching columns')", + "label": "Searching columns", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ { - "id": "should-callback-when-\"view-all\"-option-is-clicked", - "rawLine": " it('should callback when \"view all\" option is clicked', async () => {", - "line": " it('should callback when \"view all\" option is clicked')", - "label": "should callback when \"view all\" option is clicked", + "id": "should-find-all-columns-match-the-search-term", + "rawLine": " it('should find all columns match the search term', async () => {", + "line": " it('should find all columns match the search term')", + "label": "should find all columns match the search term", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-callback-when-\"view-selected\"-option-is-clicked", - "rawLine": " it('should callback when \"view selected\" option is clicked', async () => {", - "line": " it('should callback when \"view selected\" option is clicked')", - "label": "should callback when \"view selected\" option is clicked", + "id": "should-find-all-columns-match-the-search-term-and-are-selected", + "rawLine": " it('should find all columns match the search term and are selected', async () => {", + "line": " it('should find all columns match the search term and are selected')", + "label": "should find all columns match the search term and are selected", "indent": 4, "type": "it", "isSkipped": false, @@ -3059,10 +3145,12 @@ " it(`updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`)", " describe('Agentless')", " it('should render setup technology selector for AWS and allow to select agent-based')", + " it('should render setup technology selector for GCP for organisation account type')", + " it('should render setup technology selector for GCP for single-account')", + " it('should render setup technology selector for Azure for Organisation type')", + " it('should render setup technology selector for Azure for Single Subscription type')", " it('should not render setup technology selector for KSPM')", " it('should not render setup technology selector for CNVM')", - " it('should not render setup technology selector for CSPM GCP')", - " it('should not render setup technology selector for CSPM Azure')", " it(`renders Service principal with Client Certificate fields`)", " it(`updates Service principal with Client Certificate fields`)", " it(`should not render Service principal with Client Username and Password option`)", @@ -3252,7 +3340,7 @@ }, { "id": "renders-${cloudbeat_eks}-direct-access-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_EKS} Direct Access Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_EKS} Direct Access Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_EKS} Direct Access Keys fields`)", "label": "renders ${CLOUDBEAT_EKS} Direct Access Keys fields", "indent": 4, @@ -3262,7 +3350,7 @@ }, { "id": "updates-${cloudbeat_eks}-direct-access-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_EKS} Direct Access Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_EKS} Direct Access Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_EKS} Direct Access Keys fields`)", "label": "updates ${CLOUDBEAT_EKS} Direct Access Keys fields", "indent": 4, @@ -3272,7 +3360,7 @@ }, { "id": "renders-${cloudbeat_eks}-temporary-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_EKS} Temporary Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_EKS} Temporary Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_EKS} Temporary Keys fields`)", "label": "renders ${CLOUDBEAT_EKS} Temporary Keys fields", "indent": 4, @@ -3282,7 +3370,7 @@ }, { "id": "updates-${cloudbeat_eks}-temporary-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_EKS} Temporary Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_EKS} Temporary Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_EKS} Temporary Keys fields`)", "label": "updates ${CLOUDBEAT_EKS} Temporary Keys fields", "indent": 4, @@ -3402,7 +3490,7 @@ }, { "id": "renders-${cloudbeat_aws}-direct-access-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_AWS} Direct Access Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_AWS} Direct Access Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_AWS} Direct Access Keys fields`)", "label": "renders ${CLOUDBEAT_AWS} Direct Access Keys fields", "indent": 4, @@ -3412,7 +3500,7 @@ }, { "id": "updates-${cloudbeat_aws}-direct-access-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_AWS} Direct Access Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_AWS} Direct Access Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_AWS} Direct Access Keys fields`)", "label": "updates ${CLOUDBEAT_AWS} Direct Access Keys fields", "indent": 4, @@ -3422,7 +3510,7 @@ }, { "id": "renders-${cloudbeat_aws}-temporary-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_AWS} Temporary Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_AWS} Temporary Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_AWS} Temporary Keys fields`)", "label": "renders ${CLOUDBEAT_AWS} Temporary Keys fields", "indent": 4, @@ -3432,7 +3520,7 @@ }, { "id": "updates-${cloudbeat_aws}-temporary-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_AWS} Temporary Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_AWS} Temporary Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_AWS} Temporary Keys fields`)", "label": "updates ${CLOUDBEAT_AWS} Temporary Keys fields", "indent": 4, @@ -3662,7 +3750,7 @@ }, { "id": "renders-${cloudbeat_azure}-service-principal-with-client-secret-fields", - "rawLine": " it(`renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`)", "label": "renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields", "indent": 4, @@ -3672,7 +3760,7 @@ }, { "id": "updates-${cloudbeat_azure}-service-principal-with-client-secret-fields", - "rawLine": " it(`updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`)", "label": "updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields", "indent": 4, @@ -3701,40 +3789,60 @@ "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-kspm", - "rawLine": " it('should not render setup technology selector for KSPM', () => {", - "line": " it('should not render setup technology selector for KSPM')", - "label": "should not render setup technology selector for KSPM", + "id": "should-render-setup-technology-selector-for-gcp-for-organisation-account-type", + "rawLine": " it('should render setup technology selector for GCP for organisation account type', async () => {", + "line": " it('should render setup technology selector for GCP for organisation account type')", + "label": "should render setup technology selector for GCP for organisation account type", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-cnvm", - "rawLine": " it('should not render setup technology selector for CNVM', () => {", - "line": " it('should not render setup technology selector for CNVM')", - "label": "should not render setup technology selector for CNVM", + "id": "should-render-setup-technology-selector-for-gcp-for-single-account", + "rawLine": " it('should render setup technology selector for GCP for single-account', async () => {", + "line": " it('should render setup technology selector for GCP for single-account')", + "label": "should render setup technology selector for GCP for single-account", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-render-setup-technology-selector-for-azure-for-organisation-type", + "rawLine": " it('should render setup technology selector for Azure for Organisation type', async () => {", + "line": " it('should render setup technology selector for Azure for Organisation type')", + "label": "should render setup technology selector for Azure for Organisation type", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-render-setup-technology-selector-for-azure-for-single-subscription-type", + "rawLine": " it('should render setup technology selector for Azure for Single Subscription type', async () => {", + "line": " it('should render setup technology selector for Azure for Single Subscription type')", + "label": "should render setup technology selector for Azure for Single Subscription type", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-cspm-gcp", - "rawLine": " it('should not render setup technology selector for CSPM GCP', () => {", - "line": " it('should not render setup technology selector for CSPM GCP')", - "label": "should not render setup technology selector for CSPM GCP", + "id": "should-not-render-setup-technology-selector-for-kspm", + "rawLine": " it('should not render setup technology selector for KSPM', () => {", + "line": " it('should not render setup technology selector for KSPM')", + "label": "should not render setup technology selector for KSPM", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-cspm-azure", - "rawLine": " it('should not render setup technology selector for CSPM Azure', () => {", - "line": " it('should not render setup technology selector for CSPM Azure')", - "label": "should not render setup technology selector for CSPM Azure", + "id": "should-not-render-setup-technology-selector-for-cnvm", + "rawLine": " it('should not render setup technology selector for CNVM', () => {", + "line": " it('should not render setup technology selector for CNVM')", + "label": "should not render setup technology selector for CNVM", "indent": 4, "type": "it", "isSkipped": false, @@ -3742,7 +3850,7 @@ }, { "id": "renders-service-principal-with-client-certificate-fields", - "rawLine": " it(`renders Service principal with Client Certificate fields`, () => {", + "rawLine": " it(`renders Service principal with Client Certificate fields`, async () => {", "line": " it(`renders Service principal with Client Certificate fields`)", "label": "renders Service principal with Client Certificate fields", "indent": 2, @@ -3752,7 +3860,7 @@ }, { "id": "updates-service-principal-with-client-certificate-fields", - "rawLine": " it(`updates Service principal with Client Certificate fields`, () => {", + "rawLine": " it(`updates Service principal with Client Certificate fields`, async () => {", "line": " it(`updates Service principal with Client Certificate fields`)", "label": "updates Service principal with Client Certificate fields", "indent": 2, @@ -3976,7 +4084,7 @@ }, { "id": "renders-${cloudbeat_eks}-direct-access-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_EKS} Direct Access Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_EKS} Direct Access Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_EKS} Direct Access Keys fields`)", "label": "renders ${CLOUDBEAT_EKS} Direct Access Keys fields", "indent": 4, @@ -3986,7 +4094,7 @@ }, { "id": "updates-${cloudbeat_eks}-direct-access-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_EKS} Direct Access Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_EKS} Direct Access Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_EKS} Direct Access Keys fields`)", "label": "updates ${CLOUDBEAT_EKS} Direct Access Keys fields", "indent": 4, @@ -3996,7 +4104,7 @@ }, { "id": "renders-${cloudbeat_eks}-temporary-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_EKS} Temporary Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_EKS} Temporary Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_EKS} Temporary Keys fields`)", "label": "renders ${CLOUDBEAT_EKS} Temporary Keys fields", "indent": 4, @@ -4006,7 +4114,7 @@ }, { "id": "updates-${cloudbeat_eks}-temporary-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_EKS} Temporary Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_EKS} Temporary Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_EKS} Temporary Keys fields`)", "label": "updates ${CLOUDBEAT_EKS} Temporary Keys fields", "indent": 4, @@ -4128,7 +4236,7 @@ }, { "id": "renders-${cloudbeat_aws}-direct-access-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_AWS} Direct Access Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_AWS} Direct Access Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_AWS} Direct Access Keys fields`)", "label": "renders ${CLOUDBEAT_AWS} Direct Access Keys fields", "indent": 4, @@ -4138,7 +4246,7 @@ }, { "id": "updates-${cloudbeat_aws}-direct-access-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_AWS} Direct Access Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_AWS} Direct Access Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_AWS} Direct Access Keys fields`)", "label": "updates ${CLOUDBEAT_AWS} Direct Access Keys fields", "indent": 4, @@ -4148,7 +4256,7 @@ }, { "id": "renders-${cloudbeat_aws}-temporary-keys-fields", - "rawLine": " it(`renders ${CLOUDBEAT_AWS} Temporary Keys fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_AWS} Temporary Keys fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_AWS} Temporary Keys fields`)", "label": "renders ${CLOUDBEAT_AWS} Temporary Keys fields", "indent": 4, @@ -4158,7 +4266,7 @@ }, { "id": "updates-${cloudbeat_aws}-temporary-keys-fields", - "rawLine": " it(`updates ${CLOUDBEAT_AWS} Temporary Keys fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_AWS} Temporary Keys fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_AWS} Temporary Keys fields`)", "label": "updates ${CLOUDBEAT_AWS} Temporary Keys fields", "indent": 4, @@ -4394,7 +4502,7 @@ }, { "id": "renders-${cloudbeat_azure}-service-principal-with-client-secret-fields", - "rawLine": " it(`renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, () => {", + "rawLine": " it(`renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, async () => {", "line": " it(`renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`)", "label": "renders ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields", "indent": 4, @@ -4404,7 +4512,7 @@ }, { "id": "updates-${cloudbeat_azure}-service-principal-with-client-secret-fields", - "rawLine": " it(`updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, () => {", + "rawLine": " it(`updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`, async () => {", "line": " it(`updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields`)", "label": "updates ${CLOUDBEAT_AZURE} Service Principal with Client Secret fields", "indent": 4, @@ -4435,40 +4543,60 @@ "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-kspm", - "rawLine": " it('should not render setup technology selector for KSPM', () => {", - "line": " it('should not render setup technology selector for KSPM')", - "label": "should not render setup technology selector for KSPM", + "id": "should-render-setup-technology-selector-for-gcp-for-organisation-account-type", + "rawLine": " it('should render setup technology selector for GCP for organisation account type', async () => {", + "line": " it('should render setup technology selector for GCP for organisation account type')", + "label": "should render setup technology selector for GCP for organisation account type", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-cnvm", - "rawLine": " it('should not render setup technology selector for CNVM', () => {", - "line": " it('should not render setup technology selector for CNVM')", - "label": "should not render setup technology selector for CNVM", + "id": "should-render-setup-technology-selector-for-gcp-for-single-account", + "rawLine": " it('should render setup technology selector for GCP for single-account', async () => {", + "line": " it('should render setup technology selector for GCP for single-account')", + "label": "should render setup technology selector for GCP for single-account", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-render-setup-technology-selector-for-azure-for-organisation-type", + "rawLine": " it('should render setup technology selector for Azure for Organisation type', async () => {", + "line": " it('should render setup technology selector for Azure for Organisation type')", + "label": "should render setup technology selector for Azure for Organisation type", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-render-setup-technology-selector-for-azure-for-single-subscription-type", + "rawLine": " it('should render setup technology selector for Azure for Single Subscription type', async () => {", + "line": " it('should render setup technology selector for Azure for Single Subscription type')", + "label": "should render setup technology selector for Azure for Single Subscription type", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-cspm-gcp", - "rawLine": " it('should not render setup technology selector for CSPM GCP', () => {", - "line": " it('should not render setup technology selector for CSPM GCP')", - "label": "should not render setup technology selector for CSPM GCP", + "id": "should-not-render-setup-technology-selector-for-kspm", + "rawLine": " it('should not render setup technology selector for KSPM', () => {", + "line": " it('should not render setup technology selector for KSPM')", + "label": "should not render setup technology selector for KSPM", "indent": 4, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "should-not-render-setup-technology-selector-for-cspm-azure", - "rawLine": " it('should not render setup technology selector for CSPM Azure', () => {", - "line": " it('should not render setup technology selector for CSPM Azure')", - "label": "should not render setup technology selector for CSPM Azure", + "id": "should-not-render-setup-technology-selector-for-cnvm", + "rawLine": " it('should not render setup technology selector for CNVM', () => {", + "line": " it('should not render setup technology selector for CNVM')", + "label": "should not render setup technology selector for CNVM", "indent": 4, "type": "it", "isSkipped": false, @@ -4478,7 +4606,7 @@ }, { "id": "renders-service-principal-with-client-certificate-fields", - "rawLine": " it(`renders Service principal with Client Certificate fields`, () => {", + "rawLine": " it(`renders Service principal with Client Certificate fields`, async () => {", "line": " it(`renders Service principal with Client Certificate fields`)", "label": "renders Service principal with Client Certificate fields", "indent": 2, @@ -4488,7 +4616,7 @@ }, { "id": "updates-service-principal-with-client-certificate-fields", - "rawLine": " it(`updates Service principal with Client Certificate fields`, () => {", + "rawLine": " it(`updates Service principal with Client Certificate fields`, async () => {", "line": " it(`updates Service principal with Client Certificate fields`)", "label": "updates Service principal with Client Certificate fields", "indent": 2, @@ -4541,7 +4669,10 @@ "describe('useSetupTechnology')", " describe('create page flow')", " it('initializes with AGENT_BASED technology')", - " it('sets to AGENTLESS when agentless is available')", + " it('sets to AGENTLESS when agentless is available and AWS cloud')", + " it('sets to AGENTLESS when agentless is available and GCP cloud')", + " it('sets to AGENTLESS when agentless is available and Azure cloud')", + " it('sets to AGENT_BASED when agentless is available but input is not supported for agentless')", " it('sets to AGENT_BASED when agentPolicyId differs from agentlessPolicyId')", " it('calls handleSetupTechnologyChange when setupTechnology changes')", " describe('edit page flow')", @@ -4582,10 +4713,40 @@ "isTodo": false }, { - "id": "sets-to-agentless-when-agentless-is-available", - "rawLine": " it('sets to AGENTLESS when agentless is available', () => {", - "line": " it('sets to AGENTLESS when agentless is available')", - "label": "sets to AGENTLESS when agentless is available", + "id": "sets-to-agentless-when-agentless-is-available-and-aws-cloud", + "rawLine": " it('sets to AGENTLESS when agentless is available and AWS cloud', () => {", + "line": " it('sets to AGENTLESS when agentless is available and AWS cloud')", + "label": "sets to AGENTLESS when agentless is available and AWS cloud", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "sets-to-agentless-when-agentless-is-available-and-gcp-cloud", + "rawLine": " it('sets to AGENTLESS when agentless is available and GCP cloud', () => {", + "line": " it('sets to AGENTLESS when agentless is available and GCP cloud')", + "label": "sets to AGENTLESS when agentless is available and GCP cloud", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "sets-to-agentless-when-agentless-is-available-and-azure-cloud", + "rawLine": " it('sets to AGENTLESS when agentless is available and Azure cloud', () => {", + "line": " it('sets to AGENTLESS when agentless is available and Azure cloud')", + "label": "sets to AGENTLESS when agentless is available and Azure cloud", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "sets-to-agent_based-when-agentless-is-available-but-input-is-not-supported-for-agentless", + "rawLine": " it('sets to AGENT_BASED when agentless is available but input is not supported for agentless', () => {", + "line": " it('sets to AGENT_BASED when agentless is available but input is not supported for agentless')", + "label": "sets to AGENT_BASED when agentless is available but input is not supported for agentless", "indent": 4, "type": "it", "isSkipped": false, @@ -4694,10 +4855,40 @@ "isTodo": false }, { - "id": "sets-to-agentless-when-agentless-is-available", - "rawLine": " it('sets to AGENTLESS when agentless is available', () => {", - "line": " it('sets to AGENTLESS when agentless is available')", - "label": "sets to AGENTLESS when agentless is available", + "id": "sets-to-agentless-when-agentless-is-available-and-aws-cloud", + "rawLine": " it('sets to AGENTLESS when agentless is available and AWS cloud', () => {", + "line": " it('sets to AGENTLESS when agentless is available and AWS cloud')", + "label": "sets to AGENTLESS when agentless is available and AWS cloud", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "sets-to-agentless-when-agentless-is-available-and-gcp-cloud", + "rawLine": " it('sets to AGENTLESS when agentless is available and GCP cloud', () => {", + "line": " it('sets to AGENTLESS when agentless is available and GCP cloud')", + "label": "sets to AGENTLESS when agentless is available and GCP cloud", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "sets-to-agentless-when-agentless-is-available-and-azure-cloud", + "rawLine": " it('sets to AGENTLESS when agentless is available and Azure cloud', () => {", + "line": " it('sets to AGENTLESS when agentless is available and Azure cloud')", + "label": "sets to AGENTLESS when agentless is available and Azure cloud", + "indent": 4, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "sets-to-agent_based-when-agentless-is-available-but-input-is-not-supported-for-agentless", + "rawLine": " it('sets to AGENT_BASED when agentless is available but input is not supported for agentless', () => {", + "line": " it('sets to AGENT_BASED when agentless is available but input is not supported for agentless')", + "label": "sets to AGENT_BASED when agentless is available but input is not supported for agentless", "indent": 4, "type": "it", "isSkipped": false, @@ -4811,7 +5002,21 @@ "describe('getDefaultAwsCredentialsType')", " it('should return \"direct_access_key\" for agentless')", " it('should return \"assume_role\" for agent-based, when cloudformation is not available')", - " it('should return \"cloud_formation\" for agent-based, when cloudformation is available')" + " it('should return \"cloud_formation\" for agent-based, when cloudformation is available')", + "describe('getDefaultAzureCredentialsType')", + " it('should return \"service_principal_with_client_secret\" for agentless')", + " it('shold return \"arm_template\" for agent-based, when arm_template is available')", + " it('should return \"managed_identity\" for agent-based, when arm_template is not available')", + "describe('getDefaultGcpHiddenVars')", + " it('should return manual credentials-json credentials type for agentless')", + " it('should return google_cloud_shell setup access for agent-based if cloud_shell_url is available')", + " it('should return manual setup access for agent-based if cloud_shell_url is not available')", + "describe('findVariableDef')", + " it('Should return var item when key exist')", + " it('Should return undefined when key is invalid')", + " it('Should return undefined when datastream is undefined')", + " it('Should return undefined when stream is undefined')", + " it('Should return undefined when stream.var is invalid')" ], "testSuits": [ { @@ -5043,6 +5248,146 @@ "type": "it", "isSkipped": false, "isTodo": false + }, + { + "id": "getdefaultazurecredentialstype", + "rawLine": "describe('getDefaultAzureCredentialsType', () => {", + "line": "describe('getDefaultAzureCredentialsType')", + "label": "getDefaultAzureCredentialsType", + "indent": 0, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-\"service_principal_with_client_secret\"-for-agentless", + "rawLine": " it('should return \"service_principal_with_client_secret\" for agentless', () => {", + "line": " it('should return \"service_principal_with_client_secret\" for agentless')", + "label": "should return \"service_principal_with_client_secret\" for agentless", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "shold-return-\"arm_template\"-for-agent-based,-when-arm_template-is-available", + "rawLine": " it('shold return \"arm_template\" for agent-based, when arm_template is available', () => {", + "line": " it('shold return \"arm_template\" for agent-based, when arm_template is available')", + "label": "shold return \"arm_template\" for agent-based, when arm_template is available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-\"managed_identity\"-for-agent-based,-when-arm_template-is-not-available", + "rawLine": " it('should return \"managed_identity\" for agent-based, when arm_template is not available', () => {", + "line": " it('should return \"managed_identity\" for agent-based, when arm_template is not available')", + "label": "should return \"managed_identity\" for agent-based, when arm_template is not available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "getdefaultgcphiddenvars", + "rawLine": "describe('getDefaultGcpHiddenVars', () => {", + "line": "describe('getDefaultGcpHiddenVars')", + "label": "getDefaultGcpHiddenVars", + "indent": 0, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-manual-credentials-json-credentials-type-for-agentless", + "rawLine": " it('should return manual credentials-json credentials type for agentless', () => {", + "line": " it('should return manual credentials-json credentials type for agentless')", + "label": "should return manual credentials-json credentials type for agentless", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-google_cloud_shell-setup-access-for-agent-based-if-cloud_shell_url-is-available", + "rawLine": " it('should return google_cloud_shell setup access for agent-based if cloud_shell_url is available', () => {", + "line": " it('should return google_cloud_shell setup access for agent-based if cloud_shell_url is available')", + "label": "should return google_cloud_shell setup access for agent-based if cloud_shell_url is available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-manual-setup-access-for-agent-based-if-cloud_shell_url-is-not-available", + "rawLine": " it('should return manual setup access for agent-based if cloud_shell_url is not available', () => {", + "line": " it('should return manual setup access for agent-based if cloud_shell_url is not available')", + "label": "should return manual setup access for agent-based if cloud_shell_url is not available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "findvariabledef", + "rawLine": "describe('findVariableDef', () => {", + "line": "describe('findVariableDef')", + "label": "findVariableDef", + "indent": 0, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-var-item-when-key-exist", + "rawLine": " it('Should return var item when key exist', () => {", + "line": " it('Should return var item when key exist')", + "label": "Should return var item when key exist", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-key-is-invalid", + "rawLine": " it('Should return undefined when key is invalid', () => {", + "line": " it('Should return undefined when key is invalid')", + "label": "Should return undefined when key is invalid", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-datastream-is-undefined", + "rawLine": " it('Should return undefined when datastream is undefined', () => {", + "line": " it('Should return undefined when datastream is undefined')", + "label": "Should return undefined when datastream is undefined", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-stream-is-undefined", + "rawLine": " it('Should return undefined when stream is undefined', () => {", + "line": " it('Should return undefined when stream is undefined')", + "label": "Should return undefined when stream is undefined", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-stream.var-is-invalid", + "rawLine": " it('Should return undefined when stream.var is invalid', () => {", + "line": " it('Should return undefined when stream.var is invalid')", + "label": "Should return undefined when stream.var is invalid", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false } ], "tree": [ @@ -5237,32 +5582,142 @@ "type": "it", "isSkipped": false, "isTodo": false - } - ] - }, - { - "filePath": "x-pack/plugins/cloud_security_posture/public/pages/benchmarks/benchmarks_table.test.tsx", - "fileName": "benchmarks_table.test.tsx", - "directory": "x-pack/plugins/cloud_security_posture", - "tags": [ - "UT" - ], - "lines": [ - "describe('')", - " it('renders cis integration name')", - " it('renders benchmark version')", - " it('renders applicable to')", - " it('renders evaluated')", - " it('renders compliance')" - ], - "testSuits": [ + }, { - "id": "", - "rawLine": "describe('', () => {", - "line": "describe('')", - "label": "", - "indent": 0, - "type": "describe", + "id": "should-return-\"service_principal_with_client_secret\"-for-agentless", + "rawLine": " it('should return \"service_principal_with_client_secret\" for agentless', () => {", + "line": " it('should return \"service_principal_with_client_secret\" for agentless')", + "label": "should return \"service_principal_with_client_secret\" for agentless", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "shold-return-\"arm_template\"-for-agent-based,-when-arm_template-is-available", + "rawLine": " it('shold return \"arm_template\" for agent-based, when arm_template is available', () => {", + "line": " it('shold return \"arm_template\" for agent-based, when arm_template is available')", + "label": "shold return \"arm_template\" for agent-based, when arm_template is available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-\"managed_identity\"-for-agent-based,-when-arm_template-is-not-available", + "rawLine": " it('should return \"managed_identity\" for agent-based, when arm_template is not available', () => {", + "line": " it('should return \"managed_identity\" for agent-based, when arm_template is not available')", + "label": "should return \"managed_identity\" for agent-based, when arm_template is not available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-manual-credentials-json-credentials-type-for-agentless", + "rawLine": " it('should return manual credentials-json credentials type for agentless', () => {", + "line": " it('should return manual credentials-json credentials type for agentless')", + "label": "should return manual credentials-json credentials type for agentless", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-google_cloud_shell-setup-access-for-agent-based-if-cloud_shell_url-is-available", + "rawLine": " it('should return google_cloud_shell setup access for agent-based if cloud_shell_url is available', () => {", + "line": " it('should return google_cloud_shell setup access for agent-based if cloud_shell_url is available')", + "label": "should return google_cloud_shell setup access for agent-based if cloud_shell_url is available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-manual-setup-access-for-agent-based-if-cloud_shell_url-is-not-available", + "rawLine": " it('should return manual setup access for agent-based if cloud_shell_url is not available', () => {", + "line": " it('should return manual setup access for agent-based if cloud_shell_url is not available')", + "label": "should return manual setup access for agent-based if cloud_shell_url is not available", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-var-item-when-key-exist", + "rawLine": " it('Should return var item when key exist', () => {", + "line": " it('Should return var item when key exist')", + "label": "Should return var item when key exist", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-key-is-invalid", + "rawLine": " it('Should return undefined when key is invalid', () => {", + "line": " it('Should return undefined when key is invalid')", + "label": "Should return undefined when key is invalid", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-datastream-is-undefined", + "rawLine": " it('Should return undefined when datastream is undefined', () => {", + "line": " it('Should return undefined when datastream is undefined')", + "label": "Should return undefined when datastream is undefined", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-stream-is-undefined", + "rawLine": " it('Should return undefined when stream is undefined', () => {", + "line": " it('Should return undefined when stream is undefined')", + "label": "Should return undefined when stream is undefined", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "should-return-undefined-when-stream.var-is-invalid", + "rawLine": " it('Should return undefined when stream.var is invalid', () => {", + "line": " it('Should return undefined when stream.var is invalid')", + "label": "Should return undefined when stream.var is invalid", + "indent": 2, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "filePath": "x-pack/plugins/cloud_security_posture/public/pages/benchmarks/benchmarks_table.test.tsx", + "fileName": "benchmarks_table.test.tsx", + "directory": "x-pack/plugins/cloud_security_posture", + "tags": [ + "UT" + ], + "lines": [ + "describe('')", + " it('renders cis integration name')", + " it('renders benchmark version')", + " it('renders applicable to')", + " it('renders evaluated')", + " it('renders compliance')" + ], + "testSuits": [ + { + "id": "", + "rawLine": "describe('', () => {", + "line": "describe('')", + "label": "", + "indent": 0, + "type": "describe", "isSkipped": false, "isTodo": false }, @@ -10228,11 +10683,12 @@ "tags": [ "FTR", "SERVERLESS", - "API INTEGRATION" + "API INTEGRATION", + "HAS SKIP" ], "lines": [ " describe('GET /internal/cloud_security_posture/status')", - " describe('STATUS = INDEXED TEST')", + " describe.skip('STATUS = INDEXED TEST')", " it(`Return kspm status indexed when logs-cloud_security_posture.findings_latest-default contains new kspm documents`)", " it(`Return cspm status indexed when logs-cloud_security_posture.findings_latest-default contains new cspm documents`)", " it(`Return vuln status indexed when logs-cloud_security_posture.vulnerabilities_latest-default contains new documents`)" @@ -10250,12 +10706,12 @@ }, { "id": "status-=-indexed-test", - "rawLine": " describe('STATUS = INDEXED TEST', () => {", - "line": " describe('STATUS = INDEXED TEST')", + "rawLine": " describe.skip('STATUS = INDEXED TEST', () => {", + "line": " describe.skip('STATUS = INDEXED TEST')", "label": "STATUS = INDEXED TEST", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -10302,12 +10758,12 @@ "children": [ { "id": "status-=-indexed-test", - "rawLine": " describe('STATUS = INDEXED TEST', () => {", - "line": " describe('STATUS = INDEXED TEST')", + "rawLine": " describe.skip('STATUS = INDEXED TEST', () => {", + "line": " describe.skip('STATUS = INDEXED TEST')", "label": "STATUS = INDEXED TEST", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -10317,7 +10773,7 @@ "label": "Return kspm status indexed when logs-cloud_security_posture.findings_latest-default contains new kspm documents", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -10327,7 +10783,7 @@ "label": "Return cspm status indexed when logs-cloud_security_posture.findings_latest-default contains new cspm documents", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -10337,7 +10793,7 @@ "label": "Return vuln status indexed when logs-cloud_security_posture.vulnerabilities_latest-default contains new documents", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] @@ -12382,10 +12838,11 @@ "directory": "x-pack/test/cloud_security_posture_api", "tags": [ "FTR", - "API INTEGRATION" + "API INTEGRATION", + "HAS SKIP" ], "lines": [ - " describe('GET /internal/cloud_security_posture/benchmarks')", + " describe.skip('GET /internal/cloud_security_posture/benchmarks')", " describe('Get Benchmark API')", " it('Verify cspm benchmark score is updated when muting rules')", " it('Verify kspm benchmark score is updated when muting rules')" @@ -12393,12 +12850,12 @@ "testSuits": [ { "id": "get-/internal/cloud_security_posture/benchmarks", - "rawLine": " describe('GET /internal/cloud_security_posture/benchmarks', () => {", - "line": " describe('GET /internal/cloud_security_posture/benchmarks')", + "rawLine": " describe.skip('GET /internal/cloud_security_posture/benchmarks', () => {", + "line": " describe.skip('GET /internal/cloud_security_posture/benchmarks')", "label": "GET /internal/cloud_security_posture/benchmarks", "indent": 2, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -12435,12 +12892,12 @@ "tree": [ { "id": "get-/internal/cloud_security_posture/benchmarks", - "rawLine": " describe('GET /internal/cloud_security_posture/benchmarks', () => {", - "line": " describe('GET /internal/cloud_security_posture/benchmarks')", + "rawLine": " describe.skip('GET /internal/cloud_security_posture/benchmarks', () => {", + "line": " describe.skip('GET /internal/cloud_security_posture/benchmarks')", "label": "GET /internal/cloud_security_posture/benchmarks", "indent": 2, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -12450,7 +12907,7 @@ "label": "Get Benchmark API", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -12460,7 +12917,7 @@ "label": "Verify cspm benchmark score is updated when muting rules", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -12470,7 +12927,7 @@ "label": "Verify kspm benchmark score is updated when muting rules", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] @@ -13222,47 +13679,25 @@ ] }, { - "filePath": "x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts", - "fileName": "cis_integration.ts", + "filePath": "x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts", + "fileName": "cis_integration_cnvm.ts", "directory": "x-pack/test/cloud_security_posture_functional", "tags": [ "FTR" ], "lines": [ - " describe('Test adding Cloud Security Posture Integrations')", + " describe('Test adding Cloud Security Posture Integrations CNVM')", " describe('CNVM AWS')", " it('Hyperlink on PostInstallation Modal should have the correct URL')", " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ')", - " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')", - " describe('CIS_AWS')", - " it('Initial form state, AWS Org account, and CloudFormation should be selected by default')", - " it('Hyperlink on PostInstallation Modal should have the correct URL')", - " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ')", - " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')", - " describe('CIS_GCP Organization')", - " it('Switch between Manual and Google cloud shell')", - " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value')", - " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", - " it('Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", - " it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up')", - " it('Hyperlink on PostInstallation Modal should have the correct URL')", - " it('Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page')", - " describe('CIS_GCP Single')", - " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID, it should use default value')", - " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID, it should use that value')", - " it('Add Agent FLyout - Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up')", - " it('On add agent modal, if user chose Google Cloud Shell as their setup access; a google cloud shell modal should show up and clicking on the launch button will redirect user to Google cloud shell page')", - " it('Users are able to add CIS_GCP Integration with Manual settings using Credentials File')", - " it('Users are able to switch credentials_type from/to Credential JSON fields ')", - " it('Users are able to add CIS_GCP Integration with Manual settings using Credentials JSON')", - " it('Users are able to switch credentials_type from/to Credential File fields ')" + " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')" ], "testSuits": [ { - "id": "test-adding-cloud-security-posture-integrations", - "rawLine": " describe('Test adding Cloud Security Posture Integrations', function () {", - "line": " describe('Test adding Cloud Security Posture Integrations')", - "label": "Test adding Cloud Security Posture Integrations", + "id": "test-adding-cloud-security-posture-integrations-cnvm", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CNVM', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CNVM')", + "label": "Test adding Cloud Security Posture Integrations CNVM", "indent": 2, "type": "describe", "isSkipped": false, @@ -13307,12 +13742,114 @@ "type": "it", "isSkipped": false, "isTodo": false + } + ], + "tree": [ + { + "id": "test-adding-cloud-security-posture-integrations-cnvm", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CNVM', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CNVM')", + "label": "Test adding Cloud Security Posture Integrations CNVM", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cnvm-aws", + "rawLine": " describe('CNVM AWS', () => {", + "line": " describe('CNVM AWS')", + "label": "CNVM AWS", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "hyperlink-on-postinstallation-modal-should-have-the-correct-url", + "rawLine": " it('Hyperlink on PostInstallation Modal should have the correct URL', async () => {", + "line": " it('Hyperlink on PostInstallation Modal should have the correct URL')", + "label": "Hyperlink on PostInstallation Modal should have the correct URL", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "on-add-agent-modal-there-should-be-modal-that-has-cloud-formation-details-as-well-as-button-that-redirects-user-to-cloud-formation-page-on-aws-upon-clicking-them-", + "rawLine": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => {", + "line": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ')", + "label": "On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "clicking-on-launch-cloudformation-on-post-intall-modal-should-lead-user-to-cloud-formation-page", + "rawLine": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => {", + "line": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')", + "label": "Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + } + ] + } + ] + }, + { + "filePath": "x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts", + "fileName": "cis_integration_aws.ts", + "directory": "x-pack/test/cloud_security_posture_functional", + "tags": [ + "FTR" + ], + "lines": [ + " describe('Test adding Cloud Security Posture Integrations CSPM AWS')", + " describe('CIS_AWS Organization Cloud Formation')", + " it('Initial form state, AWS Org account, and CloudFormation should be selected by default')", + " it('Hyperlink on PostInstallation Modal should have the correct URL')", + " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ')", + " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')", + " describe('CIS_AWS Organization Manual Assume Role')", + " it('CIS_AWS Organization Manual Assume Role Workflow')", + " describe('CIS_AWS Organization Manual Direct Access')", + " it('CIS_AWS Organization Manual Direct Access Workflow')", + " describe('CIS_AWS Organization Manual Temporary Keys')", + " it('CIS_AWS Organization Manual Temporary Keys Workflow')", + " describe('CIS_AWS Organization Manual Shared Access')", + " it('CIS_AWS Organization Manual Shared Access Workflow')", + " describe('CIS_AWS Single Cloud Formation')", + " it('CIS_AWS Single Cloud Formation workflow')", + " describe('CIS_AWS Single Manual Assume Role')", + " it('CIS_AWS Single Manual Assume Role Workflow')", + " describe('CIS_AWS Single Manual Direct Access')", + " it('CIS_AWS Single Manual Direct Access Workflow')", + " describe('CIS_AWS Single Manual Temporary Keys')", + " it('CIS_AWS Single Manual Temporary Keys Workflow')", + " describe('CIS_AWS Single Manual Shared Access')", + " it('CIS_AWS Single Manual Shared Access Workflow')" + ], + "testSuits": [ + { + "id": "test-adding-cloud-security-posture-integrations-cspm-aws", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CSPM AWS', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CSPM AWS')", + "label": "Test adding Cloud Security Posture Integrations CSPM AWS", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false }, { - "id": "cis_aws", - "rawLine": " describe('CIS_AWS', () => {", - "line": " describe('CIS_AWS')", - "label": "CIS_AWS", + "id": "cis_aws-organization-cloud-formation", + "rawLine": " describe('CIS_AWS Organization Cloud Formation', () => {", + "line": " describe('CIS_AWS Organization Cloud Formation')", + "label": "CIS_AWS Organization Cloud Formation", "indent": 4, "type": "describe", "isSkipped": false, @@ -13359,87 +13896,1004 @@ "isTodo": false }, { - "id": "cis_gcp-organization", - "rawLine": " describe('CIS_GCP Organization', () => {", - "line": " describe('CIS_GCP Organization')", - "label": "CIS_GCP Organization", + "id": "cis_aws-organization-manual-assume-role", + "rawLine": " describe('CIS_AWS Organization Manual Assume Role', () => {", + "line": " describe('CIS_AWS Organization Manual Assume Role')", + "label": "CIS_AWS Organization Manual Assume Role", "indent": 4, "type": "describe", "isSkipped": false, "isTodo": false }, { - "id": "switch-between-manual-and-google-cloud-shell", - "rawLine": " it('Switch between Manual and Google cloud shell', async () => {", - "line": " it('Switch between Manual and Google cloud shell')", - "label": "Switch between Manual and Google cloud shell", + "id": "cis_aws-organization-manual-assume-role-workflow", + "rawLine": " it('CIS_AWS Organization Manual Assume Role Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Assume Role Workflow')", + "label": "CIS_AWS Organization Manual Assume Role Workflow", "indent": 6, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "post-installation-google-cloud-shell-modal-pops-up-after-user-clicks-on-save-button-when-adding-integration,-when-there-are-no-project-id-or-organization-id-provided,-it-should-use-default-value", - "rawLine": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value', async () => {", - "line": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value')", - "label": "Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value", - "indent": 6, - "type": "it", + "id": "cis_aws-organization-manual-direct-access", + "rawLine": " describe('CIS_AWS Organization Manual Direct Access', () => {", + "line": " describe('CIS_AWS Organization Manual Direct Access')", + "label": "CIS_AWS Organization Manual Direct Access", + "indent": 4, + "type": "describe", "isSkipped": false, "isTodo": false }, { - "id": "post-installation-google-cloud-shell-modal-pops-up-after-user-clicks-on-save-button-when-adding-integration,-when-there-are-project-id-or-organization-id-provided,-it-should-use-that-value", - "rawLine": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value', async () => {", - "line": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", - "label": "Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value", + "id": "cis_aws-organization-manual-direct-access-workflow", + "rawLine": " it('CIS_AWS Organization Manual Direct Access Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Direct Access Workflow')", + "label": "CIS_AWS Organization Manual Direct Access Workflow", "indent": 6, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "add-agent-flyout---post-installation-google-cloud-shell-modal-pops-up-after-user-clicks-on-save-button-when-adding-integration,-when-there-are-project-id-or-organization-id-provided,-it-should-use-that-value", - "rawLine": " it('Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value', async () => {", - "line": " it('Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", - "label": "Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value", - "indent": 6, - "type": "it", + "id": "cis_aws-organization-manual-temporary-keys", + "rawLine": " describe('CIS_AWS Organization Manual Temporary Keys', () => {", + "line": " describe('CIS_AWS Organization Manual Temporary Keys')", + "label": "CIS_AWS Organization Manual Temporary Keys", + "indent": 4, + "type": "describe", "isSkipped": false, "isTodo": false }, { - "id": "organization-id-field-on-cloud-shell-command-should-only-be-shown-if-user-chose-google-cloud-shell,-if-user-chose-single-account-it-shouldn-not-show-up", - "rawLine": " it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up', async () => {", - "line": " it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up')", - "label": "Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up", + "id": "cis_aws-organization-manual-temporary-keys-workflow", + "rawLine": " it('CIS_AWS Organization Manual Temporary Keys Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Temporary Keys Workflow')", + "label": "CIS_AWS Organization Manual Temporary Keys Workflow", "indent": 6, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "hyperlink-on-postinstallation-modal-should-have-the-correct-url", - "rawLine": " it('Hyperlink on PostInstallation Modal should have the correct URL', async () => {", - "line": " it('Hyperlink on PostInstallation Modal should have the correct URL')", - "label": "Hyperlink on PostInstallation Modal should have the correct URL", - "indent": 6, - "type": "it", + "id": "cis_aws-organization-manual-shared-access", + "rawLine": " describe('CIS_AWS Organization Manual Shared Access', () => {", + "line": " describe('CIS_AWS Organization Manual Shared Access')", + "label": "CIS_AWS Organization Manual Shared Access", + "indent": 4, + "type": "describe", "isSkipped": false, "isTodo": false }, { - "id": "clicking-on-launch-cloudshell-on-post-intall-modal-should-lead-user-to-cloudshell-page", - "rawLine": " it('Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page', async () => {", - "line": " it('Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page')", - "label": "Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page", + "id": "cis_aws-organization-manual-shared-access-workflow", + "rawLine": " it('CIS_AWS Organization Manual Shared Access Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Shared Access Workflow')", + "label": "CIS_AWS Organization Manual Shared Access Workflow", "indent": 6, "type": "it", "isSkipped": false, "isTodo": false }, { - "id": "cis_gcp-single", + "id": "cis_aws-single-cloud-formation", + "rawLine": " describe('CIS_AWS Single Cloud Formation', () => {", + "line": " describe('CIS_AWS Single Cloud Formation')", + "label": "CIS_AWS Single Cloud Formation", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-cloud-formation-workflow", + "rawLine": " it('CIS_AWS Single Cloud Formation workflow', async () => {", + "line": " it('CIS_AWS Single Cloud Formation workflow')", + "label": "CIS_AWS Single Cloud Formation workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-assume-role", + "rawLine": " describe('CIS_AWS Single Manual Assume Role', () => {", + "line": " describe('CIS_AWS Single Manual Assume Role')", + "label": "CIS_AWS Single Manual Assume Role", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-assume-role-workflow", + "rawLine": " it('CIS_AWS Single Manual Assume Role Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Assume Role Workflow')", + "label": "CIS_AWS Single Manual Assume Role Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-direct-access", + "rawLine": " describe('CIS_AWS Single Manual Direct Access', () => {", + "line": " describe('CIS_AWS Single Manual Direct Access')", + "label": "CIS_AWS Single Manual Direct Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-direct-access-workflow", + "rawLine": " it('CIS_AWS Single Manual Direct Access Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Direct Access Workflow')", + "label": "CIS_AWS Single Manual Direct Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-temporary-keys", + "rawLine": " describe('CIS_AWS Single Manual Temporary Keys', () => {", + "line": " describe('CIS_AWS Single Manual Temporary Keys')", + "label": "CIS_AWS Single Manual Temporary Keys", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-temporary-keys-workflow", + "rawLine": " it('CIS_AWS Single Manual Temporary Keys Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Temporary Keys Workflow')", + "label": "CIS_AWS Single Manual Temporary Keys Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-shared-access", + "rawLine": " describe('CIS_AWS Single Manual Shared Access', () => {", + "line": " describe('CIS_AWS Single Manual Shared Access')", + "label": "CIS_AWS Single Manual Shared Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_aws-single-manual-shared-access-workflow", + "rawLine": " it('CIS_AWS Single Manual Shared Access Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Shared Access Workflow')", + "label": "CIS_AWS Single Manual Shared Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ], + "tree": [ + { + "id": "test-adding-cloud-security-posture-integrations-cspm-aws", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CSPM AWS', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CSPM AWS')", + "label": "Test adding Cloud Security Posture Integrations CSPM AWS", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-organization-cloud-formation", + "rawLine": " describe('CIS_AWS Organization Cloud Formation', () => {", + "line": " describe('CIS_AWS Organization Cloud Formation')", + "label": "CIS_AWS Organization Cloud Formation", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "initial-form-state,-aws-org-account,-and-cloudformation-should-be-selected-by-default", + "rawLine": " it('Initial form state, AWS Org account, and CloudFormation should be selected by default', async () => {", + "line": " it('Initial form state, AWS Org account, and CloudFormation should be selected by default')", + "label": "Initial form state, AWS Org account, and CloudFormation should be selected by default", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "hyperlink-on-postinstallation-modal-should-have-the-correct-url", + "rawLine": " it('Hyperlink on PostInstallation Modal should have the correct URL', async () => {", + "line": " it('Hyperlink on PostInstallation Modal should have the correct URL')", + "label": "Hyperlink on PostInstallation Modal should have the correct URL", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "on-add-agent-modal-there-should-be-modal-that-has-cloud-formation-details-as-well-as-button-that-redirects-user-to-cloud-formation-page-on-aws-upon-clicking-them-", + "rawLine": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => {", + "line": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ')", + "label": "On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "clicking-on-launch-cloudformation-on-post-intall-modal-should-lead-user-to-cloud-formation-page", + "rawLine": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => {", + "line": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')", + "label": "Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-organization-manual-assume-role", + "rawLine": " describe('CIS_AWS Organization Manual Assume Role', () => {", + "line": " describe('CIS_AWS Organization Manual Assume Role')", + "label": "CIS_AWS Organization Manual Assume Role", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-organization-manual-assume-role-workflow", + "rawLine": " it('CIS_AWS Organization Manual Assume Role Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Assume Role Workflow')", + "label": "CIS_AWS Organization Manual Assume Role Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-organization-manual-direct-access", + "rawLine": " describe('CIS_AWS Organization Manual Direct Access', () => {", + "line": " describe('CIS_AWS Organization Manual Direct Access')", + "label": "CIS_AWS Organization Manual Direct Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-organization-manual-direct-access-workflow", + "rawLine": " it('CIS_AWS Organization Manual Direct Access Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Direct Access Workflow')", + "label": "CIS_AWS Organization Manual Direct Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-organization-manual-temporary-keys", + "rawLine": " describe('CIS_AWS Organization Manual Temporary Keys', () => {", + "line": " describe('CIS_AWS Organization Manual Temporary Keys')", + "label": "CIS_AWS Organization Manual Temporary Keys", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-organization-manual-temporary-keys-workflow", + "rawLine": " it('CIS_AWS Organization Manual Temporary Keys Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Temporary Keys Workflow')", + "label": "CIS_AWS Organization Manual Temporary Keys Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-organization-manual-shared-access", + "rawLine": " describe('CIS_AWS Organization Manual Shared Access', () => {", + "line": " describe('CIS_AWS Organization Manual Shared Access')", + "label": "CIS_AWS Organization Manual Shared Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-organization-manual-shared-access-workflow", + "rawLine": " it('CIS_AWS Organization Manual Shared Access Workflow', async () => {", + "line": " it('CIS_AWS Organization Manual Shared Access Workflow')", + "label": "CIS_AWS Organization Manual Shared Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-single-cloud-formation", + "rawLine": " describe('CIS_AWS Single Cloud Formation', () => {", + "line": " describe('CIS_AWS Single Cloud Formation')", + "label": "CIS_AWS Single Cloud Formation", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-single-cloud-formation-workflow", + "rawLine": " it('CIS_AWS Single Cloud Formation workflow', async () => {", + "line": " it('CIS_AWS Single Cloud Formation workflow')", + "label": "CIS_AWS Single Cloud Formation workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-single-manual-assume-role", + "rawLine": " describe('CIS_AWS Single Manual Assume Role', () => {", + "line": " describe('CIS_AWS Single Manual Assume Role')", + "label": "CIS_AWS Single Manual Assume Role", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-single-manual-assume-role-workflow", + "rawLine": " it('CIS_AWS Single Manual Assume Role Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Assume Role Workflow')", + "label": "CIS_AWS Single Manual Assume Role Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-single-manual-direct-access", + "rawLine": " describe('CIS_AWS Single Manual Direct Access', () => {", + "line": " describe('CIS_AWS Single Manual Direct Access')", + "label": "CIS_AWS Single Manual Direct Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-single-manual-direct-access-workflow", + "rawLine": " it('CIS_AWS Single Manual Direct Access Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Direct Access Workflow')", + "label": "CIS_AWS Single Manual Direct Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-single-manual-temporary-keys", + "rawLine": " describe('CIS_AWS Single Manual Temporary Keys', () => {", + "line": " describe('CIS_AWS Single Manual Temporary Keys')", + "label": "CIS_AWS Single Manual Temporary Keys", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-single-manual-temporary-keys-workflow", + "rawLine": " it('CIS_AWS Single Manual Temporary Keys Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Temporary Keys Workflow')", + "label": "CIS_AWS Single Manual Temporary Keys Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_aws-single-manual-shared-access", + "rawLine": " describe('CIS_AWS Single Manual Shared Access', () => {", + "line": " describe('CIS_AWS Single Manual Shared Access')", + "label": "CIS_AWS Single Manual Shared Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_aws-single-manual-shared-access-workflow", + "rawLine": " it('CIS_AWS Single Manual Shared Access Workflow', async () => {", + "line": " it('CIS_AWS Single Manual Shared Access Workflow')", + "label": "CIS_AWS Single Manual Shared Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + } + ] + } + ] + }, + { + "filePath": "x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts", + "fileName": "cis_integration_azure.ts", + "directory": "x-pack/test/cloud_security_posture_functional", + "tags": [ + "FTR" + ], + "lines": [ + " describe('Test adding Cloud Security Posture Integrations CSPM AZURE')", + " describe('Azure Organization ARM Template')", + " it('Azure Organization ARM Template Workflow')", + " describe('Azure Organization Manual Managed Identity')", + " it('Azure Organization Manual Workflow')", + " describe('Azure Organization Manual Service Principle with Client Secret')", + " it('Azure Organization Manual Service Principle with Client Secret Workflow')", + " describe('Azure Organization Manual Service Principle with Client Certificate')", + " it('Azure Organization Manual Service Principle with Client Certificate Workflow')", + " describe('Azure Single ARM Template')", + " it('Azure Single ARM Template Workflow')", + " describe('Azure Single Manual Managed Identity')", + " it('Azure Single Manual Workflow')", + " describe('Azure Single Manual Service Principle with Client Secret')", + " it('Azure Single Manual Service Principle with Client Secret Workflow')", + " describe('Azure Single Manual Service Principle with Client Certificate')", + " it('Azure Single Manual Service Principle with Client Certificate Workflow')" + ], + "testSuits": [ + { + "id": "test-adding-cloud-security-posture-integrations-cspm-azure", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CSPM AZURE', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CSPM AZURE')", + "label": "Test adding Cloud Security Posture Integrations CSPM AZURE", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-arm-template", + "rawLine": " describe('Azure Organization ARM Template', () => {", + "line": " describe('Azure Organization ARM Template')", + "label": "Azure Organization ARM Template", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-arm-template-workflow", + "rawLine": " it('Azure Organization ARM Template Workflow', async () => {", + "line": " it('Azure Organization ARM Template Workflow')", + "label": "Azure Organization ARM Template Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-manual-managed-identity", + "rawLine": " describe('Azure Organization Manual Managed Identity', () => {", + "line": " describe('Azure Organization Manual Managed Identity')", + "label": "Azure Organization Manual Managed Identity", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-manual-workflow", + "rawLine": " it('Azure Organization Manual Workflow', async () => {", + "line": " it('Azure Organization Manual Workflow')", + "label": "Azure Organization Manual Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-manual-service-principle-with-client-secret", + "rawLine": " describe('Azure Organization Manual Service Principle with Client Secret', () => {", + "line": " describe('Azure Organization Manual Service Principle with Client Secret')", + "label": "Azure Organization Manual Service Principle with Client Secret", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-manual-service-principle-with-client-secret-workflow", + "rawLine": " it('Azure Organization Manual Service Principle with Client Secret Workflow', async () => {", + "line": " it('Azure Organization Manual Service Principle with Client Secret Workflow')", + "label": "Azure Organization Manual Service Principle with Client Secret Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-manual-service-principle-with-client-certificate", + "rawLine": " describe('Azure Organization Manual Service Principle with Client Certificate', () => {", + "line": " describe('Azure Organization Manual Service Principle with Client Certificate')", + "label": "Azure Organization Manual Service Principle with Client Certificate", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-organization-manual-service-principle-with-client-certificate-workflow", + "rawLine": " it('Azure Organization Manual Service Principle with Client Certificate Workflow', async () => {", + "line": " it('Azure Organization Manual Service Principle with Client Certificate Workflow')", + "label": "Azure Organization Manual Service Principle with Client Certificate Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-arm-template", + "rawLine": " describe('Azure Single ARM Template', () => {", + "line": " describe('Azure Single ARM Template')", + "label": "Azure Single ARM Template", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-arm-template-workflow", + "rawLine": " it('Azure Single ARM Template Workflow', async () => {", + "line": " it('Azure Single ARM Template Workflow')", + "label": "Azure Single ARM Template Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-manual-managed-identity", + "rawLine": " describe('Azure Single Manual Managed Identity', () => {", + "line": " describe('Azure Single Manual Managed Identity')", + "label": "Azure Single Manual Managed Identity", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-manual-workflow", + "rawLine": " it('Azure Single Manual Workflow', async () => {", + "line": " it('Azure Single Manual Workflow')", + "label": "Azure Single Manual Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-manual-service-principle-with-client-secret", + "rawLine": " describe('Azure Single Manual Service Principle with Client Secret', () => {", + "line": " describe('Azure Single Manual Service Principle with Client Secret')", + "label": "Azure Single Manual Service Principle with Client Secret", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-manual-service-principle-with-client-secret-workflow", + "rawLine": " it('Azure Single Manual Service Principle with Client Secret Workflow', async () => {", + "line": " it('Azure Single Manual Service Principle with Client Secret Workflow')", + "label": "Azure Single Manual Service Principle with Client Secret Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-manual-service-principle-with-client-certificate", + "rawLine": " describe('Azure Single Manual Service Principle with Client Certificate', () => {", + "line": " describe('Azure Single Manual Service Principle with Client Certificate')", + "label": "Azure Single Manual Service Principle with Client Certificate", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "azure-single-manual-service-principle-with-client-certificate-workflow", + "rawLine": " it('Azure Single Manual Service Principle with Client Certificate Workflow', async () => {", + "line": " it('Azure Single Manual Service Principle with Client Certificate Workflow')", + "label": "Azure Single Manual Service Principle with Client Certificate Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ], + "tree": [ + { + "id": "test-adding-cloud-security-posture-integrations-cspm-azure", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CSPM AZURE', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CSPM AZURE')", + "label": "Test adding Cloud Security Posture Integrations CSPM AZURE", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-organization-arm-template", + "rawLine": " describe('Azure Organization ARM Template', () => {", + "line": " describe('Azure Organization ARM Template')", + "label": "Azure Organization ARM Template", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-organization-arm-template-workflow", + "rawLine": " it('Azure Organization ARM Template Workflow', async () => {", + "line": " it('Azure Organization ARM Template Workflow')", + "label": "Azure Organization ARM Template Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "azure-organization-manual-managed-identity", + "rawLine": " describe('Azure Organization Manual Managed Identity', () => {", + "line": " describe('Azure Organization Manual Managed Identity')", + "label": "Azure Organization Manual Managed Identity", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-organization-manual-workflow", + "rawLine": " it('Azure Organization Manual Workflow', async () => {", + "line": " it('Azure Organization Manual Workflow')", + "label": "Azure Organization Manual Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "azure-organization-manual-service-principle-with-client-secret", + "rawLine": " describe('Azure Organization Manual Service Principle with Client Secret', () => {", + "line": " describe('Azure Organization Manual Service Principle with Client Secret')", + "label": "Azure Organization Manual Service Principle with Client Secret", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-organization-manual-service-principle-with-client-secret-workflow", + "rawLine": " it('Azure Organization Manual Service Principle with Client Secret Workflow', async () => {", + "line": " it('Azure Organization Manual Service Principle with Client Secret Workflow')", + "label": "Azure Organization Manual Service Principle with Client Secret Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "azure-organization-manual-service-principle-with-client-certificate", + "rawLine": " describe('Azure Organization Manual Service Principle with Client Certificate', () => {", + "line": " describe('Azure Organization Manual Service Principle with Client Certificate')", + "label": "Azure Organization Manual Service Principle with Client Certificate", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-organization-manual-service-principle-with-client-certificate-workflow", + "rawLine": " it('Azure Organization Manual Service Principle with Client Certificate Workflow', async () => {", + "line": " it('Azure Organization Manual Service Principle with Client Certificate Workflow')", + "label": "Azure Organization Manual Service Principle with Client Certificate Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "azure-single-arm-template", + "rawLine": " describe('Azure Single ARM Template', () => {", + "line": " describe('Azure Single ARM Template')", + "label": "Azure Single ARM Template", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-single-arm-template-workflow", + "rawLine": " it('Azure Single ARM Template Workflow', async () => {", + "line": " it('Azure Single ARM Template Workflow')", + "label": "Azure Single ARM Template Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "azure-single-manual-managed-identity", + "rawLine": " describe('Azure Single Manual Managed Identity', () => {", + "line": " describe('Azure Single Manual Managed Identity')", + "label": "Azure Single Manual Managed Identity", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-single-manual-workflow", + "rawLine": " it('Azure Single Manual Workflow', async () => {", + "line": " it('Azure Single Manual Workflow')", + "label": "Azure Single Manual Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "azure-single-manual-service-principle-with-client-secret", + "rawLine": " describe('Azure Single Manual Service Principle with Client Secret', () => {", + "line": " describe('Azure Single Manual Service Principle with Client Secret')", + "label": "Azure Single Manual Service Principle with Client Secret", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-single-manual-service-principle-with-client-secret-workflow", + "rawLine": " it('Azure Single Manual Service Principle with Client Secret Workflow', async () => {", + "line": " it('Azure Single Manual Service Principle with Client Secret Workflow')", + "label": "Azure Single Manual Service Principle with Client Secret Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "azure-single-manual-service-principle-with-client-certificate", + "rawLine": " describe('Azure Single Manual Service Principle with Client Certificate', () => {", + "line": " describe('Azure Single Manual Service Principle with Client Certificate')", + "label": "Azure Single Manual Service Principle with Client Certificate", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "azure-single-manual-service-principle-with-client-certificate-workflow", + "rawLine": " it('Azure Single Manual Service Principle with Client Certificate Workflow', async () => {", + "line": " it('Azure Single Manual Service Principle with Client Certificate Workflow')", + "label": "Azure Single Manual Service Principle with Client Certificate Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + } + ] + } + ] + }, + { + "filePath": "x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts", + "fileName": "cis_integration_gcp.ts", + "directory": "x-pack/test/cloud_security_posture_functional", + "tags": [ + "FTR" + ], + "lines": [ + " describe('Test adding Cloud Security Posture Integrations CSPM GCP')", + " describe('CIS_GCP Organization')", + " it('Switch between Manual and Google cloud shell')", + " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value')", + " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", + " it('Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", + " it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up')", + " it('Hyperlink on PostInstallation Modal should have the correct URL')", + " it('Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page')", + " describe('CIS_GCP Organization Credentials File')", + " it('CIS_GCP Organization Credentials File workflow')", + " describe('CIS_GCP Organization Credentials JSON')", + " it('CIS_GCP Organization Credentials JSON workflow')", + " describe('CIS_GCP Single')", + " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID, it should use default value')", + " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID, it should use that value')", + " it('Add Agent FLyout - Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up')", + " it('On add agent modal, if user chose Google Cloud Shell as their setup access; a google cloud shell modal should show up and clicking on the launch button will redirect user to Google cloud shell page')", + " it('Users are able to add CIS_GCP Integration with Manual settings using Credentials File')", + " it('Users are able to switch credentials_type from/to Credential JSON fields ')", + " it('Users are able to add CIS_GCP Integration with Manual settings using Credentials JSON')", + " it('Users are able to switch credentials_type from/to Credential File fields ')" + ], + "testSuits": [ + { + "id": "test-adding-cloud-security-posture-integrations-cspm-gcp", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CSPM GCP', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CSPM GCP')", + "label": "Test adding Cloud Security Posture Integrations CSPM GCP", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_gcp-organization", + "rawLine": " describe('CIS_GCP Organization', () => {", + "line": " describe('CIS_GCP Organization')", + "label": "CIS_GCP Organization", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "switch-between-manual-and-google-cloud-shell", + "rawLine": " it('Switch between Manual and Google cloud shell', async () => {", + "line": " it('Switch between Manual and Google cloud shell')", + "label": "Switch between Manual and Google cloud shell", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "post-installation-google-cloud-shell-modal-pops-up-after-user-clicks-on-save-button-when-adding-integration,-when-there-are-no-project-id-or-organization-id-provided,-it-should-use-default-value", + "rawLine": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value', async () => {", + "line": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value')", + "label": "Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "post-installation-google-cloud-shell-modal-pops-up-after-user-clicks-on-save-button-when-adding-integration,-when-there-are-project-id-or-organization-id-provided,-it-should-use-that-value", + "rawLine": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value', async () => {", + "line": " it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", + "label": "Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "add-agent-flyout---post-installation-google-cloud-shell-modal-pops-up-after-user-clicks-on-save-button-when-adding-integration,-when-there-are-project-id-or-organization-id-provided,-it-should-use-that-value", + "rawLine": " it('Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value', async () => {", + "line": " it('Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value')", + "label": "Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "organization-id-field-on-cloud-shell-command-should-only-be-shown-if-user-chose-google-cloud-shell,-if-user-chose-single-account-it-shouldn-not-show-up", + "rawLine": " it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up', async () => {", + "line": " it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up')", + "label": "Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "hyperlink-on-postinstallation-modal-should-have-the-correct-url", + "rawLine": " it('Hyperlink on PostInstallation Modal should have the correct URL', async () => {", + "line": " it('Hyperlink on PostInstallation Modal should have the correct URL')", + "label": "Hyperlink on PostInstallation Modal should have the correct URL", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "clicking-on-launch-cloudshell-on-post-intall-modal-should-lead-user-to-cloudshell-page", + "rawLine": " it('Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page', async () => {", + "line": " it('Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page')", + "label": "Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_gcp-organization-credentials-file", + "rawLine": " describe('CIS_GCP Organization Credentials File', () => {", + "line": " describe('CIS_GCP Organization Credentials File')", + "label": "CIS_GCP Organization Credentials File", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_gcp-organization-credentials-file-workflow", + "rawLine": " it('CIS_GCP Organization Credentials File workflow', async () => {", + "line": " it('CIS_GCP Organization Credentials File workflow')", + "label": "CIS_GCP Organization Credentials File workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_gcp-organization-credentials-json", + "rawLine": " describe('CIS_GCP Organization Credentials JSON', () => {", + "line": " describe('CIS_GCP Organization Credentials JSON')", + "label": "CIS_GCP Organization Credentials JSON", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_gcp-organization-credentials-json-workflow", + "rawLine": " it('CIS_GCP Organization Credentials JSON workflow', async () => {", + "line": " it('CIS_GCP Organization Credentials JSON workflow')", + "label": "CIS_GCP Organization Credentials JSON workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "cis_gcp-single", "rawLine": " describe('CIS_GCP Single', () => {", "line": " describe('CIS_GCP Single')", "label": "CIS_GCP Single", @@ -13531,109 +14985,15 @@ ], "tree": [ { - "id": "test-adding-cloud-security-posture-integrations", - "rawLine": " describe('Test adding Cloud Security Posture Integrations', function () {", - "line": " describe('Test adding Cloud Security Posture Integrations')", - "label": "Test adding Cloud Security Posture Integrations", + "id": "test-adding-cloud-security-posture-integrations-cspm-gcp", + "rawLine": " describe('Test adding Cloud Security Posture Integrations CSPM GCP', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations CSPM GCP')", + "label": "Test adding Cloud Security Posture Integrations CSPM GCP", "indent": 2, "type": "describe", "isSkipped": false, "isTodo": false, "children": [ - { - "id": "cnvm-aws", - "rawLine": " describe('CNVM AWS', () => {", - "line": " describe('CNVM AWS')", - "label": "CNVM AWS", - "indent": 4, - "type": "describe", - "isSkipped": false, - "isTodo": false, - "children": [ - { - "id": "hyperlink-on-postinstallation-modal-should-have-the-correct-url", - "rawLine": " it('Hyperlink on PostInstallation Modal should have the correct URL', async () => {", - "line": " it('Hyperlink on PostInstallation Modal should have the correct URL')", - "label": "Hyperlink on PostInstallation Modal should have the correct URL", - "indent": 6, - "type": "it", - "isSkipped": false, - "isTodo": false - }, - { - "id": "on-add-agent-modal-there-should-be-modal-that-has-cloud-formation-details-as-well-as-button-that-redirects-user-to-cloud-formation-page-on-aws-upon-clicking-them-", - "rawLine": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => {", - "line": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ')", - "label": "On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ", - "indent": 6, - "type": "it", - "isSkipped": false, - "isTodo": false - }, - { - "id": "clicking-on-launch-cloudformation-on-post-intall-modal-should-lead-user-to-cloud-formation-page", - "rawLine": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => {", - "line": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')", - "label": "Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page", - "indent": 6, - "type": "it", - "isSkipped": false, - "isTodo": false - } - ] - }, - { - "id": "cis_aws", - "rawLine": " describe('CIS_AWS', () => {", - "line": " describe('CIS_AWS')", - "label": "CIS_AWS", - "indent": 4, - "type": "describe", - "isSkipped": false, - "isTodo": false, - "children": [ - { - "id": "initial-form-state,-aws-org-account,-and-cloudformation-should-be-selected-by-default", - "rawLine": " it('Initial form state, AWS Org account, and CloudFormation should be selected by default', async () => {", - "line": " it('Initial form state, AWS Org account, and CloudFormation should be selected by default')", - "label": "Initial form state, AWS Org account, and CloudFormation should be selected by default", - "indent": 6, - "type": "it", - "isSkipped": false, - "isTodo": false - }, - { - "id": "hyperlink-on-postinstallation-modal-should-have-the-correct-url", - "rawLine": " it('Hyperlink on PostInstallation Modal should have the correct URL', async () => {", - "line": " it('Hyperlink on PostInstallation Modal should have the correct URL')", - "label": "Hyperlink on PostInstallation Modal should have the correct URL", - "indent": 6, - "type": "it", - "isSkipped": false, - "isTodo": false - }, - { - "id": "on-add-agent-modal-there-should-be-modal-that-has-cloud-formation-details-as-well-as-button-that-redirects-user-to-cloud-formation-page-on-aws-upon-clicking-them-", - "rawLine": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => {", - "line": " it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ')", - "label": "On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ", - "indent": 6, - "type": "it", - "isSkipped": false, - "isTodo": false - }, - { - "id": "clicking-on-launch-cloudformation-on-post-intall-modal-should-lead-user-to-cloud-formation-page", - "rawLine": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => {", - "line": " it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page')", - "label": "Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page", - "indent": 6, - "type": "it", - "isSkipped": false, - "isTodo": false - } - ] - }, { "id": "cis_gcp-organization", "rawLine": " describe('CIS_GCP Organization', () => {", @@ -13716,6 +15076,50 @@ } ] }, + { + "id": "cis_gcp-organization-credentials-file", + "rawLine": " describe('CIS_GCP Organization Credentials File', () => {", + "line": " describe('CIS_GCP Organization Credentials File')", + "label": "CIS_GCP Organization Credentials File", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_gcp-organization-credentials-file-workflow", + "rawLine": " it('CIS_GCP Organization Credentials File workflow', async () => {", + "line": " it('CIS_GCP Organization Credentials File workflow')", + "label": "CIS_GCP Organization Credentials File workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "cis_gcp-organization-credentials-json", + "rawLine": " describe('CIS_GCP Organization Credentials JSON', () => {", + "line": " describe('CIS_GCP Organization Credentials JSON')", + "label": "CIS_GCP Organization Credentials JSON", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "cis_gcp-organization-credentials-json-workflow", + "rawLine": " it('CIS_GCP Organization Credentials JSON workflow', async () => {", + "line": " it('CIS_GCP Organization Credentials JSON workflow')", + "label": "CIS_GCP Organization Credentials JSON workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, { "id": "cis_gcp-single", "rawLine": " describe('CIS_GCP Single', () => {", @@ -13812,6 +15216,300 @@ } ] }, + { + "filePath": "x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts", + "fileName": "cis_integration_eks.ts", + "directory": "x-pack/test/cloud_security_posture_functional", + "tags": [ + "FTR" + ], + "lines": [ + " describe('Test adding Cloud Security Posture Integrations KSPM EKS')", + " describe('KSPM EKS Assume Role')", + " it('KSPM EKS Assume Role workflow')", + " describe('KSPM EKS Direct Access')", + " it('KSPM EKS Direct Access Workflow')", + " describe('KSPM EKS Temporary Keys')", + " it('KSPM EKS Temporary Keys Workflow')", + " describe('KSPM EKS Shared Credentials')", + " it('KSPM EKS Shared Credentials Workflow')" + ], + "testSuits": [ + { + "id": "test-adding-cloud-security-posture-integrations-kspm-eks", + "rawLine": " describe('Test adding Cloud Security Posture Integrations KSPM EKS', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations KSPM EKS')", + "label": "Test adding Cloud Security Posture Integrations KSPM EKS", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-assume-role", + "rawLine": " describe('KSPM EKS Assume Role', async () => {", + "line": " describe('KSPM EKS Assume Role')", + "label": "KSPM EKS Assume Role", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-assume-role-workflow", + "rawLine": " it('KSPM EKS Assume Role workflow', async () => {", + "line": " it('KSPM EKS Assume Role workflow')", + "label": "KSPM EKS Assume Role workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-direct-access", + "rawLine": " describe('KSPM EKS Direct Access', async () => {", + "line": " describe('KSPM EKS Direct Access')", + "label": "KSPM EKS Direct Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-direct-access-workflow", + "rawLine": " it('KSPM EKS Direct Access Workflow', async () => {", + "line": " it('KSPM EKS Direct Access Workflow')", + "label": "KSPM EKS Direct Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-temporary-keys", + "rawLine": " describe('KSPM EKS Temporary Keys', () => {", + "line": " describe('KSPM EKS Temporary Keys')", + "label": "KSPM EKS Temporary Keys", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-temporary-keys-workflow", + "rawLine": " it('KSPM EKS Temporary Keys Workflow', async () => {", + "line": " it('KSPM EKS Temporary Keys Workflow')", + "label": "KSPM EKS Temporary Keys Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-shared-credentials", + "rawLine": " describe('KSPM EKS Shared Credentials', () => {", + "line": " describe('KSPM EKS Shared Credentials')", + "label": "KSPM EKS Shared Credentials", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-eks-shared-credentials-workflow", + "rawLine": " it('KSPM EKS Shared Credentials Workflow', async () => {", + "line": " it('KSPM EKS Shared Credentials Workflow')", + "label": "KSPM EKS Shared Credentials Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ], + "tree": [ + { + "id": "test-adding-cloud-security-posture-integrations-kspm-eks", + "rawLine": " describe('Test adding Cloud Security Posture Integrations KSPM EKS', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations KSPM EKS')", + "label": "Test adding Cloud Security Posture Integrations KSPM EKS", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "kspm-eks-assume-role", + "rawLine": " describe('KSPM EKS Assume Role', async () => {", + "line": " describe('KSPM EKS Assume Role')", + "label": "KSPM EKS Assume Role", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "kspm-eks-assume-role-workflow", + "rawLine": " it('KSPM EKS Assume Role workflow', async () => {", + "line": " it('KSPM EKS Assume Role workflow')", + "label": "KSPM EKS Assume Role workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "kspm-eks-direct-access", + "rawLine": " describe('KSPM EKS Direct Access', async () => {", + "line": " describe('KSPM EKS Direct Access')", + "label": "KSPM EKS Direct Access", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "kspm-eks-direct-access-workflow", + "rawLine": " it('KSPM EKS Direct Access Workflow', async () => {", + "line": " it('KSPM EKS Direct Access Workflow')", + "label": "KSPM EKS Direct Access Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "kspm-eks-temporary-keys", + "rawLine": " describe('KSPM EKS Temporary Keys', () => {", + "line": " describe('KSPM EKS Temporary Keys')", + "label": "KSPM EKS Temporary Keys", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "kspm-eks-temporary-keys-workflow", + "rawLine": " it('KSPM EKS Temporary Keys Workflow', async () => {", + "line": " it('KSPM EKS Temporary Keys Workflow')", + "label": "KSPM EKS Temporary Keys Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + }, + { + "id": "kspm-eks-shared-credentials", + "rawLine": " describe('KSPM EKS Shared Credentials', () => {", + "line": " describe('KSPM EKS Shared Credentials')", + "label": "KSPM EKS Shared Credentials", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "kspm-eks-shared-credentials-workflow", + "rawLine": " it('KSPM EKS Shared Credentials Workflow', async () => {", + "line": " it('KSPM EKS Shared Credentials Workflow')", + "label": "KSPM EKS Shared Credentials Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + } + ] + } + ] + }, + { + "filePath": "x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts", + "fileName": "cis_integration_k8s.ts", + "directory": "x-pack/test/cloud_security_posture_functional", + "tags": [ + "FTR" + ], + "lines": [ + " describe('Test adding Cloud Security Posture Integrations KSPM K8S')", + " describe('KSPM K8S')", + " it('KSPM K8S Workflow')" + ], + "testSuits": [ + { + "id": "test-adding-cloud-security-posture-integrations-kspm-k8s", + "rawLine": " describe('Test adding Cloud Security Posture Integrations KSPM K8S', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations KSPM K8S')", + "label": "Test adding Cloud Security Posture Integrations KSPM K8S", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-k8s", + "rawLine": " describe('KSPM K8S', () => {", + "line": " describe('KSPM K8S')", + "label": "KSPM K8S", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false + }, + { + "id": "kspm-k8s-workflow", + "rawLine": " it('KSPM K8S Workflow', async () => {", + "line": " it('KSPM K8S Workflow')", + "label": "KSPM K8S Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ], + "tree": [ + { + "id": "test-adding-cloud-security-posture-integrations-kspm-k8s", + "rawLine": " describe('Test adding Cloud Security Posture Integrations KSPM K8S', function () {", + "line": " describe('Test adding Cloud Security Posture Integrations KSPM K8S')", + "label": "Test adding Cloud Security Posture Integrations KSPM K8S", + "indent": 2, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "kspm-k8s", + "rawLine": " describe('KSPM K8S', () => {", + "line": " describe('KSPM K8S')", + "label": "KSPM K8S", + "indent": 4, + "type": "describe", + "isSkipped": false, + "isTodo": false, + "children": [ + { + "id": "kspm-k8s-workflow", + "rawLine": " it('KSPM K8S Workflow', async () => {", + "line": " it('KSPM K8S Workflow')", + "label": "KSPM K8S Workflow", + "indent": 6, + "type": "it", + "isSkipped": false, + "isTodo": false + } + ] + } + ] + } + ] + }, { "filePath": "x-pack/test/cloud_security_posture_functional/pages/compliance_dashboard.ts", "fileName": "compliance_dashboard.ts", @@ -13943,11 +15641,12 @@ "fileName": "findings_alerts.ts", "directory": "x-pack/test/cloud_security_posture_functional", "tags": [ - "FTR" + "FTR", + "HAS SKIP" ], "lines": [ " describe('Findings Page - Alerts')", - " describe('Create detection rule')", + " describe.skip('Create detection rule')", " it('Creates a detection rule from the Take Action button and navigates to rule page')", " it('Creates a detection rule from the Alerts section and navigates to rule page')", " describe('Rule details')", @@ -13969,12 +15668,12 @@ }, { "id": "create-detection-rule", - "rawLine": " describe('Create detection rule', () => {", - "line": " describe('Create detection rule')", + "rawLine": " describe.skip('Create detection rule', () => {", + "line": " describe.skip('Create detection rule')", "label": "Create detection rule", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -14061,12 +15760,12 @@ "children": [ { "id": "create-detection-rule", - "rawLine": " describe('Create detection rule', () => {", - "line": " describe('Create detection rule')", + "rawLine": " describe.skip('Create detection rule', () => {", + "line": " describe.skip('Create detection rule')", "label": "Create detection rule", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -14076,7 +15775,7 @@ "label": "Creates a detection rule from the Take Action button and navigates to rule page", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -14086,7 +15785,7 @@ "label": "Creates a detection rule from the Alerts section and navigates to rule page", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] @@ -15095,10 +16794,11 @@ "fileName": "rules.ts", "directory": "x-pack/test/cloud_security_posture_functional", "tags": [ - "FTR" + "FTR", + "HAS SKIP" ], "lines": [ - " describe('Cloud Posture Rules Page')", + " describe.skip('Cloud Posture Rules Page')", " describe('Rules Page - Rules Counters')", " it('Shows posture score when there are findings')", " it('Clicking the posture score button leads to the dashboard')", @@ -15130,12 +16830,12 @@ "testSuits": [ { "id": "cloud-posture-rules-page", - "rawLine": " describe('Cloud Posture Rules Page', function () {", - "line": " describe('Cloud Posture Rules Page')", + "rawLine": " describe.skip('Cloud Posture Rules Page', function () {", + "line": " describe.skip('Cloud Posture Rules Page')", "label": "Cloud Posture Rules Page", "indent": 2, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15412,12 +17112,12 @@ "tree": [ { "id": "cloud-posture-rules-page", - "rawLine": " describe('Cloud Posture Rules Page', function () {", - "line": " describe('Cloud Posture Rules Page')", + "rawLine": " describe.skip('Cloud Posture Rules Page', function () {", + "line": " describe.skip('Cloud Posture Rules Page')", "label": "Cloud Posture Rules Page", "indent": 2, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -15427,7 +17127,7 @@ "label": "Rules Page - Rules Counters", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -15437,7 +17137,7 @@ "label": "Shows posture score when there are findings", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15447,7 +17147,7 @@ "label": "Clicking the posture score button leads to the dashboard", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15457,7 +17157,7 @@ "label": "Shows integrations count when there are findings", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15467,7 +17167,7 @@ "label": "Clicking the integrations counter button leads to the integration page", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15477,7 +17177,7 @@ "label": "Shows the failed findings counter when there are findings", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15487,7 +17187,7 @@ "label": "Clicking the failed findings button leads to the findings page", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15497,7 +17197,7 @@ "label": "Shows the disabled rules count", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15507,7 +17207,7 @@ "label": "Clicking the disabled rules button shows enables the disabled filter", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15517,7 +17217,7 @@ "label": "Shows empty state when there are no findings", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] @@ -15529,7 +17229,7 @@ "label": "Rules Page - Bulk Action buttons", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -15539,7 +17239,7 @@ "label": "It should disable Enable option when there are all rules selected are already enabled ", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15549,7 +17249,7 @@ "label": "It should disable both Enable and Disable options when there are no rules selected", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15559,7 +17259,7 @@ "label": "It should disable Disable option when there are all rules selected are already Disabled", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15569,7 +17269,7 @@ "label": "Both option should not be disabled if selected rules contains both enabled and disabled rules", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] @@ -15581,7 +17281,7 @@ "label": "Rules Page - Enable Rules and Disabled Rules Filter Toggle", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -15591,7 +17291,7 @@ "label": "Should only display Enabled rules when Enabled Rules filter is ON", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15601,7 +17301,7 @@ "label": "Should only display Disabled rules when Disabled Rules filter is ON", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] @@ -15613,7 +17313,7 @@ "label": "Rules Page - CIS Section & Rule Number filters", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -15623,7 +17323,7 @@ "label": "Table should only show result that has the same section as in the Section filter", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15633,7 +17333,7 @@ "label": "Table should only show result that has the same section as in the Rule number filter", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15643,7 +17343,7 @@ "label": "Table should only show result that passes both Section and Rule number filter", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] @@ -15655,7 +17355,7 @@ "label": "Rules Page - Flyout", "indent": 4, "type": "describe", - "isSkipped": false, + "isSkipped": true, "isTodo": false, "children": [ { @@ -15665,7 +17365,7 @@ "label": "Users are able to Enable/Disable Rule from Switch on Rule Flyout", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15675,7 +17375,7 @@ "label": "Alerts section of Rules Flyout shows Disabled text when Rules are disabled", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15685,7 +17385,7 @@ "label": "Users are able to Enable/Disable Rule from Take Action on Rule Flyout", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false }, { @@ -15695,7 +17395,7 @@ "label": "Alerts section of Rules Flyout shows Detection Rule Counter component when Rules are enabled", "indent": 6, "type": "it", - "isSkipped": false, + "isSkipped": true, "isTodo": false } ] diff --git a/x-pack/plugins/cloud_security_posture/public/common/constants.ts b/x-pack/plugins/cloud_security_posture/public/common/constants.ts index 735a28a8ed0e1..a9bee587980f5 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/constants.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/constants.ts @@ -137,6 +137,7 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = { defaultMessage: 'CIS Kubernetes', }), icon: 'logoKubernetes', + testId: 'cisK8sTestId', }, { type: CLOUDBEAT_EKS, @@ -150,6 +151,7 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = { tooltip: i18n.translate('xpack.csp.kspmIntegration.eksOption.tooltipContent', { defaultMessage: 'Elastic Kubernetes Service', }), + testId: 'cisEksTestId', }, { type: CLOUDBEAT_AKS, diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_input_var_fields.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_input_var_fields.tsx index 960c1c3b39ddc..a66bff8bd3506 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_input_var_fields.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/aws_input_var_fields.tsx @@ -18,7 +18,13 @@ export const AwsInputVarFields = ({ onChange, packageInfo, }: { - fields: Array; + fields: Array< + AwsOptions[keyof AwsOptions]['fields'][number] & { + value: string; + id: string; + dataTestSubj: string; + } + >; onChange: (key: string, value: string) => void; packageInfo: PackageInfo; }) => { @@ -55,6 +61,7 @@ export const AwsInputVarFields = ({ errors={[]} forceShowErrors={false} isEditPage={true} + data-test-subj={field.dataTestSubj} />

    @@ -74,6 +81,7 @@ export const AwsInputVarFields = ({ fullWidth value={field.value || ''} onChange={(event) => onChange(field.id, event.target.value)} + data-test-subj={field.dataTestSubj} /> )} diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/get_aws_credentials_form_options.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/get_aws_credentials_form_options.tsx index d490e7cad5e27..cb96e5a58d566 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/get_aws_credentials_form_options.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/aws_credentials_form/get_aws_credentials_form_options.tsx @@ -73,7 +73,7 @@ const AWS_FIELD_LABEL = { export type AwsCredentialsFields = Record< string, - { label: string; type?: 'password' | 'text'; isSecret?: boolean } + { label: string; type?: 'password' | 'text'; isSecret?: boolean; dataTestSubj: string } >; export interface AwsOptionValue { @@ -92,6 +92,7 @@ export const getInputVarsFields = (input: NewPackagePolicyInput, fields: AwsCred label: field.label, type: field.type || 'text', value: inputVar.value, + dataTestSubj: field.dataTestSubj, isSecret: field.isSecret, } as const; }); @@ -141,6 +142,7 @@ export const getAwsCredentialsFormOptions = (): AwsOptions => ({ label: i18n.translate('xpack.csp.awsIntegration.roleArnLabel', { defaultMessage: 'Role ARN', }), + dataTestSubj: 'awsRoleArnInput', }, }, }, @@ -150,10 +152,11 @@ export const getAwsCredentialsFormOptions = (): AwsOptions => ({ }), info: DirectAccessKeysDescription, fields: { - access_key_id: { label: AWS_FIELD_LABEL.access_key_id }, + access_key_id: { label: AWS_FIELD_LABEL.access_key_id, dataTestSubj: 'awsDirectAccessKeyId' }, secret_access_key: { label: AWS_FIELD_LABEL.secret_access_key, type: 'password', + dataTestSubj: 'awsDirectAccessSecretKey', isSecret: true, }, }, @@ -164,16 +167,21 @@ export const getAwsCredentialsFormOptions = (): AwsOptions => ({ defaultMessage: 'Temporary keys', }), fields: { - access_key_id: { label: AWS_FIELD_LABEL.access_key_id }, + access_key_id: { + label: AWS_FIELD_LABEL.access_key_id, + dataTestSubj: 'awsTemporaryKeysAccessKeyId', + }, secret_access_key: { label: AWS_FIELD_LABEL.secret_access_key, type: 'password', + dataTestSubj: 'awsTemporaryKeysSecretAccessKey', isSecret: true, }, session_token: { label: i18n.translate('xpack.csp.awsIntegration.sessionTokenLabel', { defaultMessage: 'Session Token', }), + dataTestSubj: 'awsTemporaryKeysSessionToken', }, }, }, @@ -187,11 +195,13 @@ export const getAwsCredentialsFormOptions = (): AwsOptions => ({ label: i18n.translate('xpack.csp.awsIntegration.sharedCredentialFileLabel', { defaultMessage: 'Shared Credential File', }), + dataTestSubj: 'awsSharedCredentialFile', }, credential_profile_name: { label: i18n.translate('xpack.csp.awsIntegration.credentialProfileNameLabel', { defaultMessage: 'Credential Profile Name', }), + dataTestSubj: 'awsCredentialProfileName', }, }, }, diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/azure_credentials_form/azure_credentials_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/azure_credentials_form/azure_credentials_form.tsx index 1bf6b72cf1417..0f3b9916cef1a 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/azure_credentials_form/azure_credentials_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/azure_credentials_form/azure_credentials_form.tsx @@ -35,6 +35,7 @@ import { useAzureCredentialsForm } from './hooks'; import { findVariableDef, getPosturePolicy, NewPackagePolicyPostureInput } from '../utils'; import { CspRadioOption, RadioGroup } from '../csp_boxed_radio_group'; import { CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS } from '../../test_subjects'; +import { AZURE_CREDENTIALS_TYPE_SELECTOR_TEST_SUBJ } from '../../test_subjects'; interface AzureSetupInfoContentProps { integrationLink: string; @@ -215,6 +216,7 @@ const AzureCredentialTypeSelector = ({ onChange={(optionElem) => { onChange(optionElem.target.value as AzureCredentialsType); }} + data-test-subj={AZURE_CREDENTIALS_TYPE_SELECTOR_TEST_SUBJ} /> ); diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_credentials_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_credentials_form.tsx index 476aa627cfb53..ddd447a4fcdcd 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_credentials_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/eks_credentials_form.tsx @@ -119,7 +119,10 @@ type AwsOptions = Record< { label: string; info: React.ReactNode; - fields: Record; + fields: Record< + string, + { label: string; type?: 'password' | 'text'; isSecret?: boolean; dataTestSubj: string } + >; testId: string; } >; @@ -135,6 +138,7 @@ const options: AwsOptions = { label: i18n.translate('xpack.csp.eksIntegration.roleArnLabel', { defaultMessage: 'Role ARN', }), + dataTestSubj: 'roleArnInput', }, }, testId: 'assumeRoleTestId', @@ -145,10 +149,11 @@ const options: AwsOptions = { }), info: DirectAccessKeysDescription, fields: { - access_key_id: { label: AWS_FIELD_LABEL.access_key_id }, + access_key_id: { label: AWS_FIELD_LABEL.access_key_id, dataTestSubj: 'directAccessKeyId' }, secret_access_key: { label: AWS_FIELD_LABEL.secret_access_key, type: 'password', + dataTestSubj: 'directAccessSecretKey', isSecret: true, }, }, @@ -160,16 +165,21 @@ const options: AwsOptions = { defaultMessage: 'Temporary keys', }), fields: { - access_key_id: { label: AWS_FIELD_LABEL.access_key_id }, + access_key_id: { + label: AWS_FIELD_LABEL.access_key_id, + dataTestSubj: 'temporaryKeysAccessKeyId', + }, secret_access_key: { label: AWS_FIELD_LABEL.secret_access_key, type: 'password', + dataTestSubj: 'temporaryKeysSecretAccessKey', isSecret: true, }, session_token: { label: i18n.translate('xpack.csp.eksIntegration.sessionTokenLabel', { defaultMessage: 'Session Token', }), + dataTestSubj: 'temporaryKeysSessionToken', }, }, testId: 'temporaryKeyTestId', @@ -184,11 +194,13 @@ const options: AwsOptions = { label: i18n.translate('xpack.csp.eksIntegration.sharedCredentialFileLabel', { defaultMessage: 'Shared Credential File', }), + dataTestSubj: 'sharedCredentialFile', }, credential_profile_name: { label: i18n.translate('xpack.csp.eksIntegration.credentialProfileNameLabel', { defaultMessage: 'Credential Profile Name', }), + dataTestSubj: 'credentialProfileName', }, }, testId: 'sharedCredentialsTestId', @@ -222,6 +234,7 @@ const getInputVarsFields = ( id, label: field.label, type: field.type || 'text', + dataTestSubj: field.dataTestSubj, value: inputVar.value, isSecret: field?.isSecret, } as const; diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx index 9ef413d1e3e46..c205ef7f82525 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.tsx @@ -110,12 +110,14 @@ const getAwsAccountTypeOptions = (isAwsOrgDisabled: boolean): CspRadioGroupProps defaultMessage: 'Supported from integration version 1.5.0 and above', }) : undefined, + testId: 'awsOrganizationTestId', }, { id: AWS_SINGLE_ACCOUNT, label: i18n.translate('xpack.csp.fleetIntegration.awsAccountType.singleAccountLabel', { defaultMessage: 'Single Account', }), + testId: 'awsSingleTestId', }, ]; @@ -150,6 +152,7 @@ const getAzureAccountTypeOptions = ( label: i18n.translate('xpack.csp.fleetIntegration.azureAccountType.azureOrganizationLabel', { defaultMessage: 'Azure Organization', }), + testId: 'azureOrganizationAccountTestId', disabled: isAzureOrganizationDisabled, tooltip: isAzureOrganizationDisabled ? i18n.translate( @@ -165,6 +168,7 @@ const getAzureAccountTypeOptions = ( label: i18n.translate('xpack.csp.fleetIntegration.azureAccountType.singleAccountLabel', { defaultMessage: 'Single Subscription', }), + testId: 'azureSingleAccountTestId', }, ]; diff --git a/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts index 0872dff084498..4538b04520f84 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts +++ b/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts @@ -63,6 +63,7 @@ export const CIS_AZURE_OPTION_TEST_SUBJ = 'cisAzureTestId'; export const SETUP_TECHNOLOGY_SELECTOR_ACCORDION_TEST_SUBJ = 'setup-technology-selector-accordion'; export const SETUP_TECHNOLOGY_SELECTOR_TEST_SUBJ = 'setup-technology-selector'; +export const AZURE_CREDENTIALS_TYPE_SELECTOR_TEST_SUBJ = 'azure-credentials-type-selector'; export const CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS = { TENANT_ID: 'cisAzureTenantId', CLIENT_ID: 'cisAzureClientId', diff --git a/x-pack/test/cloud_security_posture_functional/config.ts b/x-pack/test/cloud_security_posture_functional/config.ts index 96698bbbb007e..bd2f1eb9d594d 100644 --- a/x-pack/test/cloud_security_posture_functional/config.ts +++ b/x-pack/test/cloud_security_posture_functional/config.ts @@ -38,7 +38,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { * 2. merge the updated version number change to kibana */ `--xpack.fleet.packages.0.name=cloud_security_posture`, - `--xpack.fleet.packages.0.version=1.6.5`, + `--xpack.fleet.packages.0.version=1.7.4`, // `--xpack.fleet.registryUrl=https://localhost:8080`, `--xpack.fleet.agents.fleet_server.hosts=["https://ftr.kibana:8220"]`, `--xpack.fleet.internal.fleetServerStandalone=true`, diff --git a/x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts b/x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts index 038d16a82ca82..18df32bd71993 100644 --- a/x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts +++ b/x-pack/test/cloud_security_posture_functional/page_objects/add_cis_integration_form_page.ts @@ -15,46 +15,25 @@ export function AddCisIntegrationFormPageProvider({ const PageObjects = getPageObjects(['common', 'header']); const browser = getService('browser'); + const cisAzure = { + getPostInstallArmTemplateModal: async () => { + return await testSubjects.find('postInstallAzureArmTemplateModal'); + }, + }; + const cisAws = { getUrlValueInEditPage: async () => { /* Newly added/edited integration always shows up on top by default as such we can just always click the most top if we want to check for the latest one */ const fieldValue = await (await testSubjects.find('externalLink')).getAttribute('href'); return fieldValue; }, - }; - - const cisGcp = { - getIntegrationFormEntirePage: () => testSubjects.find('dataCollectionSetupStep'), - - getIntegrationPolicyTable: () => testSubjects.find('integrationPolicyTable'), - - getIntegrationFormEditPage: () => testSubjects.find('editPackagePolicy_page'), - - findOptionInPage: async (text: string) => { - await PageObjects.header.waitUntilLoadingHasFinished(); - const optionToBeClicked = await testSubjects.find(text); - return await optionToBeClicked; - }, - - clickOptionButton: async (text: string) => { - const optionToBeClicked = await cisGcp.findOptionInPage(text); - await optionToBeClicked.click(); - }, - - clickSaveButton: async () => { - const optionToBeClicked = await cisGcp.findOptionInPage('createPackagePolicySaveButton'); - await optionToBeClicked.click(); - }, - - clickSaveIntegrationButton: async () => { - const optionToBeClicked = await cisGcp.findOptionInPage('saveIntegration'); - await optionToBeClicked.click(); - }, - getPostInstallModal: async () => { - return await testSubjects.find('confirmModalTitleText'); + getPostInstallCloudFormationModal: async () => { + return await testSubjects.find('postInstallCloudFormationModal'); }, + }; + const cisGcp = { isPostInstallGoogleCloudShellModal: async (isOrg: boolean, orgID?: string, prjID?: string) => { const googleCloudShellModal = await testSubjects.find('postInstallGoogleCloudShellModal'); const googleCloudShellModalVisibleText = await googleCloudShellModal.getVisibleText(); @@ -143,6 +122,15 @@ export function AddCisIntegrationFormPageProvider({ await PageObjects.header.waitUntilLoadingHasFinished(); }; + const navigateToAddIntegrationKspmPage = async () => { + await PageObjects.common.navigateToUrl( + 'fleet', // Defined in Security Solution plugin + 'integrations/cloud_security_posture/add-integration/kspm', + { shouldUseHashForSubUrl: false } + ); + await PageObjects.header.waitUntilLoadingHasFinished(); + }; + const navigateToIntegrationCspList = async () => { await PageObjects.common.navigateToActualUrl( 'integrations', // Defined in Security Solution plugin @@ -181,11 +169,96 @@ export function AddCisIntegrationFormPageProvider({ return currentUrl; }; + const getIntegrationFormEntirePage = () => testSubjects.find('dataCollectionSetupStep'); + + const getIntegrationPolicyTable = () => testSubjects.find('integrationPolicyTable'); + + const getIntegrationFormEditPage = () => testSubjects.find('editPackagePolicy_page'); + + const findOptionInPage = async (text: string) => { + await PageObjects.header.waitUntilLoadingHasFinished(); + const optionToBeClicked = await testSubjects.find(text); + return await optionToBeClicked; + }; + + const clickOptionButton = async (text: string) => { + const optionToBeClicked = await findOptionInPage(text); + await optionToBeClicked.scrollIntoView(); + await optionToBeClicked.click(); + }; + + const clickSaveButton = async () => { + const optionToBeClicked = await findOptionInPage('createPackagePolicySaveButton'); + await optionToBeClicked.click(); + }; + + const clickSaveIntegrationButton = async () => { + const optionToBeClicked = await findOptionInPage('saveIntegration'); + await optionToBeClicked.click(); + }; + + const getPostInstallModal = async () => { + return await testSubjects.find('confirmModalTitleText'); + }; + + const fillInTextField = async (selector: string, text: string) => { + const textField = await testSubjects.find(selector); + await textField.type(text); + }; + + const chooseDropDown = async (selector: string, text: string) => { + const credentialTypeBox = await testSubjects.find(selector); + const chosenOption = await testSubjects.find(text); + await credentialTypeBox.click(); + await chosenOption.click(); + }; + + const getFieldValueInEditPage = async (field: string) => { + /* Newly added/edited integration always shows up on top by default as such we can just always click the most top if we want to check for the latest one */ + const integrationList = await testSubjects.findAll('integrationNameLink'); + await integrationList[0].click(); + const fieldValue = await (await testSubjects.find(field)).getAttribute('value'); + return fieldValue; + }; + + const doesStringExistInCodeBlock = async (str: string) => { + const flyout = await testSubjects.find('agentEnrollmentFlyout'); + const codeBlock = await flyout.findByXpath('//code'); + const commandsToBeCopied = await codeBlock.getVisibleText(); + return commandsToBeCopied.includes(str); + }; + + const getFieldValueInAddAgentFlyout = async (field: string, value: string) => { + /* Newly added/edited integration always shows up on top by default as such we can just always click the most top if we want to check for the latest one */ + const integrationList = await testSubjects.findAll('agentEnrollmentFlyout'); + await integrationList[0].click(); + await PageObjects.header.waitUntilLoadingHasFinished(); + const fieldValue = await (await testSubjects.find(field)).getAttribute(value); + return fieldValue; + }; + + const selectValue = async (selector: string, value: string) => { + return testSubjects.selectValue(selector, value); + }; + + const getValueInEditPage = async (field: string) => { + /* Newly added/edited integration always shows up on top by default as such we can just always click the most top if we want to check for the latest one */ + const fieldValue = await (await testSubjects.find(field)).getAttribute('value'); + return fieldValue; + }; + + const isOptionChecked = async (testId: string, id: string) => { + const checkBox = await testSubjects.find(testId); + return await (await checkBox.findByCssSelector(`input[id='${id}']`)).getAttribute('checked'); + }; + return { + cisAzure, cisAws, cisGcp, navigateToAddIntegrationCspmPage, navigateToAddIntegrationCnvmPage, + navigateToAddIntegrationKspmPage, navigateToIntegrationCspList, getUrlOnPostInstallModal, isRadioButtonChecked, @@ -193,5 +266,21 @@ export function AddCisIntegrationFormPageProvider({ clickFirstElementOnIntegrationTable, clickFirstElementOnIntegrationTableAddAgent, clickLaunchAndGetCurrentUrl, + getIntegrationFormEntirePage, + getIntegrationPolicyTable, + getIntegrationFormEditPage, + findOptionInPage, + clickOptionButton, + clickSaveButton, + clickSaveIntegrationButton, + getPostInstallModal, + fillInTextField, + chooseDropDown, + getFieldValueInEditPage, + doesStringExistInCodeBlock, + getFieldValueInAddAgentFlyout, + selectValue, + getValueInEditPage, + isOptionChecked, }; } diff --git a/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.ts new file mode 100644 index 0000000000000..1e5ff7868f902 --- /dev/null +++ b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cnvm/cis_integration_cnvm.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 expect from '@kbn/expect'; +import type { FtrProviderContext } from '../../../ftr_provider_context'; + +// eslint-disable-next-line import/no-default-export +export default function (providerContext: FtrProviderContext) { + const { getPageObjects } = providerContext; + const pageObjects = getPageObjects(['cloudPostureDashboard', 'cisAddIntegration', 'header']); + + describe('Test adding Cloud Security Posture Integrations CNVM', function () { + this.tags(['cloud_security_posture_cis_integration_cnvm']); + let cisIntegration: typeof pageObjects.cisAddIntegration; + + beforeEach(async () => { + cisIntegration = pageObjects.cisAddIntegration; + + await cisIntegration.navigateToAddIntegrationCspmPage(); + }); + + describe('CNVM AWS', () => { + it('Hyperlink on PostInstallation Modal should have the correct URL', async () => { + await cisIntegration.navigateToAddIntegrationCnvmPage(); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect( + (await cisIntegration.getUrlOnPostInstallModal()) === + 'https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-howdoesitwork.html' + ); + }); + + it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => { + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTableAddAgent(); + expect( + ( + await cisIntegration.getFieldValueInAddAgentFlyout( + 'launchCloudFormationButtonAgentFlyoutTestId', + 'href' + ) + )?.includes('https://console.aws.amazon.com/cloudformation/') + ).to.be(true); + }); + + it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => { + await cisIntegration.navigateToAddIntegrationCnvmPage(); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect( + ( + await cisIntegration.clickLaunchAndGetCurrentUrl( + 'confirmCloudFormationModalConfirmButton', + 1 + ) + ).includes('console.aws.amazon.com%2Fcloudformation') + ).to.be(true); + }); + }); + }); +} diff --git a/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts new file mode 100644 index 0000000000000..2dd8f36af154d --- /dev/null +++ b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_aws.ts @@ -0,0 +1,320 @@ +/* + * 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 type { FtrProviderContext } from '../../../ftr_provider_context'; + +const CIS_AWS_OPTION_TEST_ID = 'cisAwsTestId'; +const AWS_SINGLE_ACCOUNT_TEST_ID = 'awsSingleTestId'; +const AWS_MANUAL_TEST_ID = 'aws-manual-setup-option'; +const AWS_CREDENTIAL_SELECTOR = 'aws-credentials-type-selector'; +const ROLE_ARN_TEST_ID = 'awsRoleArnInput'; +const DIRECT_ACCESS_KEY_ID_TEST_ID = 'awsDirectAccessKeyId'; +const DIRECT_ACCESS_SECRET_KEY_TEST_ID = 'passwordInput-secret-access-key'; +const TEMP_ACCESS_KEY_ID_TEST_ID = 'awsTemporaryKeysAccessKeyId'; +const TEMP_ACCESS_KEY_SECRET_KEY_TEST_ID = 'passwordInput-secret-access-key'; +const TEMP_ACCESS_SESSION_TOKEN_TEST_ID = 'awsTemporaryKeysSessionToken'; +const SHARED_CREDENTIALS_FILE_TEST_ID = 'awsSharedCredentialFile'; +const SHARED_CREDETIALS_PROFILE_NAME_TEST_ID = 'awsCredentialProfileName'; + +// eslint-disable-next-line import/no-default-export +export default function (providerContext: FtrProviderContext) { + const { getPageObjects } = providerContext; + const pageObjects = getPageObjects(['cloudPostureDashboard', 'cisAddIntegration', 'header']); + + describe('Test adding Cloud Security Posture Integrations CSPM AWS', function () { + this.tags(['cloud_security_posture_cis_integration_cspm_aws']); + let cisIntegrationAws: typeof pageObjects.cisAddIntegration.cisAws; + let cisIntegration: typeof pageObjects.cisAddIntegration; + + beforeEach(async () => { + cisIntegration = pageObjects.cisAddIntegration; + cisIntegrationAws = pageObjects.cisAddIntegration.cisAws; + + await cisIntegration.navigateToAddIntegrationCspmPage(); + }); + + describe('CIS_AWS Organization Cloud Formation', () => { + it('Initial form state, AWS Org account, and CloudFormation should be selected by default', async () => { + expect((await cisIntegration.isRadioButtonChecked('cloudbeat/cis_aws')) === true); + expect((await cisIntegration.isRadioButtonChecked('organization-account')) === true); + expect((await cisIntegration.isRadioButtonChecked('cloud_formation')) === true); + }); + it('Hyperlink on PostInstallation Modal should have the correct URL', async () => { + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegrationAws.getPostInstallCloudFormationModal()) !== undefined).to.be( + true + ); + pageObjects.header.waitUntilLoadingHasFinished(); + expect( + (await cisIntegration.getUrlOnPostInstallModal()) === + 'https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-howdoesitwork.html' + ); + }); + it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => { + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTableAddAgent(); + expect( + ( + await cisIntegration.getFieldValueInAddAgentFlyout( + 'launchCloudFormationButtonAgentFlyoutTestId', + 'href' + ) + )?.includes('https://console.aws.amazon.com/cloudformation/') + ).to.be(true); + }); + it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => { + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect( + ( + await cisIntegration.clickLaunchAndGetCurrentUrl( + 'confirmCloudFormationModalConfirmButton', + 2 + ) + ).includes('console.aws.amazon.com%2Fcloudformation') + ).to.be(true); + }); + }); + + describe('CIS_AWS Organization Manual Assume Role', () => { + it('CIS_AWS Organization Manual Assume Role Workflow', async () => { + const roleArn = 'RoleArnTestValue'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(ROLE_ARN_TEST_ID, roleArn); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect((await cisIntegration.getFieldValueInEditPage(ROLE_ARN_TEST_ID)) === roleArn).to.be( + true + ); + }); + }); + + describe('CIS_AWS Organization Manual Direct Access', () => { + it('CIS_AWS Organization Manual Direct Access Workflow', async () => { + const directAccessKeyId = 'directAccessKeyIdTest'; + const directAccessSecretKey = 'directAccessSecretKeyTest'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.clickOptionButton(AWS_CREDENTIAL_SELECTOR); + await cisIntegration.selectValue(AWS_CREDENTIAL_SELECTOR, 'direct_access_keys'); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(DIRECT_ACCESS_KEY_ID_TEST_ID, directAccessKeyId); + await cisIntegration.fillInTextField( + DIRECT_ACCESS_SECRET_KEY_TEST_ID, + directAccessSecretKey + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect( + (await cisIntegration.getFieldValueInEditPage(DIRECT_ACCESS_KEY_ID_TEST_ID)) === + directAccessKeyId + ).to.be(true); + }); + }); + + describe('CIS_AWS Organization Manual Temporary Keys', () => { + it('CIS_AWS Organization Manual Temporary Keys Workflow', async () => { + const accessKeyId = 'accessKeyIdTest'; + const accessKeySecretKey = 'accessKeySecretKeyTest'; + const tempAccessSessionToken = 'tempAccessSessionTokenTest'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.clickOptionButton(AWS_CREDENTIAL_SELECTOR); + await cisIntegration.selectValue(AWS_CREDENTIAL_SELECTOR, 'temporary_keys'); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(TEMP_ACCESS_KEY_ID_TEST_ID, accessKeyId); + await cisIntegration.fillInTextField( + TEMP_ACCESS_KEY_SECRET_KEY_TEST_ID, + accessKeySecretKey + ); + await cisIntegration.fillInTextField( + TEMP_ACCESS_SESSION_TOKEN_TEST_ID, + tempAccessSessionToken + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage(TEMP_ACCESS_KEY_ID_TEST_ID)) === accessKeyId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage(TEMP_ACCESS_SESSION_TOKEN_TEST_ID)) === + tempAccessSessionToken + ).to.be(true); + }); + }); + + describe('CIS_AWS Organization Manual Shared Access', () => { + it('CIS_AWS Organization Manual Shared Access Workflow', async () => { + const sharedCredentialFile = 'sharedCredentialFileTest'; + const sharedCredentialProfileName = 'sharedCredentialProfileNameTest'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.clickOptionButton(AWS_CREDENTIAL_SELECTOR); + await cisIntegration.selectValue(AWS_CREDENTIAL_SELECTOR, 'shared_credentials'); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(SHARED_CREDENTIALS_FILE_TEST_ID, sharedCredentialFile); + await cisIntegration.fillInTextField( + SHARED_CREDETIALS_PROFILE_NAME_TEST_ID, + sharedCredentialProfileName + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage(SHARED_CREDENTIALS_FILE_TEST_ID)) === + sharedCredentialFile + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage(SHARED_CREDETIALS_PROFILE_NAME_TEST_ID)) === + sharedCredentialProfileName + ).to.be(true); + }); + }); + + describe('CIS_AWS Single Cloud Formation', () => { + it('CIS_AWS Single Cloud Formation workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect( + (await cisIntegration.getUrlOnPostInstallModal()) === + 'https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-howdoesitwork.html' + ); + }); + }); + + describe('CIS_AWS Single Manual Assume Role', () => { + it('CIS_AWS Single Manual Assume Role Workflow', async () => { + const roleArn = 'RoleArnTestValue'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(ROLE_ARN_TEST_ID, roleArn); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect((await cisIntegration.getFieldValueInEditPage(ROLE_ARN_TEST_ID)) === roleArn).to.be( + true + ); + }); + }); + + describe('CIS_AWS Single Manual Direct Access', () => { + it('CIS_AWS Single Manual Direct Access Workflow', async () => { + const directAccessKeyId = 'directAccessKeyIdTest'; + const directAccessSecretKey = 'directAccessSecretKeyTest'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.clickOptionButton(AWS_CREDENTIAL_SELECTOR); + await cisIntegration.selectValue(AWS_CREDENTIAL_SELECTOR, 'direct_access_keys'); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(DIRECT_ACCESS_KEY_ID_TEST_ID, directAccessKeyId); + await cisIntegration.fillInTextField( + DIRECT_ACCESS_SECRET_KEY_TEST_ID, + directAccessSecretKey + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect( + (await cisIntegration.getFieldValueInEditPage(DIRECT_ACCESS_KEY_ID_TEST_ID)) === + directAccessKeyId + ).to.be(true); + }); + }); + + describe('CIS_AWS Single Manual Temporary Keys', () => { + it('CIS_AWS Single Manual Temporary Keys Workflow', async () => { + const accessKeyId = 'accessKeyIdTest'; + const accessKeySecretKey = 'accessKeySecretKeyTest'; + const tempAccessSessionToken = 'tempAccessSessionTokenTest'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.clickOptionButton(AWS_CREDENTIAL_SELECTOR); + await cisIntegration.selectValue(AWS_CREDENTIAL_SELECTOR, 'temporary_keys'); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(TEMP_ACCESS_KEY_ID_TEST_ID, accessKeyId); + await cisIntegration.fillInTextField( + TEMP_ACCESS_KEY_SECRET_KEY_TEST_ID, + accessKeySecretKey + ); + await cisIntegration.fillInTextField( + TEMP_ACCESS_SESSION_TOKEN_TEST_ID, + tempAccessSessionToken + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage(TEMP_ACCESS_KEY_ID_TEST_ID)) === accessKeyId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage(TEMP_ACCESS_SESSION_TOKEN_TEST_ID)) === + tempAccessSessionToken + ).to.be(true); + }); + }); + + describe('CIS_AWS Single Manual Shared Access', () => { + it('CIS_AWS Single Manual Shared Access Workflow', async () => { + const sharedCredentialFile = 'sharedCredentialFileTest'; + const sharedCredentialProfileName = 'sharedCredentialProfileNameTest'; + await cisIntegration.clickOptionButton(CIS_AWS_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(AWS_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.clickOptionButton(AWS_CREDENTIAL_SELECTOR); + await cisIntegration.selectValue(AWS_CREDENTIAL_SELECTOR, 'shared_credentials'); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(AWS_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(SHARED_CREDENTIALS_FILE_TEST_ID, sharedCredentialFile); + await cisIntegration.fillInTextField( + SHARED_CREDETIALS_PROFILE_NAME_TEST_ID, + sharedCredentialProfileName + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage(SHARED_CREDENTIALS_FILE_TEST_ID)) === + sharedCredentialFile + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage(SHARED_CREDETIALS_PROFILE_NAME_TEST_ID)) === + sharedCredentialProfileName + ).to.be(true); + }); + }); + }); +} diff --git a/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts new file mode 100644 index 0000000000000..6bd117c36a85d --- /dev/null +++ b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_azure.ts @@ -0,0 +1,282 @@ +/* + * 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 type { FtrProviderContext } from '../../../ftr_provider_context'; + +const CIS_AZURE_OPTION_TEST_ID = 'cisAzureTestId'; +const CIS_AZURE_SINGLE_SUB_TEST_ID = 'azureSingleAccountTestId'; +const AZURE_CREDENTIAL_SELECTOR = 'azure-credentials-type-selector'; + +const clientId = 'clientIdTest'; +const tenantId = 'tenantIdTest'; +const clientCertificatePath = 'clientCertificatePathTest'; +const clientSecret = 'clientSecretTest'; + +export const CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS = { + TENANT_ID: 'cisAzureTenantId', + CLIENT_ID: 'cisAzureClientId', + CLIENT_SECRET: 'passwordInput-client-secret', + CLIENT_CERTIFICATE_PATH: 'cisAzureClientCertificatePath', + CLIENT_CERTIFICATE_PASSWORD: 'cisAzureClientCertificatePassword', + CLIENT_USERNAME: 'cisAzureClientUsername', + CLIENT_PASSWORD: 'cisAzureClientPassword', +}; +export const CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS = { + ARM_TEMPLATE: 'cisAzureArmTemplate', + MANUAL: 'cisAzureManual', +}; + +// eslint-disable-next-line import/no-default-export +export default function (providerContext: FtrProviderContext) { + const { getPageObjects } = providerContext; + const pageObjects = getPageObjects(['cloudPostureDashboard', 'cisAddIntegration', 'header']); + + describe('Test adding Cloud Security Posture Integrations CSPM AZURE', function () { + this.tags(['cloud_security_posture_cis_integration_cspm_azure']); + let cisIntegration: typeof pageObjects.cisAddIntegration; + let cisIntegrationAzure: typeof pageObjects.cisAddIntegration.cisAzure; + + beforeEach(async () => { + cisIntegration = pageObjects.cisAddIntegration; + cisIntegrationAzure = pageObjects.cisAddIntegration.cisAzure; + + await cisIntegration.navigateToAddIntegrationCspmPage(); + }); + + describe('Azure Organization ARM Template', () => { + it('Azure Organization ARM Template Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS.ARM_TEMPLATE); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegrationAzure.getPostInstallArmTemplateModal()) !== undefined).to.be( + true + ); + expect( + (await cisIntegration.getUrlOnPostInstallModal()) === + 'https://azure.microsoft.com/en-us/get-started/azure-portal/resource-manager' + ); + }); + }); + + describe('Azure Organization Manual Managed Identity', () => { + it('Azure Organization Manual Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS.MANUAL); + await cisIntegration.selectValue(AZURE_CREDENTIAL_SELECTOR, 'managed_identity'); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + }); + }); + + describe('Azure Organization Manual Service Principle with Client Secret', () => { + it('Azure Organization Manual Service Principle with Client Secret Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS.MANUAL); + await cisIntegration.selectValue( + AZURE_CREDENTIAL_SELECTOR, + 'service_principal_with_client_secret' + ); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID, + clientId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID, + tenantId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_SECRET, + clientSecret + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID + )) === clientId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID + )) === tenantId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_SECRET + )) === clientSecret + ).to.be(true); + }); + }); + + describe('Azure Organization Manual Service Principle with Client Certificate', () => { + it('Azure Organization Manual Service Principle with Client Certificate Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS.MANUAL); + await cisIntegration.selectValue( + AZURE_CREDENTIAL_SELECTOR, + 'service_principal_with_client_certificate' + ); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID, + clientId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID, + tenantId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_CERTIFICATE_PATH, + clientCertificatePath + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID + )) === clientId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID + )) === tenantId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_CERTIFICATE_PATH + )) === clientCertificatePath + ).to.be(true); + }); + }); + + describe('Azure Single ARM Template', () => { + it('Azure Single ARM Template Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SINGLE_SUB_TEST_ID); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegrationAzure.getPostInstallArmTemplateModal()) !== undefined).to.be( + true + ); + expect( + (await cisIntegration.getUrlOnPostInstallModal()) === + 'https://azure.microsoft.com/en-us/get-started/azure-portal/resource-manager' + ); + }); + }); + + describe('Azure Single Manual Managed Identity', () => { + it('Azure Single Manual Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SINGLE_SUB_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS.MANUAL); + await cisIntegration.selectValue(AZURE_CREDENTIAL_SELECTOR, 'managed_identity'); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + }); + }); + + describe('Azure Single Manual Service Principle with Client Secret', () => { + it('Azure Single Manual Service Principle with Client Secret Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS.MANUAL); + await cisIntegration.selectValue( + AZURE_CREDENTIAL_SELECTOR, + 'service_principal_with_client_secret' + ); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID, + clientId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID, + tenantId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_SECRET, + clientSecret + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID + )) === clientId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID + )) === tenantId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_SECRET + )) === clientSecret + ).to.be(true); + }); + }); + + describe('Azure Single Manual Service Principle with Client Certificate', () => { + it('Azure Single Manual Service Principle with Client Certificate Workflow', async () => { + await cisIntegration.clickOptionButton(CIS_AZURE_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(CIS_AZURE_SETUP_FORMAT_TEST_SUBJECTS.MANUAL); + await cisIntegration.selectValue( + AZURE_CREDENTIAL_SELECTOR, + 'service_principal_with_client_certificate' + ); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID, + clientId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID, + tenantId + ); + await cisIntegration.fillInTextField( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_CERTIFICATE_PATH, + clientCertificatePath + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_ID + )) === clientId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.TENANT_ID + )) === tenantId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage( + CIS_AZURE_INPUT_FIELDS_TEST_SUBJECTS.CLIENT_CERTIFICATE_PATH + )) === clientCertificatePath + ).to.be(true); + }); + }); + }); +} diff --git a/x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts similarity index 51% rename from x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts rename to x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts index eb121f33f1278..b75c4aeb2b7f3 100644 --- a/x-pack/test/cloud_security_posture_functional/pages/cis_integration.ts +++ b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/cspm/cis_integration_gcp.ts @@ -6,10 +6,9 @@ */ import expect from '@kbn/expect'; -import type { FtrProviderContext } from '../ftr_provider_context'; +import type { FtrProviderContext } from '../../../ftr_provider_context'; const CIS_GCP_OPTION_TEST_ID = 'cisGcpTestId'; -const CIS_AWS_OPTION_TEST_ID = 'cisAwsTestId'; const GCP_ORGANIZATION_TEST_ID = 'gcpOrganizationAccountTestId'; const GCP_SINGLE_ACCOUNT_TEST_ID = 'gcpSingleAccountTestId'; const GCP_CLOUD_SHELL_TEST_ID = 'gcpGoogleCloudShellOptionTestId'; @@ -22,12 +21,11 @@ const CREDENTIALS_JSON_TEST_ID = 'credentials_json_test_id'; // eslint-disable-next-line import/no-default-export export default function (providerContext: FtrProviderContext) { - const { getPageObjects, getService } = providerContext; + const { getPageObjects } = providerContext; const pageObjects = getPageObjects(['cloudPostureDashboard', 'cisAddIntegration', 'header']); - const kibanaServer = getService('kibanaServer'); - describe('Test adding Cloud Security Posture Integrations', function () { - this.tags(['cloud_security_posture_cis_integration']); + describe('Test adding Cloud Security Posture Integrations CSPM GCP', function () { + this.tags(['cloud_security_posture_cis_integration_cspm_gcp']); let cisIntegrationGcp: typeof pageObjects.cisAddIntegration.cisGcp; let cisIntegration: typeof pageObjects.cisAddIntegration; @@ -38,96 +36,11 @@ export default function (providerContext: FtrProviderContext) { await cisIntegration.navigateToAddIntegrationCspmPage(); }); - after(async () => { - await kibanaServer.savedObjects.cleanStandardList(); - }); - - describe('CNVM AWS', () => { - it('Hyperlink on PostInstallation Modal should have the correct URL', async () => { - await cisIntegration.navigateToAddIntegrationCnvmPage(); - await cisIntegrationGcp.clickSaveButton(); - pageObjects.header.waitUntilLoadingHasFinished(); - expect( - (await cisIntegration.getUrlOnPostInstallModal()) === - 'https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-howdoesitwork.html' - ); - }); - - it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => { - await cisIntegration.navigateToIntegrationCspList(); - await cisIntegration.clickFirstElementOnIntegrationTableAddAgent(); - expect( - ( - await cisIntegrationGcp.getFieldValueInAddAgentFlyout( - 'launchCloudFormationButtonAgentFlyoutTestId', - 'href' - ) - ).includes('https://console.aws.amazon.com/cloudformation/') - ).to.be(true); - }); - - it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => { - await cisIntegration.navigateToAddIntegrationCnvmPage(); - await cisIntegrationGcp.clickSaveButton(); - pageObjects.header.waitUntilLoadingHasFinished(); - expect( - ( - await cisIntegration.clickLaunchAndGetCurrentUrl( - 'confirmCloudFormationModalConfirmButton', - 1 - ) - ).includes('console.aws.amazon.com%2Fcloudformation') - ).to.be(true); - }); - }); - - describe('CIS_AWS', () => { - it('Initial form state, AWS Org account, and CloudFormation should be selected by default', async () => { - expect((await cisIntegration.isRadioButtonChecked('cloudbeat/cis_aws')) === true); - expect((await cisIntegration.isRadioButtonChecked('organization-account')) === true); - expect((await cisIntegration.isRadioButtonChecked('cloud_formation')) === true); - }); - it('Hyperlink on PostInstallation Modal should have the correct URL', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_AWS_OPTION_TEST_ID); - await cisIntegrationGcp.clickSaveButton(); - pageObjects.header.waitUntilLoadingHasFinished(); - expect( - (await cisIntegration.getUrlOnPostInstallModal()) === - 'https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-howdoesitwork.html' - ); - }); - it('On Add Agent modal there should be modal that has Cloud Formation details as well as button that redirects user to Cloud formation page on AWS upon clicking them ', async () => { - await cisIntegration.navigateToIntegrationCspList(); - await cisIntegration.clickFirstElementOnIntegrationTableAddAgent(); - expect( - ( - await cisIntegrationGcp.getFieldValueInAddAgentFlyout( - 'launchCloudFormationButtonAgentFlyoutTestId', - 'href' - ) - ).includes('https://console.aws.amazon.com/cloudformation/') - ).to.be(true); - }); - it('Clicking on Launch CloudFormation on post intall modal should lead user to Cloud Formation page', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_AWS_OPTION_TEST_ID); - await cisIntegrationGcp.clickSaveButton(); - pageObjects.header.waitUntilLoadingHasFinished(); - expect( - ( - await cisIntegration.clickLaunchAndGetCurrentUrl( - 'confirmCloudFormationModalConfirmButton', - 2 - ) - ).includes('console.aws.amazon.com%2Fcloudformation') - ).to.be(true); - }); - }); - describe('CIS_GCP Organization', () => { it('Switch between Manual and Google cloud shell', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_ORGANIZATION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_MANUAL_TEST_ID); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_ORGANIZATION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_MANUAL_TEST_ID); /* Check for existing fields. In Manual, Credential field should be visible */ expect((await cisIntegrationGcp.checkGcpFieldExist(PRJ_ID_TEST_ID)) === 1).to.be(true); expect((await cisIntegrationGcp.checkGcpFieldExist(ORG_ID_TEST_ID)) === 1).to.be(true); @@ -135,7 +48,7 @@ export default function (providerContext: FtrProviderContext) { true ); - await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegration.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); /* Check for existing fields. In Google Cloud Shell, Credential field should NOT be visible */ expect((await cisIntegrationGcp.checkGcpFieldExist(PRJ_ID_TEST_ID)) === 1).to.be(true); expect((await cisIntegrationGcp.checkGcpFieldExist(ORG_ID_TEST_ID)) === 1).to.be(true); @@ -145,10 +58,10 @@ export default function (providerContext: FtrProviderContext) { }); it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID or Organization ID provided, it should use default value', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_ORGANIZATION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_ORGANIZATION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); expect((await cisIntegrationGcp.isPostInstallGoogleCloudShellModal(true)) === true).to.be( true @@ -158,13 +71,13 @@ export default function (providerContext: FtrProviderContext) { it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value', async () => { const projectName = 'PRJ_NAME_TEST'; const organizationName = 'ORG_NAME_TEST'; - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_ORGANIZATION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); - await cisIntegrationGcp.fillInTextField('project_id_test_id', projectName); - await cisIntegrationGcp.fillInTextField('organization_id_test_id', organizationName); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_ORGANIZATION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegration.fillInTextField('project_id_test_id', projectName); + await cisIntegration.fillInTextField('organization_id_test_id', organizationName); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); expect( (await cisIntegrationGcp.isPostInstallGoogleCloudShellModal( @@ -178,18 +91,16 @@ export default function (providerContext: FtrProviderContext) { it('Add Agent FLyout - Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID or Organization ID provided, it should use that value', async () => { await cisIntegration.navigateToIntegrationCspList(); await cisIntegration.clickFirstElementOnIntegrationTableAddAgent(); - expect(await cisIntegrationGcp.doesStringExistInCodeBlock('PRJ_NAME_TEST')).to.be(true); - expect(await cisIntegrationGcp.doesStringExistInCodeBlock('ORG_ID=ORG_NAME_TEST')).to.be( - true - ); + expect(await cisIntegration.doesStringExistInCodeBlock('PRJ_NAME_TEST')).to.be(true); + expect(await cisIntegration.doesStringExistInCodeBlock('ORG_ID=ORG_NAME_TEST')).to.be(true); }); it('Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); expect((await cisIntegrationGcp.isPostInstallGoogleCloudShellModal(false)) === true).to.be( true @@ -197,8 +108,8 @@ export default function (providerContext: FtrProviderContext) { }); it('Hyperlink on PostInstallation Modal should have the correct URL', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); expect( (await cisIntegration.getUrlOnPostInstallModal()) === @@ -207,8 +118,8 @@ export default function (providerContext: FtrProviderContext) { }); it('Clicking on Launch CloudShell on post intall modal should lead user to CloudShell page', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); expect( ( @@ -221,12 +132,56 @@ export default function (providerContext: FtrProviderContext) { }); }); + describe('CIS_GCP Organization Credentials File', () => { + it('CIS_GCP Organization Credentials File workflow', async () => { + const projectName = 'PRJ_NAME_TEST'; + const credentialFileName = 'CRED_FILE_TEST_NAME'; + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(GCP_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(PRJ_ID_TEST_ID, projectName); + await cisIntegration.fillInTextField(CREDENTIALS_FILE_TEST_ID, credentialFileName); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect( + (await cisIntegration.getFieldValueInEditPage(CREDENTIALS_FILE_TEST_ID)) === + credentialFileName + ).to.be(true); + }); + }); + + describe('CIS_GCP Organization Credentials JSON', () => { + it('CIS_GCP Organization Credentials JSON workflow', async () => { + const projectName = 'PRJ_NAME_TEST'; + const credentialJsonName = 'CRED_JSON_TEST_NAME'; + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(GCP_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(PRJ_ID_TEST_ID, projectName); + await cisIntegration.chooseDropDown( + CREDENTIALS_TYPE_TEST_ID, + 'credentials_json_option_test_id' + ); + await cisIntegration.fillInTextField(CREDENTIALS_JSON_TEST_ID, credentialJsonName); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect( + (await cisIntegration.getFieldValueInEditPage(CREDENTIALS_JSON_TEST_ID)) === + credentialJsonName + ).to.be(true); + }); + }); + describe('CIS_GCP Single', () => { it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are no Project ID, it should use default value', async () => { - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); expect((await cisIntegrationGcp.isPostInstallGoogleCloudShellModal(false)) === true).to.be( true @@ -234,11 +189,11 @@ export default function (providerContext: FtrProviderContext) { }); it('Post Installation Google Cloud Shell modal pops up after user clicks on Save button when adding integration, when there are Project ID, it should use that value', async () => { const projectName = 'PRJ_NAME_TEST'; - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); - await cisIntegrationGcp.fillInTextField('project_id_test_id', projectName); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(GCP_CLOUD_SHELL_TEST_ID); + await cisIntegration.fillInTextField('project_id_test_id', projectName); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); expect( (await cisIntegrationGcp.isPostInstallGoogleCloudShellModal(false, '', projectName)) === @@ -248,8 +203,8 @@ export default function (providerContext: FtrProviderContext) { it('Add Agent FLyout - Organization ID field on cloud shell command should only be shown if user chose Google Cloud Shell, if user chose Single Account it shouldn not show up', async () => { await cisIntegration.navigateToIntegrationCspList(); await cisIntegration.clickFirstElementOnIntegrationTableAddAgent(); - expect(await cisIntegrationGcp.doesStringExistInCodeBlock('PRJ_NAME_TEST')).to.be(true); - expect(await cisIntegrationGcp.doesStringExistInCodeBlock('ORG_ID=ORG_NAME_TEST')).to.be( + expect(await cisIntegration.doesStringExistInCodeBlock('PRJ_NAME_TEST')).to.be(true); + expect(await cisIntegration.doesStringExistInCodeBlock('ORG_ID=ORG_NAME_TEST')).to.be( false ); }); @@ -258,27 +213,27 @@ export default function (providerContext: FtrProviderContext) { await cisIntegration.clickFirstElementOnIntegrationTableAddAgent(); expect( ( - await cisIntegrationGcp.getFieldValueInAddAgentFlyout( + await cisIntegration.getFieldValueInAddAgentFlyout( 'launchGoogleCloudShellButtonAgentFlyoutTestId', 'href' ) - ).includes('https://shell.cloud.google.com/cloudshell/') + )?.includes('https://shell.cloud.google.com/cloudshell/') ).to.be(true); }); it('Users are able to add CIS_GCP Integration with Manual settings using Credentials File', async () => { const projectName = 'PRJ_NAME_TEST'; const credentialFileName = 'CRED_FILE_TEST_NAME'; - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_MANUAL_TEST_ID); - await cisIntegrationGcp.fillInTextField(PRJ_ID_TEST_ID, projectName); - await cisIntegrationGcp.fillInTextField(CREDENTIALS_FILE_TEST_ID, credentialFileName); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(GCP_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(PRJ_ID_TEST_ID, projectName); + await cisIntegration.fillInTextField(CREDENTIALS_FILE_TEST_ID, credentialFileName); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); - expect((await cisIntegrationGcp.getPostInstallModal()) !== undefined).to.be(true); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); await cisIntegration.navigateToIntegrationCspList(); expect( - (await cisIntegrationGcp.getFieldValueInEditPage(CREDENTIALS_FILE_TEST_ID)) === + (await cisIntegration.getFieldValueInEditPage(CREDENTIALS_FILE_TEST_ID)) === credentialFileName ).to.be(true); }); @@ -286,37 +241,37 @@ export default function (providerContext: FtrProviderContext) { const credentialJsonName = 'CRED_JSON_TEST_NAME'; await cisIntegration.navigateToIntegrationCspList(); await cisIntegration.clickFirstElementOnIntegrationTable(); - await cisIntegrationGcp.chooseDropDown( + await cisIntegration.chooseDropDown( CREDENTIALS_TYPE_TEST_ID, 'credentials_json_option_test_id' ); - await cisIntegrationGcp.fillInTextField(CREDENTIALS_JSON_TEST_ID, credentialJsonName); - await cisIntegrationGcp.clickSaveIntegrationButton(); + await cisIntegration.fillInTextField(CREDENTIALS_JSON_TEST_ID, credentialJsonName); + await cisIntegration.clickSaveIntegrationButton(); pageObjects.header.waitUntilLoadingHasFinished(); await cisIntegration.navigateToIntegrationCspList(); expect( - (await cisIntegrationGcp.getFieldValueInEditPage(CREDENTIALS_JSON_TEST_ID)) === + (await cisIntegration.getFieldValueInEditPage(CREDENTIALS_JSON_TEST_ID)) === credentialJsonName ).to.be(true); }); it('Users are able to add CIS_GCP Integration with Manual settings using Credentials JSON', async () => { const projectName = 'PRJ_NAME_TEST'; const credentialJsonName = 'CRED_JSON_TEST_NAME'; - await cisIntegrationGcp.clickOptionButton(CIS_GCP_OPTION_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); - await cisIntegrationGcp.clickOptionButton(GCP_MANUAL_TEST_ID); - await cisIntegrationGcp.fillInTextField(PRJ_ID_TEST_ID, projectName); - await cisIntegrationGcp.chooseDropDown( + await cisIntegration.clickOptionButton(CIS_GCP_OPTION_TEST_ID); + await cisIntegration.clickOptionButton(GCP_SINGLE_ACCOUNT_TEST_ID); + await cisIntegration.clickOptionButton(GCP_MANUAL_TEST_ID); + await cisIntegration.fillInTextField(PRJ_ID_TEST_ID, projectName); + await cisIntegration.chooseDropDown( CREDENTIALS_TYPE_TEST_ID, 'credentials_json_option_test_id' ); - await cisIntegrationGcp.fillInTextField(CREDENTIALS_JSON_TEST_ID, credentialJsonName); - await cisIntegrationGcp.clickSaveButton(); + await cisIntegration.fillInTextField(CREDENTIALS_JSON_TEST_ID, credentialJsonName); + await cisIntegration.clickSaveButton(); pageObjects.header.waitUntilLoadingHasFinished(); - expect((await cisIntegrationGcp.getPostInstallModal()) !== undefined).to.be(true); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); await cisIntegration.navigateToIntegrationCspList(); expect( - (await cisIntegrationGcp.getFieldValueInEditPage(CREDENTIALS_JSON_TEST_ID)) === + (await cisIntegration.getFieldValueInEditPage(CREDENTIALS_JSON_TEST_ID)) === credentialJsonName ).to.be(true); }); @@ -324,16 +279,16 @@ export default function (providerContext: FtrProviderContext) { const credentialFileName = 'CRED_FILE_TEST_NAME'; await cisIntegration.navigateToIntegrationCspList(); await cisIntegration.clickFirstElementOnIntegrationTable(); - await cisIntegrationGcp.chooseDropDown( + await cisIntegration.chooseDropDown( CREDENTIALS_TYPE_TEST_ID, 'credentials_file_option_test_id' ); - await cisIntegrationGcp.fillInTextField(CREDENTIALS_FILE_TEST_ID, credentialFileName); - await cisIntegrationGcp.clickSaveIntegrationButton(); + await cisIntegration.fillInTextField(CREDENTIALS_FILE_TEST_ID, credentialFileName); + await cisIntegration.clickSaveIntegrationButton(); pageObjects.header.waitUntilLoadingHasFinished(); await cisIntegration.navigateToIntegrationCspList(); expect( - (await cisIntegrationGcp.getFieldValueInEditPage(CREDENTIALS_FILE_TEST_ID)) === + (await cisIntegration.getFieldValueInEditPage(CREDENTIALS_FILE_TEST_ID)) === credentialFileName ).to.be(true); }); diff --git a/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts new file mode 100644 index 0000000000000..db0778831964f --- /dev/null +++ b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_eks.ts @@ -0,0 +1,139 @@ +/* + * 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 type { FtrProviderContext } from '../../../ftr_provider_context'; + +const CIS_EKS_OPTION_TEST_ID = 'cisEksTestId'; +const EKS_DIRECT_ACCESS_TEST_ID = 'directAccessKeyTestId'; +const EKS_TEMPORARY_KEYS_TEST_ID = 'temporaryKeyTestId'; +const EKS_SHARED_CREDENTIAL_TEST_ID = 'sharedCredentialsTestId'; +const ROLE_ARN_TEST_ID = 'roleArnInput'; +const DIRECT_ACCESS_KEY_ID_TEST_ID = 'directAccessKeyId'; +const DIRECT_ACCESS_SECRET_KEY_TEST_ID = 'passwordInput-secret-access-key'; +const TEMP_ACCESS_KEY_ID_TEST_ID = 'temporaryKeysAccessKeyId'; +const TEMP_ACCESS_KEY_SECRET_KEY_TEST_ID = 'passwordInput-secret-access-key'; +const TEMP_ACCESS_SESSION_TOKEN_TEST_ID = 'temporaryKeysSessionToken'; +const SHARED_CREDENTIALS_FILE_TEST_ID = 'sharedCredentialFile'; +const SHARED_CREDETIALS_PROFILE_NAME_TEST_ID = 'credentialProfileName'; + +// eslint-disable-next-line import/no-default-export +export default function (providerContext: FtrProviderContext) { + const { getPageObjects } = providerContext; + const pageObjects = getPageObjects(['cloudPostureDashboard', 'cisAddIntegration', 'header']); + + describe('Test adding Cloud Security Posture Integrations KSPM EKS', function () { + this.tags(['cloud_security_posture_cis_integration_kspm_eks']); + let cisIntegration: typeof pageObjects.cisAddIntegration; + + beforeEach(async () => { + cisIntegration = pageObjects.cisAddIntegration; + await cisIntegration.navigateToAddIntegrationKspmPage(); + }); + + describe('KSPM EKS Assume Role', async () => { + it('KSPM EKS Assume Role workflow', async () => { + const roleArn = 'RoleArnTestValue'; + await cisIntegration.clickOptionButton(CIS_EKS_OPTION_TEST_ID); + await cisIntegration.fillInTextField(ROLE_ARN_TEST_ID, roleArn); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect((await cisIntegration.getFieldValueInEditPage(ROLE_ARN_TEST_ID)) === roleArn).to.be( + true + ); + }); + }); + + describe('KSPM EKS Direct Access', async () => { + it('KSPM EKS Direct Access Workflow', async () => { + const directAccessKeyId = 'directAccessKeyIdTest'; + const directAccessSecretKey = 'directAccessSecretKeyTest'; + await cisIntegration.clickOptionButton(CIS_EKS_OPTION_TEST_ID); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(EKS_DIRECT_ACCESS_TEST_ID); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.fillInTextField(DIRECT_ACCESS_KEY_ID_TEST_ID, directAccessKeyId); + await cisIntegration.fillInTextField( + DIRECT_ACCESS_SECRET_KEY_TEST_ID, + directAccessSecretKey + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + expect( + (await cisIntegration.getFieldValueInEditPage(DIRECT_ACCESS_KEY_ID_TEST_ID)) === + directAccessKeyId + ).to.be(true); + }); + }); + + describe('KSPM EKS Temporary Keys', () => { + it('KSPM EKS Temporary Keys Workflow', async () => { + const accessKeyId = 'accessKeyIdTest'; + const accessKeySecretKey = 'accessKeySecretKeyTest'; + const tempAccessSessionToken = 'tempAccessSessionTokenTest'; + await cisIntegration.clickOptionButton(CIS_EKS_OPTION_TEST_ID); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(EKS_TEMPORARY_KEYS_TEST_ID); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.fillInTextField(TEMP_ACCESS_KEY_ID_TEST_ID, accessKeyId); + await cisIntegration.fillInTextField( + TEMP_ACCESS_KEY_SECRET_KEY_TEST_ID, + accessKeySecretKey + ); + await cisIntegration.fillInTextField( + TEMP_ACCESS_SESSION_TOKEN_TEST_ID, + tempAccessSessionToken + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage(TEMP_ACCESS_KEY_ID_TEST_ID)) === accessKeyId + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage(TEMP_ACCESS_SESSION_TOKEN_TEST_ID)) === + tempAccessSessionToken + ).to.be(true); + }); + }); + + describe('KSPM EKS Shared Credentials', () => { + it('KSPM EKS Shared Credentials Workflow', async () => { + const sharedCredentialFile = 'sharedCredentialFileTest'; + const sharedCredentialProfileName = 'sharedCredentialProfileNameTest'; + await cisIntegration.clickOptionButton(CIS_EKS_OPTION_TEST_ID); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.clickOptionButton(EKS_SHARED_CREDENTIAL_TEST_ID); + pageObjects.header.waitUntilLoadingHasFinished(); + await cisIntegration.fillInTextField(SHARED_CREDENTIALS_FILE_TEST_ID, sharedCredentialFile); + await cisIntegration.fillInTextField( + SHARED_CREDETIALS_PROFILE_NAME_TEST_ID, + sharedCredentialProfileName + ); + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.getValueInEditPage(SHARED_CREDENTIALS_FILE_TEST_ID)) === + sharedCredentialFile + ).to.be(true); + expect( + (await cisIntegration.getValueInEditPage(SHARED_CREDETIALS_PROFILE_NAME_TEST_ID)) === + sharedCredentialProfileName + ).to.be(true); + }); + }); + }); +} diff --git a/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts new file mode 100644 index 0000000000000..ae2ede4046d11 --- /dev/null +++ b/x-pack/test/cloud_security_posture_functional/pages/cis_integrations/kspm/cis_integration_k8s.ts @@ -0,0 +1,38 @@ +/* + * 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 type { FtrProviderContext } from '../../../ftr_provider_context'; + +// eslint-disable-next-line import/no-default-export +export default function (providerContext: FtrProviderContext) { + const { getPageObjects } = providerContext; + const pageObjects = getPageObjects(['cloudPostureDashboard', 'cisAddIntegration', 'header']); + + describe('Test adding Cloud Security Posture Integrations KSPM K8S', function () { + this.tags(['cloud_security_posture_cis_integration_kspm_k8s']); + let cisIntegration: typeof pageObjects.cisAddIntegration; + + beforeEach(async () => { + cisIntegration = pageObjects.cisAddIntegration; + await cisIntegration.navigateToAddIntegrationKspmPage(); + }); + + describe('KSPM K8S', () => { + it('KSPM K8S Workflow', async () => { + await cisIntegration.clickSaveButton(); + pageObjects.header.waitUntilLoadingHasFinished(); + expect((await cisIntegration.getPostInstallModal()) !== undefined).to.be(true); + await cisIntegration.navigateToIntegrationCspList(); + await cisIntegration.clickFirstElementOnIntegrationTable(); + expect( + (await cisIntegration.isOptionChecked('cisK8sTestId', 'cloudbeat/cis_k8s')) === 'true' + ).to.be(true); + }); + }); + }); +} diff --git a/x-pack/test/cloud_security_posture_functional/pages/index.ts b/x-pack/test/cloud_security_posture_functional/pages/index.ts index 8dee827be154f..a1f9177f05c08 100644 --- a/x-pack/test/cloud_security_posture_functional/pages/index.ts +++ b/x-pack/test/cloud_security_posture_functional/pages/index.ts @@ -17,7 +17,12 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./findings_alerts')); loadTestFile(require.resolve('./compliance_dashboard')); loadTestFile(require.resolve('./vulnerability_dashboard')); - loadTestFile(require.resolve('./cis_integration')); + loadTestFile(require.resolve('./cis_integrations/cnvm/cis_integration_cnvm')); + loadTestFile(require.resolve('./cis_integrations/cspm/cis_integration_aws')); + loadTestFile(require.resolve('./cis_integrations/cspm/cis_integration_gcp')); + loadTestFile(require.resolve('./cis_integrations/cspm/cis_integration_azure')); + loadTestFile(require.resolve('./cis_integrations/kspm/cis_integration_k8s')); + loadTestFile(require.resolve('./cis_integrations/kspm/cis_integration_eks')); loadTestFile(require.resolve('./findings_old_data')); loadTestFile(require.resolve('./vulnerabilities')); loadTestFile(require.resolve('./vulnerabilities_grouping')); From 8eefa842badc7a7846a85946d99e8330bf87d31b Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Tue, 23 Apr 2024 17:13:47 +0200 Subject: [PATCH 078/183] [Embeddable Rebuild] [Embeddable Rebuild] Provide `executionContext` as part of the Dashboard parent API (#180904) ## Summary Closes https://github.com/elastic/kibana/issues/180055 Provides Kibana execution context as part of the Dashboard parent API. ### 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: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../presentation_publishing/index.ts | 4 ++++ .../interfaces/has_execution_context.ts | 21 +++++++++++++++++++ .../presentation_publishing/tsconfig.json | 1 + .../common/dashboard_container/types.ts | 2 +- .../dashboard/public/dashboard_constants.ts | 3 +++ .../embeddable/dashboard_container.tsx | 4 ++++ src/plugins/dashboard/public/mocks.tsx | 3 +++ .../react_embeddable_registry.ts | 2 +- .../cases/anomaly_swim_lane_attachment.tsx | 9 +++++++- ...omaly_swimlane_embeddable_factory.test.tsx | 6 ++++++ .../anomaly_swimlane_embeddable_factory.tsx | 13 +++++++++--- 11 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 packages/presentation/presentation_publishing/interfaces/has_execution_context.ts diff --git a/packages/presentation/presentation_publishing/index.ts b/packages/presentation/presentation_publishing/index.ts index a71a4083f35ea..167c15a826d08 100644 --- a/packages/presentation/presentation_publishing/index.ts +++ b/packages/presentation/presentation_publishing/index.ts @@ -59,6 +59,10 @@ export { type HasTypeDisplayName, } from './interfaces/has_type'; export { apiHasUniqueId, type HasUniqueId } from './interfaces/has_uuid'; +export { + apiHasExecutionContext, + type HasExecutionContext, +} from './interfaces/has_execution_context'; export { apiPublishesBlockingError, type PublishesBlockingError, diff --git a/packages/presentation/presentation_publishing/interfaces/has_execution_context.ts b/packages/presentation/presentation_publishing/interfaces/has_execution_context.ts new file mode 100644 index 0000000000000..8aa4d633e1a0e --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/has_execution_context.ts @@ -0,0 +1,21 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { KibanaExecutionContext } from '@kbn/core-execution-context-common'; + +export interface HasExecutionContext { + executionContext: KibanaExecutionContext; +} + +export const apiHasExecutionContext = ( + unknownApi: null | unknown +): unknownApi is HasExecutionContext => { + return Boolean( + unknownApi && typeof unknownApi === 'object' && unknownApi.hasOwnProperty('executionContext') + ); +}; diff --git a/packages/presentation/presentation_publishing/tsconfig.json b/packages/presentation/presentation_publishing/tsconfig.json index fb568596b980f..6d98f0d821401 100644 --- a/packages/presentation/presentation_publishing/tsconfig.json +++ b/packages/presentation/presentation_publishing/tsconfig.json @@ -10,5 +10,6 @@ "@kbn/es-query", "@kbn/data-views-plugin", "@kbn/expressions-plugin", + "@kbn/core-execution-context-common", ] } diff --git a/src/plugins/dashboard/common/dashboard_container/types.ts b/src/plugins/dashboard/common/dashboard_container/types.ts index 1497f7c08bb33..f25d8bb026bc8 100644 --- a/src/plugins/dashboard/common/dashboard_container/types.ts +++ b/src/plugins/dashboard/common/dashboard_container/types.ts @@ -54,7 +54,7 @@ export interface DashboardContainerInput extends EmbeddableInput { viewMode: ViewMode; description?: string; isEmbeddedExternally?: boolean; - executionContext?: KibanaExecutionContext; + executionContext: KibanaExecutionContext; // dashboard options: TODO, build a new system to avoid all shared state appearing here. See https://github.com/elastic/kibana/issues/144532 for more information. hidePanelTitles: DashboardOptions['hidePanelTitles']; diff --git a/src/plugins/dashboard/public/dashboard_constants.ts b/src/plugins/dashboard/public/dashboard_constants.ts index 793923d203d04..965ee67355c58 100644 --- a/src/plugins/dashboard/public/dashboard_constants.ts +++ b/src/plugins/dashboard/public/dashboard_constants.ts @@ -85,6 +85,9 @@ export const DEFAULT_DASHBOARD_INPUT: Omit = { panels: {}, title: '', tags: [], + executionContext: { + type: 'dashboard', + }, // options useMargins: true, diff --git a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx index f264aaa544ac7..190462d69a2df 100644 --- a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx +++ b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx @@ -148,6 +148,8 @@ export class DashboardContainer public timeslice$: BehaviorSubject<[number, number] | undefined>; public locator?: Pick, 'navigate' | 'getRedirectUrl'>; + public readonly executionContext: KibanaExecutionContext; + // cleanup public stopSyncingWithUnifiedSearch?: () => void; private cleanupStateTools: () => void; @@ -295,6 +297,8 @@ export class DashboardContainer string | undefined, DashboardContainerInput >(this.publishingSubscription, this, 'lastReloadRequestTime'); + + this.executionContext = initialInput.executionContext; } public getAppContext() { diff --git a/src/plugins/dashboard/public/mocks.tsx b/src/plugins/dashboard/public/mocks.tsx index b160471d20f09..d447015b2b1a6 100644 --- a/src/plugins/dashboard/public/mocks.tsx +++ b/src/plugins/dashboard/public/mocks.tsx @@ -119,6 +119,9 @@ export function getSampleDashboardInput( timeRestore: false, viewMode: ViewMode.VIEW, panels: {}, + executionContext: { + type: 'dashboard', + }, ...overrides, }; } diff --git a/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_registry.ts b/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_registry.ts index 481be8b5b5bb8..5cd245ca074cc 100644 --- a/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_registry.ts +++ b/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_registry.ts @@ -28,7 +28,7 @@ export const registerReactEmbeddableFactory = < if (registry[type] !== undefined) throw new Error( i18n.translate('embeddableApi.reactEmbeddable.factoryAlreadyExistsError', { - defaultMessage: 'An embeddable factory for for type: {key} is already registered.', + defaultMessage: 'An embeddable factory for type: {key} is already registered.', values: { key: type }, }) ); diff --git a/x-pack/plugins/ml/public/cases/anomaly_swim_lane_attachment.tsx b/x-pack/plugins/ml/public/cases/anomaly_swim_lane_attachment.tsx index 8b28b895410b8..5a0429725eb79 100644 --- a/x-pack/plugins/ml/public/cases/anomaly_swim_lane_attachment.tsx +++ b/x-pack/plugins/ml/public/cases/anomaly_swim_lane_attachment.tsx @@ -23,7 +23,7 @@ import type { export const initComponent = memoize((fieldFormats: FieldFormatsStart) => { return React.memo( (props: PersistableStateAttachmentViewProps) => { - const { persistableStateAttachmentState } = props; + const { persistableStateAttachmentState, caseData } = props; const dataFormatter = fieldFormats.deserialize({ id: FIELD_FORMAT_IDS.DATE, @@ -89,6 +89,13 @@ export const initComponent = memoize((fieldFormats: FieldFormatsStart) => { state={{ rawState: inputProps, }} + parentApi={{ + executionContext: { + type: 'cases', + description: caseData.title, + id: caseData.id, + }, + }} /> ); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.test.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.test.tsx index 232f5a562acd8..d58e1f00ca235 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.test.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.test.tsx @@ -105,6 +105,12 @@ describe('getAnomalySwimLaneEmbeddableFactory', () => { rawState, }} onApiAvailable={onApiAvailable} + parentApi={{ + executionContext: { + type: 'dashboard', + id: 'dashboard-id', + }, + }} /> ); diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.tsx b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.tsx index f569f93752c35..665e0b99ddd72 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.tsx +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable_factory.tsx @@ -14,6 +14,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { useTimeBuckets } from '@kbn/ml-time-buckets'; import { + apiHasExecutionContext, apiHasParentApi, apiPublishesTimeRange, initializeTimeRange, @@ -90,6 +91,10 @@ export const getAnomalySwimLaneEmbeddableFactory = ( return state.rawState as AnomalySwimLaneEmbeddableState; }, buildEmbeddable: async (state, buildApi, uuid, parentApi) => { + if (!apiHasExecutionContext(parentApi)) { + throw new Error('Parent API does not have execution context'); + } + const services = await getServices(getStartServices); const [coreStartServices, pluginsStartServices, anomalySwimLaneServices] = services; @@ -211,11 +216,13 @@ export const getAnomalySwimLaneEmbeddableFactory = ( const I18nContext = i18n.Context; const timeBuckets = useTimeBuckets(uiSettings); + if (!apiHasExecutionContext(parentApi)) { + throw new Error('Parent API does not have execution context'); + } + useReactEmbeddableExecutionContext( services[0].executionContext, - // TODO https://github.com/elastic/kibana/issues/180055 - // @ts-ignore - parentApi?.executionContext?.value ?? { name: 'dashboard' }, + parentApi.executionContext, ANOMALY_SWIMLANE_EMBEDDABLE_TYPE, uuid ); From 22dd9f86f4967b85af9857a46fde165205358927 Mon Sep 17 00:00:00 2001 From: Davis McPhee Date: Tue, 23 Apr 2024 12:39:32 -0300 Subject: [PATCH 079/183] [Discover] Remove Discover customization profiles (#181259) ## Summary This PR removes the current Discover customization profile system from the codebase while leaving the remainder of the customization framework unaffected. Testing notes: - Discover should be unaffected by these changes. - Logs Explorer should be unaffected by these changes. - The Timeline ES|QL tab should be unaffected by these changes. - The `discover_customization_examples` plugin has been migrated from using a customization profile to using the `DiscoverContainer` component to embed Discover within its own page, as is done for Logs Explorer and Timeline. Resolves #181355. ### Checklist - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### 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) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../kibana.jsonc | 9 +- .../public/plugin.tsx | 718 +++++++++--------- .../tsconfig.json | 4 + .../discover/common/app_locator.test.ts | 8 - src/plugins/discover/common/app_locator.ts | 14 +- .../discover/common/customizations/index.ts | 9 - .../common/customizations/utils.test.ts | 73 -- .../discover/common/customizations/utils.ts | 27 - .../context/services/locator.test.ts | 13 - .../application/context/services/locator.ts | 10 +- .../application/discover_router.test.tsx | 198 +---- .../public/application/discover_router.tsx | 114 +-- .../public/application/doc/locator.test.ts | 14 - .../public/application/doc/locator.ts | 10 +- .../discover/public/application/index.tsx | 4 - .../application/main/discover_main_route.tsx | 4 +- .../application/main/hooks/use_url.test.ts | 5 - .../public/application/main/hooks/use_url.ts | 5 +- .../discover_container.test.tsx | 7 +- .../discover_container/discover_container.tsx | 28 +- .../profile_aware_locator.test.ts | 141 ---- .../customizations/profile_aware_locator.ts | 90 --- .../customizations/profile_registry.test.ts | 134 ---- .../public/customizations/profile_registry.ts | 73 -- .../discover/public/customizations/types.ts | 19 - src/plugins/discover/public/index.ts | 3 - src/plugins/discover/public/mocks.tsx | 1 - src/plugins/discover/public/plugin.tsx | 81 +- .../discover/public/utils/breadcrumbs.test.ts | 18 - .../discover/public/utils/breadcrumbs.ts | 17 +- src/plugins/discover/tsconfig.json | 1 - .../customizations.ts | 2 + .../customizations.ts | 2 + 33 files changed, 476 insertions(+), 1380 deletions(-) delete mode 100644 src/plugins/discover/common/customizations/index.ts delete mode 100644 src/plugins/discover/common/customizations/utils.test.ts delete mode 100644 src/plugins/discover/common/customizations/utils.ts delete mode 100644 src/plugins/discover/public/customizations/profile_aware_locator.test.ts delete mode 100644 src/plugins/discover/public/customizations/profile_aware_locator.ts delete mode 100644 src/plugins/discover/public/customizations/profile_registry.test.ts delete mode 100644 src/plugins/discover/public/customizations/profile_registry.ts diff --git a/examples/discover_customization_examples/kibana.jsonc b/examples/discover_customization_examples/kibana.jsonc index 5f76acaa9b287..42f4882935688 100644 --- a/examples/discover_customization_examples/kibana.jsonc +++ b/examples/discover_customization_examples/kibana.jsonc @@ -6,6 +6,13 @@ "id": "discoverCustomizationExamples", "server": false, "browser": true, - "requiredPlugins": ["controls", "developerExamples", "discover", "embeddable", "kibanaUtils"] + "requiredPlugins": [ + "controls", + "developerExamples", + "discover", + "embeddable", + "kibanaUtils", + "data" + ] } } diff --git a/examples/discover_customization_examples/public/plugin.tsx b/examples/discover_customization_examples/public/plugin.tsx index 22d2145d9917b..f4cc4a8bc1a1e 100644 --- a/examples/discover_customization_examples/public/plugin.tsx +++ b/examples/discover_customization_examples/public/plugin.tsx @@ -16,8 +16,11 @@ import { } from '@elastic/eui'; import { CoreSetup, CoreStart, Plugin, SimpleSavedObject } from '@kbn/core/public'; import type { DeveloperExamplesSetup } from '@kbn/developer-examples-plugin/public'; -import type { DiscoverSetup, DiscoverStart } from '@kbn/discover-plugin/public'; -import { noop } from 'lodash'; +import type { + CustomizationCallback, + DiscoverSetup, + DiscoverStart, +} from '@kbn/discover-plugin/public'; import React, { useEffect, useState } from 'react'; import ReactDOM from 'react-dom'; import useObservable from 'react-use/lib/useObservable'; @@ -25,6 +28,10 @@ import { AwaitingControlGroupAPI, ControlGroupRenderer } from '@kbn/controls-plu import { css } from '@emotion/react'; import { ViewMode } from '@kbn/embeddable-plugin/public'; import type { ControlsPanels } from '@kbn/controls-plugin/common'; +import { Route, Router, Routes } from '@kbn/shared-ux-router'; +import { I18nProvider } from '@kbn/i18n-react'; +import { KibanaThemeProvider } from '@kbn/react-kibana-context-theme'; +import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import image from './discover_customization_examples.png'; export interface DiscoverCustomizationExamplesSetupPlugins { @@ -34,23 +41,54 @@ export interface DiscoverCustomizationExamplesSetupPlugins { export interface DiscoverCustomizationExamplesStartPlugins { discover: DiscoverStart; + data: DataPublicPluginStart; } const PLUGIN_ID = 'discoverCustomizationExamples'; const PLUGIN_NAME = 'Discover Customizations'; export class DiscoverCustomizationExamplesPlugin implements Plugin { - setup(core: CoreSetup, plugins: DiscoverCustomizationExamplesSetupPlugins) { + private customizationCallback: CustomizationCallback = () => {}; + + setup( + core: CoreSetup, + plugins: DiscoverCustomizationExamplesSetupPlugins + ) { core.application.register({ id: PLUGIN_ID, title: PLUGIN_NAME, visibleIn: [], - mount() { - plugins.discover?.locator?.navigate( - { profile: 'customization-examples' }, - { replace: true } + mount: async (appMountParams) => { + const [_, { discover, data }] = await core.getStartServices(); + + ReactDOM.render( + + + + + + + + + + + , + appMountParams.element ); - return noop; + + return () => { + // work around race condition between unmount effect and current app id + // observable in the search session service + data.search.session.clear(); + + ReactDOM.unmountComponentAtNode(appMountParams.element); + }; }, }); @@ -73,356 +111,352 @@ export class DiscoverCustomizationExamplesPlugin implements Plugin { isOptionsOpen = false; }; - discover.registerCustomizationProfile('customization-examples', { - customize: async ({ customizations, stateContainer }) => { - customizations.set({ - id: 'top_nav', - defaultMenu: { - newItem: { disabled: true }, - openItem: { disabled: true }, - shareItem: { order: 200 }, - alertsItem: { disabled: true }, - inspectItem: { disabled: true }, - saveItem: { order: 400 }, - }, - getMenuItems: () => [ - { - data: { - id: 'options', - label: 'Options', - iconType: 'arrowDown', - iconSide: 'right', - testId: 'customOptionsButton', - run: (anchorElement: HTMLElement) => { - if (isOptionsOpen) { - closeOptionsPopover(); - return; - } + this.customizationCallback = ({ customizations, stateContainer }) => { + customizations.set({ + id: 'top_nav', + defaultMenu: { + newItem: { disabled: true }, + openItem: { disabled: true }, + shareItem: { order: 200 }, + alertsItem: { disabled: true }, + inspectItem: { disabled: true }, + saveItem: { order: 400 }, + }, + getMenuItems: () => [ + { + data: { + id: 'options', + label: 'Options', + iconType: 'arrowDown', + iconSide: 'right', + testId: 'customOptionsButton', + run: (anchorElement: HTMLElement) => { + if (isOptionsOpen) { + closeOptionsPopover(); + return; + } + + isOptionsOpen = true; + document.body.appendChild(optionsContainer); + + const element = ( + + alert('Create new clicked'), + }, + { + name: 'Make a copy', + icon: 'copy', + onClick: () => alert('Make a copy clicked'), + }, + { + name: 'Manage saved searches', + icon: 'gear', + onClick: () => alert('Manage saved searches clicked'), + }, + ], + }, + ]} + data-test-subj="customOptionsPopover" + /> + + ); - isOptionsOpen = true; - document.body.appendChild(optionsContainer); - - const element = ( - - alert('Create new clicked'), - }, - { - name: 'Make a copy', - icon: 'copy', - onClick: () => alert('Make a copy clicked'), - }, - { - name: 'Manage saved searches', - icon: 'gear', - onClick: () => alert('Manage saved searches clicked'), - }, - ], - }, - ]} - data-test-subj="customOptionsPopover" - /> - - ); - - ReactDOM.render(element, optionsContainer); - }, + ReactDOM.render(element, optionsContainer); + }, + }, + order: 100, + }, + { + data: { + id: 'documentExplorer', + label: 'Document explorer', + iconType: 'discoverApp', + testId: 'documentExplorerButton', + run: () => { + discover.locator?.navigate({}); }, - order: 100, }, + order: 300, + }, + ], + getBadges: () => { + return [ { data: { - id: 'documentExplorer', - label: 'Document explorer', - iconType: 'discoverApp', - testId: 'documentExplorerButton', - run: () => { - discover.locator?.navigate({}); - }, + badgeText: 'Example badge', + color: 'warning', }, - order: 300, + order: 10, }, - ], - getBadges: () => { - return [ - { - data: { - badgeText: 'Example badge', - color: 'warning', - }, - order: 10, - }, - ]; - }, - }); - - customizations.set({ - id: 'search_bar', - CustomDataViewPicker: () => { - const [isPopoverOpen, setIsPopoverOpen] = useState(false); - const togglePopover = () => setIsPopoverOpen((open) => !open); - const closePopover = () => setIsPopoverOpen(false); - const [savedSearches, setSavedSearches] = useState< - Array> - >([]); - - useEffect(() => { - core.savedObjects.client - .find<{ title: string }>({ type: 'search' }) - .then((response) => { - setSavedSearches(response.savedObjects); - }); - }, []); - - const currentSavedSearch = useObservable( - stateContainer.savedSearchState.getCurrent$(), - stateContainer.savedSearchState.getState() - ); - - return ( - - - {currentSavedSearch.title ?? 'None selected'} - - } - isOpen={isPopoverOpen} - panelPaddingSize="none" - closePopover={closePopover} - > - ({ - name: savedSearch.get('title'), - onClick: () => stateContainer.actions.onOpenSavedSearch(savedSearch.id), - icon: savedSearch.id === currentSavedSearch.id ? 'check' : 'empty', - 'data-test-subj': `logsViewSelectorOption-${savedSearch.attributes.title.replace( - /[^a-zA-Z0-9]/g, - '' - )}`, - })), - }, - ]} - /> - - - ); - }, - }); - - customizations.set({ - id: 'search_bar', - CustomDataViewPicker: () => { - const [isPopoverOpen, setIsPopoverOpen] = useState(false); - const togglePopover = () => setIsPopoverOpen((open) => !open); - const closePopover = () => setIsPopoverOpen(false); - const [savedSearches, setSavedSearches] = useState< - Array> - >([]); - - useEffect(() => { - core.savedObjects.client - .find<{ title: string }>({ type: 'search' }) - .then((response) => { - setSavedSearches(response.savedObjects); - }); - }, []); - - const currentSavedSearch = useObservable( - stateContainer.savedSearchState.getCurrent$(), - stateContainer.savedSearchState.getState() - ); - - return ( - - - {currentSavedSearch.title ?? 'None selected'} - - } - isOpen={isPopoverOpen} - panelPaddingSize="none" - closePopover={closePopover} - > - ({ - name: savedSearch.get('title'), - onClick: () => stateContainer.actions.onOpenSavedSearch(savedSearch.id), - icon: savedSearch.id === currentSavedSearch.id ? 'check' : 'empty', - 'data-test-subj': `logsViewSelectorOption-${savedSearch.attributes.title.replace( - /[^a-zA-Z0-9]/g, - '' - )}`, - })), - }, - ]} - /> - - - ); - }, - PrependFilterBar: () => { - const [controlGroupAPI, setControlGroupAPI] = useState(); - const stateStorage = stateContainer.stateStorage; - const dataView = useObservable( - stateContainer.internalState.state$, - stateContainer.internalState.getState() - ).dataView; - - useEffect(() => { - if (!controlGroupAPI) { - return; - } - - const stateSubscription = stateStorage - .change$('controlPanels') - .subscribe((panels) => - controlGroupAPI.updateInput({ panels: panels ?? undefined }) - ); - - const inputSubscription = controlGroupAPI.getInput$().subscribe((input) => { - if (input && input.panels) stateStorage.set('controlPanels', input.panels); + ]; + }, + }); + + customizations.set({ + id: 'search_bar', + CustomDataViewPicker: () => { + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + const togglePopover = () => setIsPopoverOpen((open) => !open); + const closePopover = () => setIsPopoverOpen(false); + const [savedSearches, setSavedSearches] = useState< + Array> + >([]); + + useEffect(() => { + core.savedObjects.client + .find<{ title: string }>({ type: 'search' }) + .then((response) => { + setSavedSearches(response.savedObjects); }); - - const filterSubscription = controlGroupAPI.onFiltersPublished$.subscribe( - (newFilters) => { - stateContainer.internalState.transitions.setCustomFilters(newFilters); - stateContainer.actions.fetchData(); + }, []); + + const currentSavedSearch = useObservable( + stateContainer.savedSearchState.getCurrent$(), + stateContainer.savedSearchState.getState() + ); + + return ( + + + {currentSavedSearch.title ?? 'None selected'} + + } + isOpen={isPopoverOpen} + panelPaddingSize="none" + closePopover={closePopover} + > + ({ + name: savedSearch.get('title'), + onClick: () => stateContainer.actions.onOpenSavedSearch(savedSearch.id), + icon: savedSearch.id === currentSavedSearch.id ? 'check' : 'empty', + 'data-test-subj': `logsViewSelectorOption-${savedSearch.attributes.title.replace( + /[^a-zA-Z0-9]/g, + '' + )}`, + })), + }, + ]} + /> + + + ); + }, + }); + + customizations.set({ + id: 'search_bar', + CustomDataViewPicker: () => { + const [isPopoverOpen, setIsPopoverOpen] = useState(false); + const togglePopover = () => setIsPopoverOpen((open) => !open); + const closePopover = () => setIsPopoverOpen(false); + const [savedSearches, setSavedSearches] = useState< + Array> + >([]); + + useEffect(() => { + core.savedObjects.client + .find<{ title: string }>({ type: 'search' }) + .then((response) => { + setSavedSearches(response.savedObjects); + }); + }, []); + + const currentSavedSearch = useObservable( + stateContainer.savedSearchState.getCurrent$(), + stateContainer.savedSearchState.getState() + ); + + return ( + + + {currentSavedSearch.title ?? 'None selected'} + } - ); + isOpen={isPopoverOpen} + panelPaddingSize="none" + closePopover={closePopover} + > + ({ + name: savedSearch.get('title'), + onClick: () => stateContainer.actions.onOpenSavedSearch(savedSearch.id), + icon: savedSearch.id === currentSavedSearch.id ? 'check' : 'empty', + 'data-test-subj': `logsViewSelectorOption-${savedSearch.attributes.title.replace( + /[^a-zA-Z0-9]/g, + '' + )}`, + })), + }, + ]} + /> + + + ); + }, + PrependFilterBar: () => { + const [controlGroupAPI, setControlGroupAPI] = useState(); + const stateStorage = stateContainer.stateStorage; + const dataView = useObservable( + stateContainer.internalState.state$, + stateContainer.internalState.getState() + ).dataView; + + useEffect(() => { + if (!controlGroupAPI) { + return; + } - return () => { - stateSubscription.unsubscribe(); - inputSubscription.unsubscribe(); - filterSubscription.unsubscribe(); - }; - }, [controlGroupAPI, stateStorage]); + const stateSubscription = stateStorage + .change$('controlPanels') + .subscribe((panels) => controlGroupAPI.updateInput({ panels: panels ?? undefined })); - const fieldToFilterOn = dataView?.fields.filter((field) => - field.esTypes?.includes('keyword') - )[0]; + const inputSubscription = controlGroupAPI.getInput$().subscribe((input) => { + if (input && input.panels) stateStorage.set('controlPanels', input.panels); + }); - if (!fieldToFilterOn) { - return null; - } + const filterSubscription = controlGroupAPI.onFiltersPublished$.subscribe( + (newFilters) => { + stateContainer.internalState.transitions.setCustomFilters(newFilters); + stateContainer.actions.fetchData(); + } + ); - return ( - { + stateSubscription.unsubscribe(); + inputSubscription.unsubscribe(); + filterSubscription.unsubscribe(); + }; + }, [controlGroupAPI, stateStorage]); + + const fieldToFilterOn = dataView?.fields.filter((field) => + field.esTypes?.includes('keyword') + )[0]; + + if (!fieldToFilterOn) { + return null; + } + + return ( + + { + const panels = stateStorage.get('controlPanels'); + + if (!panels) { + await builder.addOptionsListControl(initialInput, { + dataViewId: dataView?.id!, + title: fieldToFilterOn.name.split('.')[0], + fieldName: fieldToFilterOn.name, + grow: false, + width: 'small', + }); } - `} - > - { - const panels = stateStorage.get('controlPanels'); - - if (!panels) { - await builder.addOptionsListControl(initialInput, { - dataViewId: dataView?.id!, - title: fieldToFilterOn.name.split('.')[0], - fieldName: fieldToFilterOn.name, - grow: false, - width: 'small', - }); - } - - return { - initialInput: { - ...initialInput, - panels: panels ?? initialInput.panels, - viewMode: ViewMode.VIEW, - filters: stateContainer.appState.get().filters ?? [], - }, - }; - }} - /> - - ); - }, - }); - - customizations.set({ - id: 'flyout', - size: '60%', - title: 'Example custom flyout', - actions: { - getActionItems: () => - Array.from({ length: 5 }, (_, i) => { - const index = i + 1; - return { - id: `action-item-${index}`, - enabled: true, - label: `Action ${index}`, - iconType: ['faceHappy', 'faceNeutral', 'faceSad', 'infinity', 'bell'].at( - i - ) as IconType, - dataTestSubj: `customActionItem${index}`, - onClick: () => alert(index), - }; - }), - }, - }); - return () => { - // eslint-disable-next-line no-console - console.log('Cleaning up Logs explorer customizations'); - }; - }, - }); + return { + initialInput: { + ...initialInput, + panels: panels ?? initialInput.panels, + viewMode: ViewMode.VIEW, + filters: stateContainer.appState.get().filters ?? [], + }, + }; + }} + /> + + ); + }, + }); + + customizations.set({ + id: 'flyout', + size: '60%', + title: 'Example custom flyout', + actions: { + getActionItems: () => + Array.from({ length: 5 }, (_, i) => { + const index = i + 1; + return { + id: `action-item-${index}`, + enabled: true, + label: `Action ${index}`, + iconType: ['faceHappy', 'faceNeutral', 'faceSad', 'infinity', 'bell'].at( + i + ) as IconType, + dataTestSubj: `customActionItem${index}`, + onClick: () => alert(index), + }; + }), + }, + }); + + return () => { + // eslint-disable-next-line no-console + console.log('Cleaning up Logs explorer customizations'); + }; + }; } } diff --git a/examples/discover_customization_examples/tsconfig.json b/examples/discover_customization_examples/tsconfig.json index fee756f127064..c71a72086dde1 100644 --- a/examples/discover_customization_examples/tsconfig.json +++ b/examples/discover_customization_examples/tsconfig.json @@ -10,6 +10,10 @@ "@kbn/developer-examples-plugin", "@kbn/controls-plugin", "@kbn/embeddable-plugin", + "@kbn/shared-ux-router", + "@kbn/i18n-react", + "@kbn/react-kibana-context-theme", + "@kbn/data-plugin", ], "exclude": ["target/**/*"] } diff --git a/src/plugins/discover/common/app_locator.test.ts b/src/plugins/discover/common/app_locator.test.ts index fc8d33010aa91..78d0d32fd6ed2 100644 --- a/src/plugins/discover/common/app_locator.test.ts +++ b/src/plugins/discover/common/app_locator.test.ts @@ -15,7 +15,6 @@ import { mockStorage } from '@kbn/kibana-utils-plugin/public/storage/hashed_item import { FilterStateStore } from '@kbn/es-query'; import { DiscoverAppLocatorDefinition } from './app_locator'; import { SerializableRecord } from '@kbn/utility-types'; -import { addProfile } from './customizations'; const dataViewId: string = 'c367b774-a4c2-11ea-bb37-0242ac130002'; const savedSearchId: string = '571aaf70-4c88-11e8-b3d7-01146121b73d'; @@ -58,13 +57,6 @@ describe('Discover url generator', () => { expect(_g).toEqual(undefined); }); - test('can specify profile', async () => { - const { locator } = await setup(); - const { path } = await locator.getLocation({ profile: 'test', dataViewId: '123' }); - - expect(path).toBe(`${addProfile('#/', 'test')}?_a=(index:'123')`); - }); - test('can specify specific data view', async () => { const { locator } = await setup(); const { path } = await locator.getLocation({ dataViewId }); diff --git a/src/plugins/discover/common/app_locator.ts b/src/plugins/discover/common/app_locator.ts index 9be9947e743dd..144f052c2a44d 100644 --- a/src/plugins/discover/common/app_locator.ts +++ b/src/plugins/discover/common/app_locator.ts @@ -14,7 +14,6 @@ import type { DiscoverGridSettings } from '@kbn/saved-search-plugin/common'; import { DataViewSpec } from '@kbn/data-views-plugin/common'; import { setStateToKbnUrl } from '@kbn/kibana-utils-plugin/common'; import { VIEW_MODE } from './constants'; -import { addProfile } from './customizations'; export const DISCOVER_APP_LOCATOR = 'DISCOVER_APP_LOCATOR'; @@ -106,10 +105,6 @@ export interface DiscoverAppLocatorParams extends SerializableRecord { * Used when navigating to particular alert results */ isAlertResults?: boolean; - /** - * The Discover profile to use - */ - profile?: string; } export type DiscoverAppLocator = LocatorPublic; @@ -153,7 +148,6 @@ export class DiscoverAppLocatorDefinition implements LocatorDefinition { - describe('addProfile', () => { - it('should add profile to path', () => { - expect(addProfile('/root', 'test')).toEqual('/root/p/test'); - }); - - it('should add profile to path with trailing slash', () => { - expect(addProfile('/root/', 'test')).toEqual('/root/p/test/'); - }); - - it('should trim path', () => { - expect(addProfile(' /root ', 'test')).toEqual('/root/p/test'); - }); - - it('should work with empty path', () => { - expect(addProfile('', 'test')).toEqual('/p/test'); - }); - }); - - describe('getProfile', () => { - it('should return profile from path', () => { - expect(getProfile('/p/test/subpath')).toEqual({ - profile: 'test', - isProfileRootPath: false, - }); - }); - - it('should return profile from path with trailing slash', () => { - expect(getProfile('/p/test/subpath/')).toEqual({ - profile: 'test', - isProfileRootPath: false, - }); - }); - - it('should return profile from root path', () => { - expect(getProfile('/p/test')).toEqual({ - profile: 'test', - isProfileRootPath: true, - }); - }); - - it('should return profile from root path with trailing slash', () => { - expect(getProfile('/p/test/')).toEqual({ - profile: 'test', - isProfileRootPath: true, - }); - }); - - it('should return undefined if profile is not in path', () => { - expect(getProfile('/root')).toEqual({ - profile: undefined, - isProfileRootPath: false, - }); - }); - - it('should return undefined if path is empty', () => { - expect(getProfile('')).toEqual({ - profile: undefined, - isProfileRootPath: false, - }); - }); - }); -}); diff --git a/src/plugins/discover/common/customizations/utils.ts b/src/plugins/discover/common/customizations/utils.ts deleted file mode 100644 index 4eeae7de6aad4..0000000000000 --- a/src/plugins/discover/common/customizations/utils.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { matchPath } from 'react-router-dom'; - -export const addProfile = (path: string, profile: string) => { - const trimmedPath = path.trim(); - const hasSlash = trimmedPath.endsWith('/'); - - return `${trimmedPath}${hasSlash ? '' : '/'}p/${profile}${hasSlash ? '/' : ''}`; -}; - -export const getProfile = (path: string) => { - const match = matchPath<{ profile?: string }>(path, { - path: '/p/:profile', - }); - - return { - profile: match?.params.profile, - isProfileRootPath: match?.isExact ?? false, - }; -}; diff --git a/src/plugins/discover/public/application/context/services/locator.test.ts b/src/plugins/discover/public/application/context/services/locator.test.ts index ee9dfbb3b7d74..1a0b7060297c2 100644 --- a/src/plugins/discover/public/application/context/services/locator.test.ts +++ b/src/plugins/discover/public/application/context/services/locator.test.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { addProfile } from '../../../../common/customizations'; import { getStatesFromKbnUrl } from '@kbn/kibana-utils-plugin/public'; import { DiscoverContextAppLocatorDefinition } from './locator'; @@ -73,18 +72,6 @@ describe('Discover context url generator', () => { expect(_g).toEqual({ filters: [] }); }); - test('can specify profile', async () => { - const { locator } = await setup(); - const { path } = await locator.getLocation({ - profile: 'test', - index: dataViewId, - rowId: 'mock-row-id', - referrer: 'mock-referrer', - }); - - expect(path).toBe(`${addProfile('#/', 'test')}context/${dataViewId}/mock-row-id`); - }); - test('when useHash set to false, sets data view ID in the generated URL', async () => { const { locator } = await setup(); const { path } = await locator.getLocation({ diff --git a/src/plugins/discover/public/application/context/services/locator.ts b/src/plugins/discover/public/application/context/services/locator.ts index 7f51d10b8fdbb..4f4d6673f7f4c 100644 --- a/src/plugins/discover/public/application/context/services/locator.ts +++ b/src/plugins/discover/public/application/context/services/locator.ts @@ -12,7 +12,6 @@ import type { GlobalQueryStateFromUrl } from '@kbn/data-plugin/public'; import type { LocatorDefinition, LocatorPublic } from '@kbn/share-plugin/public'; import { setStateToKbnUrl } from '@kbn/kibana-utils-plugin/public'; import type { DataViewSpec } from '@kbn/data-views-plugin/public'; -import { addProfile } from '../../../../common/customizations'; export const DISCOVER_CONTEXT_APP_LOCATOR = 'DISCOVER_CONTEXT_APP_LOCATOR'; @@ -22,7 +21,6 @@ export interface DiscoverContextAppLocatorParams extends SerializableRecord { columns?: string[]; filters?: Filter[]; referrer: string; // discover main view url - profile?: string; } export type DiscoverContextAppLocator = LocatorPublic; @@ -65,13 +63,7 @@ export class DiscoverContextAppLocatorDefinition dataViewId = index; } - let path = '#/'; - - if (params.profile) { - path = addProfile(path, params.profile); - } - - path = `${path}context/${dataViewId}/${encodeURIComponent(rowId)}`; + let path = `#/context/${dataViewId}/${encodeURIComponent(rowId)}`; if (Object.keys(queryState).length) { path = setStateToKbnUrl('_g', queryState, { useHash }, path); diff --git a/src/plugins/discover/public/application/discover_router.test.tsx b/src/plugins/discover/public/application/discover_router.test.tsx index 5fb68bb9f2e99..a5133be1b764a 100644 --- a/src/plugins/discover/public/application/discover_router.test.tsx +++ b/src/plugins/discover/public/application/discover_router.test.tsx @@ -11,29 +11,12 @@ import { Redirect, RouteProps } from 'react-router-dom'; import { Route } from '@kbn/shared-ux-router'; import { createSearchSessionMock } from '../__mocks__/search_session'; import { discoverServiceMock as mockDiscoverServices } from '../__mocks__/services'; -import { - CustomDiscoverRoutes, - DiscoverRouter, - DiscoverRoutes, - DiscoverRoutesProps, -} from './discover_router'; +import { DiscoverRouter } from './discover_router'; import { DiscoverMainRoute } from './main'; import { SingleDocRoute } from './doc'; import { ContextAppRoute } from './context'; -import { createProfileRegistry } from '../customizations/profile_registry'; -import { addProfile } from '../../common/customizations'; -import { NotFoundRoute } from './not_found'; import { mockCustomizationContext } from '../customizations/__mocks__/customization_context'; - -let mockProfile: string | undefined; - -jest.mock('react-router-dom', () => { - const originalModule = jest.requireActual('react-router-dom'); - return { - ...originalModule, - useParams: () => ({ profile: mockProfile }), - }; -}); +import { MainRouteProps } from './main/discover_main_route'; let pathMap: Record = {}; @@ -51,142 +34,10 @@ const gatherRoutes = (wrapper: ShallowWrapper) => { const mockExperimentalFeatures = {}; -const props: DiscoverRoutesProps = { - customizationCallbacks: [], +const props: MainRouteProps = { customizationContext: mockCustomizationContext, - experimentalFeatures: mockExperimentalFeatures, }; -describe('DiscoverRoutes', () => { - describe('Without prefix', () => { - beforeAll(() => { - pathMap = {}; - gatherRoutes(shallow()); - }); - - it('should show DiscoverMainRoute component for / route', () => { - expect(pathMap['/']).toMatchObject(); - }); - - it('should show DiscoverMainRoute component for /view/:id route', () => { - expect(pathMap['/view/:id']).toMatchObject(); - }); - - it('should show Redirect component for /doc/:dataView/:index/:type route', () => { - const redirectParams = { - match: { - params: { - dataView: '123', - index: '456', - }, - }, - }; - const redirect = pathMap['/doc/:dataView/:index/:type'] as Function; - expect(typeof redirect).toBe('function'); - expect(redirect(redirectParams)).toMatchObject(); - }); - - it('should show SingleDocRoute component for /doc/:dataViewId/:index route', () => { - expect(pathMap['/doc/:dataViewId/:index']).toMatchObject(); - }); - - it('should show ContextAppRoute component for /context/:dataViewId/:id route', () => { - expect(pathMap['/context/:dataViewId/:id']).toMatchObject(); - }); - }); - - const prefix = addProfile('', 'test'); - - describe('With prefix', () => { - beforeAll(() => { - pathMap = {}; - gatherRoutes(shallow()); - }); - - it(`should show DiscoverMainRoute component for ${prefix} route`, () => { - expect(pathMap[`${prefix}/`]).toMatchObject(); - }); - - it(`should show DiscoverMainRoute component for ${prefix}/view/:id route`, () => { - expect(pathMap[`${prefix}/view/:id`]).toMatchObject(); - }); - - it(`should show Redirect component for ${prefix}/doc/:dataView/:index/:type route`, () => { - const redirectParams = { - match: { - params: { - dataView: '123', - index: '456', - }, - }, - }; - const redirect = pathMap[`${prefix}/doc/:dataView/:index/:type`] as Function; - expect(typeof redirect).toBe('function'); - expect(redirect(redirectParams)).toMatchObject(); - }); - - it(`should show SingleDocRoute component for ${prefix}/doc/:dataViewId/:index route`, () => { - expect(pathMap[`${prefix}/doc/:dataViewId/:index`]).toMatchObject(); - }); - - it(`should show ContextAppRoute component for ${prefix}/context/:dataViewId/:id route`, () => { - expect(pathMap[`${prefix}/context/:dataViewId/:id`]).toMatchObject(); - }); - }); -}); - -const profileRegistry = createProfileRegistry(); -const callbacks = [jest.fn()]; - -profileRegistry.set({ - id: 'default', - customizationCallbacks: callbacks, -}); - -profileRegistry.set({ - id: 'test', - customizationCallbacks: callbacks, -}); - -describe('CustomDiscoverRoutes', () => { - afterEach(() => { - mockProfile = undefined; - }); - - it('should show DiscoverRoutes for a valid profile', () => { - mockProfile = 'test'; - const component = shallow( - - ); - expect(component.find(DiscoverRoutes).getElement()).toMatchObject( - - ); - }); - - it('should show NotFoundRoute for an invalid profile', () => { - mockProfile = 'invalid'; - const component = shallow( - - ); - expect(component.find(NotFoundRoute).getElement()).toMatchObject(); - }); -}); - -const profilePath = addProfile('', ':profile'); - describe('DiscoverRouter', () => { beforeAll(() => { pathMap = {}; @@ -195,7 +46,6 @@ describe('DiscoverRouter', () => { @@ -203,23 +53,33 @@ describe('DiscoverRouter', () => { gatherRoutes(component); }); - it('should show DiscoverRoutes component for / route', () => { - expect(pathMap['/']).toMatchObject( - - ); + it('should show DiscoverMainRoute component for / route', () => { + expect(pathMap['/']).toMatchObject(); }); - it(`should show CustomDiscoverRoutes component for ${profilePath} route`, () => { - expect(pathMap[profilePath]).toMatchObject( - - ); + it('should show DiscoverMainRoute component for /view/:id route', () => { + expect(pathMap['/view/:id']).toMatchObject(); + }); + + it('should show Redirect component for /doc/:dataView/:index/:type route', () => { + const redirectParams = { + match: { + params: { + dataView: '123', + index: '456', + }, + }, + }; + const redirect = pathMap['/doc/:dataView/:index/:type'] as Function; + expect(typeof redirect).toBe('function'); + expect(redirect(redirectParams)).toMatchObject(); + }); + + it('should show SingleDocRoute component for /doc/:dataViewId/:index route', () => { + expect(pathMap['/doc/:dataViewId/:index']).toMatchObject(); + }); + + it('should show ContextAppRoute component for /context/:dataViewId/:id route', () => { + expect(pathMap['/context/:dataViewId/:id']).toMatchObject(); }); }); diff --git a/src/plugins/discover/public/application/discover_router.tsx b/src/plugins/discover/public/application/discover_router.tsx index d7aff97483665..48767b4e4b8ea 100644 --- a/src/plugins/discover/public/application/discover_router.tsx +++ b/src/plugins/discover/public/application/discover_router.tsx @@ -6,9 +6,9 @@ * Side Public License, v 1. */ -import { Redirect, useParams } from 'react-router-dom'; +import { Redirect } from 'react-router-dom'; import { Router, Routes, Route } from '@kbn/shared-ux-router'; -import React, { useCallback, useMemo } from 'react'; +import React from 'react'; import { History } from 'history'; import { EuiErrorBoundary } from '@elastic/eui'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; @@ -19,109 +19,43 @@ import { DiscoverMainRoute } from './main'; import { NotFoundRoute } from './not_found'; import { DiscoverServices } from '../build_services'; import { ViewAlertRoute } from './view_alert'; -import type { CustomizationCallback, DiscoverCustomizationContext } from '../customizations'; -import type { DiscoverProfileRegistry } from '../customizations/profile_registry'; -import { addProfile } from '../../common/customizations'; - -export interface DiscoverRoutesProps { - prefix?: string; - customizationCallbacks: CustomizationCallback[]; - customizationContext: DiscoverCustomizationContext; - experimentalFeatures: ExperimentalFeatures; -} - -export const DiscoverRoutes = ({ prefix, ...mainRouteProps }: DiscoverRoutesProps) => { - const prefixPath = useCallback( - (path: string) => (prefix ? `${prefix}/${path}` : `/${path}`), - [prefix] - ); - - return ( - - - - - ( - - )} - /> - - - - - - - - - - - - - - - ); -}; - -interface CustomDiscoverRoutesProps { - profileRegistry: DiscoverProfileRegistry; - customizationContext: DiscoverCustomizationContext; - experimentalFeatures: ExperimentalFeatures; -} - -export const CustomDiscoverRoutes = ({ profileRegistry, ...props }: CustomDiscoverRoutesProps) => { - const { profile } = useParams<{ profile: string }>(); - const customizationCallbacks = useMemo( - () => profileRegistry.get(profile)?.customizationCallbacks, - [profile, profileRegistry] - ); - - if (customizationCallbacks) { - return ( - - ); - } - - return ; -}; +import type { DiscoverCustomizationContext } from '../customizations'; export interface DiscoverRouterProps { services: DiscoverServices; - profileRegistry: DiscoverProfileRegistry; customizationContext: DiscoverCustomizationContext; experimentalFeatures: ExperimentalFeatures; history: History; } -export const DiscoverRouter = ({ - services, - history, - profileRegistry, - ...routeProps -}: DiscoverRouterProps) => { - const customizationCallbacks = useMemo( - () => profileRegistry.get('default')?.customizationCallbacks ?? [], - [profileRegistry] - ); - +export const DiscoverRouter = ({ services, history, ...routeProps }: DiscoverRouterProps) => { return ( - - + + + + ( + + )} + /> + + + + + + + + - - + + + diff --git a/src/plugins/discover/public/application/doc/locator.test.ts b/src/plugins/discover/public/application/doc/locator.test.ts index 05907adb888e4..1d5340b9b9c5e 100644 --- a/src/plugins/discover/public/application/doc/locator.test.ts +++ b/src/plugins/discover/public/application/doc/locator.test.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { addProfile } from '../../../common/customizations'; import { DiscoverSingleDocLocatorDefinition } from './locator'; const dataViewId: string = 'c367b774-a4c2-11ea-bb37-0242ac130002'; @@ -45,17 +44,4 @@ describe('Discover single doc url generator', () => { `"#/doc/c367b774-a4c2-11ea-bb37-0242ac130002/mock-row-index?id=id%20with%20special%20characters%3A%20%26%3F%23%2B%2F%3D"` ); }); - - test('can specify profile', async () => { - const { locator } = await setup(); - const { path } = await locator.getLocation({ - profile: 'test', - index: dataViewId, - rowId: 'mock-row-id', - rowIndex: 'mock-row-index', - referrer: 'mock-referrer', - }); - - expect(path).toBe(`${addProfile('#/', 'test')}doc/${dataViewId}/mock-row-index?id=mock-row-id`); - }); }); diff --git a/src/plugins/discover/public/application/doc/locator.ts b/src/plugins/discover/public/application/doc/locator.ts index d230086dcd3db..1c1026ead35fc 100644 --- a/src/plugins/discover/public/application/doc/locator.ts +++ b/src/plugins/discover/public/application/doc/locator.ts @@ -9,7 +9,6 @@ import type { SerializableRecord } from '@kbn/utility-types'; import type { LocatorDefinition, LocatorPublic } from '@kbn/share-plugin/public'; import { DataViewSpec } from '@kbn/data-views-plugin/public'; -import { addProfile } from '../../../common/customizations'; export const DISCOVER_SINGLE_DOC_LOCATOR = 'DISCOVER_SINGLE_DOC_LOCATOR'; @@ -18,7 +17,6 @@ export interface DiscoverSingleDocLocatorParams extends SerializableRecord { rowId: string; rowIndex: string; referrer: string; // discover main view url - profile?: string; } export type DiscoverSingleDocLocator = LocatorPublic; @@ -47,13 +45,7 @@ export class DiscoverSingleDocLocatorDefinition dataViewId = index; } - let path = '#/'; - - if (params.profile) { - path = addProfile(path, params.profile); - } - - path = `${path}doc/${dataViewId}/${rowIndex}?id=${encodeURIComponent(rowId)}`; + const path = `#/doc/${dataViewId}/${rowIndex}?id=${encodeURIComponent(rowId)}`; return { app: 'discover', diff --git a/src/plugins/discover/public/application/index.tsx b/src/plugins/discover/public/application/index.tsx index 97ae7c62aa953..8843533b68327 100644 --- a/src/plugins/discover/public/application/index.tsx +++ b/src/plugins/discover/public/application/index.tsx @@ -12,13 +12,11 @@ import { toMountPoint } from '@kbn/react-kibana-mount'; import { ExperimentalFeatures } from '../../common/config'; import { DiscoverRouter } from './discover_router'; import { DiscoverServices } from '../build_services'; -import type { DiscoverProfileRegistry } from '../customizations/profile_registry'; import type { DiscoverCustomizationContext } from '../customizations'; export interface RenderAppProps { element: HTMLElement; services: DiscoverServices; - profileRegistry: DiscoverProfileRegistry; customizationContext: DiscoverCustomizationContext; experimentalFeatures: ExperimentalFeatures; } @@ -26,7 +24,6 @@ export interface RenderAppProps { export const renderApp = ({ element, services, - profileRegistry, customizationContext, experimentalFeatures, }: RenderAppProps) => { @@ -46,7 +43,6 @@ export const renderApp = ({ const unmount = toMountPoint( { const { load } = prepareTest(savedSearchMockWithTimeFieldNew, '/'); expect(load).toHaveBeenCalledTimes(1); }); - test('loadSavedSearch is triggered when a new saved search is pre-selected with an active profile', () => { - const { load } = prepareTest(savedSearchMockWithTimeFieldNew, addProfile('', 'test')); - expect(load).toHaveBeenCalledTimes(1); - }); }); diff --git a/src/plugins/discover/public/application/main/hooks/use_url.ts b/src/plugins/discover/public/application/main/hooks/use_url.ts index 9a64b20a6f39e..debcadabacfe1 100644 --- a/src/plugins/discover/public/application/main/hooks/use_url.ts +++ b/src/plugins/discover/public/application/main/hooks/use_url.ts @@ -8,7 +8,6 @@ import { useEffect } from 'react'; import { History } from 'history'; -import { getProfile } from '../../../../common/customizations'; export function useUrl({ history, @@ -27,9 +26,7 @@ export function useUrl({ // which could be set through pressing "New" button in top nav or go to "Discover" plugin from the sidebar // to reload the page in a right way const unlistenHistoryBasePath = history.listen(({ pathname, search, hash }) => { - const { isProfileRootPath } = getProfile(pathname); - - if ((pathname === '/' || isProfileRootPath) && !search && !hash && !savedSearchId) { + if (pathname === '/' && !search && !hash && !savedSearchId) { onNewUrl(); } }); diff --git a/src/plugins/discover/public/components/discover_container/discover_container.test.tsx b/src/plugins/discover/public/components/discover_container/discover_container.test.tsx index 3dc04996c483c..47ac6d499e1b8 100644 --- a/src/plugins/discover/public/components/discover_container/discover_container.test.tsx +++ b/src/plugins/discover/public/components/discover_container/discover_container.test.tsx @@ -18,9 +18,7 @@ import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; import { dataPluginMock } from '@kbn/data-plugin/public/mocks'; const mockOverrideService = {}; -const getDiscoverServicesMock = jest.fn( - () => new Promise((resolve) => resolve(discoverServiceMock)) -); +const getDiscoverServicesMock = jest.fn(() => discoverServiceMock); jest.mock('../../application/main', () => { return { @@ -57,8 +55,7 @@ describe('DiscoverContainerInternal should render properly', () => { afterEach(() => jest.clearAllMocks()); it('should render', async () => { - const { getByTestId, queryByTestId } = render(); - expect(queryByTestId(TEST_IDS.DISCOVER_CONTAINER_INTERNAL)).not.toBeInTheDocument(); + const { getByTestId } = render(); expect(getDiscoverServicesMock).toHaveBeenCalledTimes(1); diff --git a/src/plugins/discover/public/components/discover_container/discover_container.tsx b/src/plugins/discover/public/components/discover_container/discover_container.tsx index f9695f57f867f..4f768554e1e54 100644 --- a/src/plugins/discover/public/components/discover_container/discover_container.tsx +++ b/src/plugins/discover/public/components/discover_container/discover_container.tsx @@ -9,7 +9,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import type { ScopedHistory } from '@kbn/core/public'; import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; -import React, { useEffect, useMemo, useState } from 'react'; +import React, { useMemo } from 'react'; import { css } from '@emotion/react'; import type { IKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public'; import { DiscoverMainRoute } from '../../application/main'; @@ -25,7 +25,7 @@ export interface DiscoverContainerInternalProps { * already consumes. */ overrideServices: Partial; - getDiscoverServices: () => Promise; + getDiscoverServices: () => DiscoverServices; scopedHistory: ScopedHistory; customizationCallbacks: CustomizationCallback[]; stateStorageContainer?: IKbnUrlStateStorage; @@ -59,23 +59,15 @@ export const DiscoverContainerInternal = ({ stateStorageContainer, isLoading = false, }: DiscoverContainerInternalProps) => { - const [discoverServices, setDiscoverServices] = useState(); + const services = useMemo(() => { + return { + ...getDiscoverServices(), + ...overrideServices, + getScopedHistory: () => scopedHistory as ScopedHistory, + }; + }, [getDiscoverServices, overrideServices, scopedHistory]); - useEffect(() => { - getDiscoverServices().then(setDiscoverServices); - }, [getDiscoverServices]); - - const services = useMemo(() => { - return discoverServices - ? { - ...discoverServices, - ...overrideServices, - getScopedHistory: () => scopedHistory as ScopedHistory, - } - : undefined; - }, [discoverServices, overrideServices, scopedHistory]); - - if (!services || isLoading) { + if (isLoading) { return ( diff --git a/src/plugins/discover/public/customizations/profile_aware_locator.test.ts b/src/plugins/discover/public/customizations/profile_aware_locator.test.ts deleted file mode 100644 index d0ef7a526dac2..0000000000000 --- a/src/plugins/discover/public/customizations/profile_aware_locator.test.ts +++ /dev/null @@ -1,141 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { History } from 'history'; -import { addProfile } from '../../common/customizations'; -import { HistoryLocationState } from '../build_services'; -import { ProfileAwareLocator } from './profile_aware_locator'; - -let mockHistory: History; - -describe('ProfileAwareLocator', () => { - beforeEach(() => { - mockHistory = { - location: { - pathname: '', - }, - } as History; - }); - - it('should inject profile', async () => { - mockHistory.location.pathname = addProfile('', 'test'); - const locator = { - id: 'test', - migrations: {}, - getLocation: jest.fn(), - getUrl: jest.fn(), - getRedirectUrl: jest.fn(), - navigate: jest.fn(), - navigateSync: jest.fn(), - useUrl: jest.fn(), - telemetry: jest.fn(), - inject: jest.fn(), - extract: jest.fn(), - }; - const profileAwareLocator = new ProfileAwareLocator(locator, mockHistory); - const params = { foo: 'bar' }; - const injectedParams = { foo: 'bar', profile: 'test' }; - await profileAwareLocator.getLocation(params); - expect(locator.getLocation).toHaveBeenCalledWith(injectedParams); - await profileAwareLocator.getUrl(params, { absolute: true }); - expect(locator.getUrl).toHaveBeenCalledWith(injectedParams, { absolute: true }); - profileAwareLocator.getRedirectUrl(params, { lzCompress: true }); - expect(locator.getRedirectUrl).toHaveBeenCalledWith(injectedParams, { lzCompress: true }); - await profileAwareLocator.navigate(params, { replace: true }); - expect(locator.navigate).toHaveBeenCalledWith(injectedParams, { replace: true }); - profileAwareLocator.navigateSync(params, { replace: true }); - expect(locator.navigateSync).toHaveBeenCalledWith(injectedParams, { replace: true }); - profileAwareLocator.useUrl(params, { absolute: true }, ['test']); - expect(locator.useUrl).toHaveBeenCalledWith(injectedParams, { absolute: true }, ['test']); - profileAwareLocator.telemetry(params, { foo: 'bar' }); - expect(locator.telemetry).toHaveBeenCalledWith(injectedParams, { foo: 'bar' }); - await profileAwareLocator.inject(params, [{ id: 'test', name: 'test', type: 'test' }]); - expect(locator.inject).toHaveBeenCalledWith(injectedParams, [ - { id: 'test', name: 'test', type: 'test' }, - ]); - profileAwareLocator.extract(params); - expect(locator.extract).toHaveBeenCalledWith(injectedParams); - }); - - it('should not overwrite the provided profile with an injected one', async () => { - mockHistory.location.pathname = addProfile('', 'test'); - const locator = { - id: 'test', - migrations: {}, - getLocation: jest.fn(), - getUrl: jest.fn(), - getRedirectUrl: jest.fn(), - navigate: jest.fn(), - navigateSync: jest.fn(), - useUrl: jest.fn(), - telemetry: jest.fn(), - inject: jest.fn(), - extract: jest.fn(), - }; - const profileAwareLocator = new ProfileAwareLocator(locator, mockHistory); - const params = { foo: 'bar', profile: 'test2' }; - await profileAwareLocator.getLocation(params); - expect(locator.getLocation).toHaveBeenCalledWith(params); - await profileAwareLocator.getUrl(params, { absolute: true }); - expect(locator.getUrl).toHaveBeenCalledWith(params, { absolute: true }); - profileAwareLocator.getRedirectUrl(params, { lzCompress: true }); - expect(locator.getRedirectUrl).toHaveBeenCalledWith(params, { lzCompress: true }); - await profileAwareLocator.navigate(params, { replace: true }); - expect(locator.navigate).toHaveBeenCalledWith(params, { replace: true }); - profileAwareLocator.navigateSync(params, { replace: true }); - expect(locator.navigateSync).toHaveBeenCalledWith(params, { replace: true }); - profileAwareLocator.useUrl(params, { absolute: true }, ['test']); - expect(locator.useUrl).toHaveBeenCalledWith(params, { absolute: true }, ['test']); - profileAwareLocator.telemetry(params, { foo: 'bar' }); - expect(locator.telemetry).toHaveBeenCalledWith(params, { foo: 'bar' }); - await profileAwareLocator.inject(params, [{ id: 'test', name: 'test', type: 'test' }]); - expect(locator.inject).toHaveBeenCalledWith(params, [ - { id: 'test', name: 'test', type: 'test' }, - ]); - profileAwareLocator.extract(params); - expect(locator.extract).toHaveBeenCalledWith(params); - }); - - it('should not pass a profile if there is no profile in the URL', async () => { - const locator = { - id: 'test', - migrations: {}, - getLocation: jest.fn(), - getUrl: jest.fn(), - getRedirectUrl: jest.fn(), - navigate: jest.fn(), - navigateSync: jest.fn(), - useUrl: jest.fn(), - telemetry: jest.fn(), - inject: jest.fn(), - extract: jest.fn(), - }; - const profileAwareLocator = new ProfileAwareLocator(locator, mockHistory); - const params = { foo: 'bar' }; - await profileAwareLocator.getLocation(params); - expect(locator.getLocation).toHaveBeenCalledWith(params); - await profileAwareLocator.getUrl(params, { absolute: true }); - expect(locator.getUrl).toHaveBeenCalledWith(params, { absolute: true }); - profileAwareLocator.getRedirectUrl(params, { lzCompress: true }); - expect(locator.getRedirectUrl).toHaveBeenCalledWith(params, { lzCompress: true }); - await profileAwareLocator.navigate(params, { replace: true }); - expect(locator.navigate).toHaveBeenCalledWith(params, { replace: true }); - profileAwareLocator.navigateSync(params, { replace: true }); - expect(locator.navigateSync).toHaveBeenCalledWith(params, { replace: true }); - profileAwareLocator.useUrl(params, { absolute: true }, ['test']); - expect(locator.useUrl).toHaveBeenCalledWith(params, { absolute: true }, ['test']); - profileAwareLocator.telemetry(params, { foo: 'bar' }); - expect(locator.telemetry).toHaveBeenCalledWith(params, { foo: 'bar' }); - await profileAwareLocator.inject(params, [{ id: 'test', name: 'test', type: 'test' }]); - expect(locator.inject).toHaveBeenCalledWith(params, [ - { id: 'test', name: 'test', type: 'test' }, - ]); - profileAwareLocator.extract(params); - expect(locator.extract).toHaveBeenCalledWith(params); - }); -}); diff --git a/src/plugins/discover/public/customizations/profile_aware_locator.ts b/src/plugins/discover/public/customizations/profile_aware_locator.ts deleted file mode 100644 index 5339a7c382aac..0000000000000 --- a/src/plugins/discover/public/customizations/profile_aware_locator.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import type { SavedObjectReference } from '@kbn/core-saved-objects-api-server'; -import type { - MigrateFunctionsObject, - GetMigrationFunctionObjectFn, -} from '@kbn/kibana-utils-plugin/common'; -import type { - LocatorGetUrlParams, - FormatSearchParamsOptions, - LocatorNavigationParams, -} from '@kbn/share-plugin/common/url_service'; -import type { LocatorPublic } from '@kbn/share-plugin/public'; -import { History } from 'history'; -import type { DependencyList } from 'react'; -import { getProfile } from '../../common/customizations'; -import { HistoryLocationState } from '../build_services'; - -export class ProfileAwareLocator implements LocatorPublic { - id: string; - migrations: MigrateFunctionsObject | GetMigrationFunctionObjectFn; - - constructor( - private readonly locator: LocatorPublic, - private readonly history: History - ) { - this.id = locator.id; - this.migrations = locator.migrations; - } - - private injectProfile(params: T) { - if (params.profile) { - return params; - } - - const { profile } = getProfile(this.history.location.pathname); - - if (profile) { - params = { ...params, profile }; - } - - return params; - } - - getLocation(params: T) { - return this.locator.getLocation(this.injectProfile(params)); - } - - getUrl(params: T, getUrlParams?: LocatorGetUrlParams) { - return this.locator.getUrl(this.injectProfile(params), getUrlParams); - } - - getRedirectUrl(params: T, options?: FormatSearchParamsOptions) { - return this.locator.getRedirectUrl(this.injectProfile(params), options); - } - - navigate(params: T, navigationParams?: LocatorNavigationParams) { - return this.locator.navigate(this.injectProfile(params), navigationParams); - } - - navigateSync(params: T, navigationParams?: LocatorNavigationParams) { - return this.locator.navigateSync(this.injectProfile(params), navigationParams); - } - - useUrl( - params: T, - getUrlParams?: LocatorGetUrlParams | undefined, - deps?: DependencyList | undefined - ) { - return this.locator.useUrl(this.injectProfile(params), getUrlParams, deps); - } - - telemetry(state: T, stats: Record) { - return this.locator.telemetry(this.injectProfile(state), stats); - } - - inject(state: T, references: SavedObjectReference[]) { - return this.locator.inject(this.injectProfile(state), references); - } - - extract(state: T) { - return this.locator.extract(this.injectProfile(state)); - } -} diff --git a/src/plugins/discover/public/customizations/profile_registry.test.ts b/src/plugins/discover/public/customizations/profile_registry.test.ts deleted file mode 100644 index 7d3ae5cca742a..0000000000000 --- a/src/plugins/discover/public/customizations/profile_registry.test.ts +++ /dev/null @@ -1,134 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { App, AppDeepLink, AppUpdater } from '@kbn/core/public'; -import { BehaviorSubject, combineLatest, map, take } from 'rxjs'; -import { createRegisterCustomizationProfile, createProfileRegistry } from './profile_registry'; - -describe('createProfileRegistry', () => { - it('should allow registering profiles', () => { - const registry = createProfileRegistry(); - registry.set({ - id: 'test', - customizationCallbacks: [], - }); - registry.set({ - id: 'test2', - customizationCallbacks: [], - }); - expect(registry.get('test')).toEqual({ - id: 'test', - customizationCallbacks: [], - }); - expect(registry.get('test2')).toEqual({ - id: 'test2', - customizationCallbacks: [], - }); - }); - - it('should allow overriding profiles', () => { - const registry = createProfileRegistry(); - registry.set({ - id: 'test', - customizationCallbacks: [], - }); - expect(registry.get('test')).toEqual({ - id: 'test', - customizationCallbacks: [], - }); - const callback = jest.fn(); - registry.set({ - id: 'test', - customizationCallbacks: [callback], - }); - expect(registry.get('test')).toEqual({ - id: 'test', - customizationCallbacks: [callback], - }); - }); - - it('should be case insensitive', () => { - const registry = createProfileRegistry(); - registry.set({ - id: 'test', - customizationCallbacks: [], - }); - expect(registry.get('tEsT')).toEqual({ - id: 'test', - customizationCallbacks: [], - }); - }); -}); - -describe('createRegisterCustomizationProfile', () => { - test('should add a customization callback to the registry', () => { - const registry = createProfileRegistry(); - const registerCustomizationProfile = createRegisterCustomizationProfile(registry); - const callback = jest.fn(); - registerCustomizationProfile('test', { customize: callback }); - expect(registry.get('test')).toEqual({ - id: 'test', - customizationCallbacks: [callback], - deepLinks: [], - }); - const callback2 = jest.fn(); - registerCustomizationProfile('test', { customize: callback2 }); - expect(registry.get('test')).toEqual({ - id: 'test', - customizationCallbacks: [callback, callback2], - deepLinks: [], - }); - }); -}); - -describe('profile.getContributedAppState$ observable', () => { - test('should notify subscribers with new app updates when a profile is registered', (done) => { - const registry = createProfileRegistry(); - const callback = jest.fn(); - const appUpdater$ = new BehaviorSubject(() => ({})); - - const mockDeepLink: AppDeepLink = { - id: 'test-deepLink', - title: 'Test deep link', - path: '/test-deep-link', - }; - let mockApp: App = { id: 'test-app', title: 'Test App', mount: () => () => {} }; - const expectedApp: App = { ...mockApp, deepLinks: [mockDeepLink] }; - - const appStateUpdater$ = combineLatest([appUpdater$, registry.getContributedAppState$()]).pipe( - map( - ([appUpdater, registryContributor]): AppUpdater => - (app) => ({ ...appUpdater(app), ...registryContributor(app) }) - ), - take(3) - ); - - appStateUpdater$.subscribe({ - next: (updater) => { - mockApp = { ...mockApp, ...updater(mockApp) }; - }, - complete: () => { - expect(mockApp).toEqual(expectedApp); - done(); - }, - }); - - // First update, no deepLinks set - registry.set({ - id: 'test', - customizationCallbacks: [callback], - }); - - // Second update, deepLinks set to update app - registry.set({ - id: 'test', - customizationCallbacks: [], - deepLinks: [mockDeepLink], - }); - }); -}); diff --git a/src/plugins/discover/public/customizations/profile_registry.ts b/src/plugins/discover/public/customizations/profile_registry.ts deleted file mode 100644 index f56f7d9c2d9e7..0000000000000 --- a/src/plugins/discover/public/customizations/profile_registry.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import type { AppDeepLink, AppUpdater } from '@kbn/core/public'; -import { map, Observable, BehaviorSubject } from 'rxjs'; -import type { RegisterCustomizationProfile, DiscoverProfile, DiscoverProfileId } from './types'; - -export interface DiscoverProfileRegistry { - get(id: DiscoverProfileId): DiscoverProfile | undefined; - set(profile: DiscoverProfile): void; - getContributedAppState$: () => Observable; -} - -export const createProfileRegistry = (): DiscoverProfileRegistry => { - const profiles = new Map([['default', createProfile('default')]]); - const profiles$ = new BehaviorSubject([...profiles.values()]); - - return { - get: (id) => profiles.get(id.toLowerCase()), - set: (profile) => { - profiles.set(profile.id.toLowerCase(), profile); - profiles$.next([...profiles.values()]); - }, - getContributedAppState$() { - return profiles$.pipe( - map((profilesList) => profilesList.flatMap((profile) => profile.deepLinks ?? [])), - map((profilesDeepLinks) => (app) => ({ - deepLinks: getUniqueDeepLinks([...(app.deepLinks ?? []), ...profilesDeepLinks]), - })) - ); - }, - }; -}; - -export const createRegisterCustomizationProfile = - (profileRegistry: DiscoverProfileRegistry): RegisterCustomizationProfile => - (id, options) => { - const profile = profileRegistry.get(id) ?? createProfile(id); - - const { customize, deepLinks } = options; - - profile.customizationCallbacks.push(customize); - - if (Array.isArray(deepLinks) && profile.deepLinks) { - profile.deepLinks = getUniqueDeepLinks([...profile.deepLinks, ...deepLinks]); - } else if (Array.isArray(deepLinks)) { - profile.deepLinks = getUniqueDeepLinks(deepLinks); - } - - profileRegistry.set(profile); - }; - -/** - * Utils - */ -const createProfile = (id: DiscoverProfileId): DiscoverProfile => ({ - id, - customizationCallbacks: [], - deepLinks: [], -}); - -const getUniqueDeepLinks = (deepLinks: AppDeepLink[]): AppDeepLink[] => { - const mapValues = deepLinks - .reduce((deepLinksMap, deepLink) => deepLinksMap.set(deepLink.id, deepLink), new Map()) - .values(); - - return Array.from(mapValues); -}; diff --git a/src/plugins/discover/public/customizations/types.ts b/src/plugins/discover/public/customizations/types.ts index 97ce9e4fa2615..3f81b2cce7aa1 100644 --- a/src/plugins/discover/public/customizations/types.ts +++ b/src/plugins/discover/public/customizations/types.ts @@ -6,33 +6,14 @@ * Side Public License, v 1. */ -import type { AppDeepLink } from '@kbn/core/public'; import type { DiscoverStateContainer } from '../application/main/services/discover_state'; import type { DiscoverCustomizationService } from './customization_service'; -export type DiscoverProfileId = string; - -export interface DiscoverProfile { - id: DiscoverProfileId; - customizationCallbacks: CustomizationCallback[]; - deepLinks?: AppDeepLink[]; -} - export interface CustomizationCallbackContext { customizations: DiscoverCustomizationService; stateContainer: DiscoverStateContainer; } -export interface DiscoverProfileOptions { - customize: CustomizationCallback; - deepLinks?: AppDeepLink[]; -} - -export type RegisterCustomizationProfile = ( - id: DiscoverProfileId, - options: DiscoverProfileOptions -) => void; - export type CustomizationCallback = ( options: CustomizationCallbackContext ) => void | (() => void) | Promise void)>; diff --git a/src/plugins/discover/public/index.ts b/src/plugins/discover/public/index.ts index b21a76fe9e596..b25e4a25decf0 100644 --- a/src/plugins/discover/public/index.ts +++ b/src/plugins/discover/public/index.ts @@ -21,9 +21,6 @@ export type { DataDocumentsMsg } from './application/main/services/discover_data export type { DiscoverContainerProps } from './components/discover_container'; export type { CustomizationCallback, - DiscoverProfileId, - DiscoverProfileOptions, - RegisterCustomizationProfile, DiscoverCustomization, DiscoverCustomizationService, FlyoutCustomization, diff --git a/src/plugins/discover/public/mocks.tsx b/src/plugins/discover/public/mocks.tsx index c218a56531b25..89dd00e7d591d 100644 --- a/src/plugins/discover/public/mocks.tsx +++ b/src/plugins/discover/public/mocks.tsx @@ -26,7 +26,6 @@ const createStartContract = (): Start => { const startContract: Start = { locator: sharePluginMock.createLocator(), DiscoverContainer: jest.fn().mockImplementation(() => <>), - registerCustomizationProfile: jest.fn(), }; return startContract; }; diff --git a/src/plugins/discover/public/plugin.tsx b/src/plugins/discover/public/plugin.tsx index f1f7dee81abd5..f3396663b8763 100644 --- a/src/plugins/discover/public/plugin.tsx +++ b/src/plugins/discover/public/plugin.tsx @@ -7,7 +7,7 @@ */ import React, { ComponentType } from 'react'; -import { BehaviorSubject, combineLatest, map } from 'rxjs'; +import { BehaviorSubject } from 'rxjs'; import { AppMountParameters, AppUpdater, @@ -66,11 +66,7 @@ import { DiscoverAppLocatorDefinition, DiscoverESQLLocatorDefinition, } from '../common'; -import type { DiscoverCustomizationContext, RegisterCustomizationProfile } from './customizations'; -import { - createRegisterCustomizationProfile, - createProfileRegistry, -} from './customizations/profile_registry'; +import type { DiscoverCustomizationContext } from './customizations'; import { SEARCH_EMBEDDABLE_CELL_ACTIONS_TRIGGER } from './embeddable/constants'; import { DiscoverContainerInternal, @@ -153,7 +149,6 @@ export interface DiscoverStart { */ readonly locator: undefined | DiscoverAppLocator; readonly DiscoverContainer: ComponentType; - readonly registerCustomizationProfile: RegisterCustomizationProfile; } /** @@ -218,7 +213,6 @@ export class DiscoverPlugin private scopedHistory?: ScopedHistory; private urlTracker?: UrlTracker; private stopUrlTracking: (() => void) | undefined = undefined; - private profileRegistry = createProfileRegistry(); private locator?: DiscoverAppLocator; private contextLocator?: DiscoverContextAppLocator; private singleDocLocator?: DiscoverSingleDocLocator; @@ -239,7 +233,6 @@ export class DiscoverPlugin if (plugins.share) { const useHash = core.uiSettings.get('state:storeInSessionStorage'); - // Create locators for external use without profile-awareness this.locator = plugins.share.url.locators.create( new DiscoverAppLocatorDefinition({ useHash, setStateToKbnUrl }) ); @@ -290,23 +283,10 @@ export class DiscoverPlugin this.urlTracker = { setTrackedUrl, restorePreviousUrl, setTrackingEnabled }; this.stopUrlTracking = stopUrlTracker; - const appStateUpdater$ = combineLatest([ - this.appStateUpdater, - this.profileRegistry.getContributedAppState$(), - ]).pipe( - map( - ([urlAppStateUpdater, profileAppStateUpdater]): AppUpdater => - (app) => ({ - ...urlAppStateUpdater(app), - ...profileAppStateUpdater(app), - }) - ) - ); - core.application.register({ id: PLUGIN_ID, title: 'Discover', - updater$: appStateUpdater$, + updater$: this.appStateUpdater, order: 1000, euiIconType: 'logoKibana', defaultPath: '#/', @@ -327,19 +307,13 @@ export class DiscoverPlugin window.dispatchEvent(new HashChangeEvent('hashchange')); }); - const { locator, contextLocator, singleDocLocator } = await this.getProfileAwareLocators({ - locator: this.locator!, - contextLocator: this.contextLocator!, - singleDocLocator: this.singleDocLocator!, - }); - const services = buildServices({ core: coreStart, plugins: discoverStartPlugins, context: this.initializerContext, - locator, - contextLocator, - singleDocLocator, + locator: this.locator!, + contextLocator: this.contextLocator!, + singleDocLocator: this.singleDocLocator!, history: this.historyService.getHistory(), scopedHistory: this.scopedHistory, urlTracker: this.urlTracker!, @@ -357,7 +331,6 @@ export class DiscoverPlugin const unmount = renderApp({ element: params.element, services, - profileRegistry: this.profileRegistry, customizationContext: { displayMode: 'standalone', inlineTopNav: this.inlineTopNav, @@ -422,10 +395,7 @@ export class DiscoverPlugin plugins.uiActions.registerTrigger(SEARCH_EMBEDDABLE_CELL_ACTIONS_TRIGGER); injectTruncateStyles(core.uiSettings.get(TRUNCATE_MAX_HEIGHT)); - const getDiscoverServicesInternal = () => { - return this.getDiscoverServices(core, plugins); - }; - + const getDiscoverServicesInternal = () => this.getDiscoverServices(core, plugins); const isEsqlEnabled = core.uiSettings.get(ENABLE_ESQL); if (plugins.share && this.locator && isEsqlEnabled) { @@ -442,7 +412,6 @@ export class DiscoverPlugin DiscoverContainer: (props: DiscoverContainerProps) => ( ), - registerCustomizationProfile: createRegisterCustomizationProfile(this.profileRegistry), }; } @@ -452,47 +421,19 @@ export class DiscoverPlugin } } - private getDiscoverServices = async (core: CoreStart, plugins: DiscoverStartPlugins) => { - const { locator, contextLocator, singleDocLocator } = await this.getProfileAwareLocators({ - locator: this.locator!, - contextLocator: this.contextLocator!, - singleDocLocator: this.singleDocLocator!, - }); - + private getDiscoverServices = (core: CoreStart, plugins: DiscoverStartPlugins) => { return buildServices({ core, plugins, context: this.initializerContext, - locator, - contextLocator, - singleDocLocator, + locator: this.locator!, + contextLocator: this.contextLocator!, + singleDocLocator: this.singleDocLocator!, history: this.historyService.getHistory(), urlTracker: this.urlTracker!, }); }; - /** - * Create profile-aware locators for internal use - */ - private async getProfileAwareLocators({ - locator, - contextLocator, - singleDocLocator, - }: { - locator: DiscoverAppLocator; - contextLocator: DiscoverContextAppLocator; - singleDocLocator: DiscoverSingleDocLocator; - }) { - const { ProfileAwareLocator } = await import('./customizations/profile_aware_locator'); - const history = this.historyService.getHistory(); - - return { - locator: new ProfileAwareLocator(locator, history), - contextLocator: new ProfileAwareLocator(contextLocator, history), - singleDocLocator: new ProfileAwareLocator(singleDocLocator, history), - }; - } - private registerEmbeddable(core: CoreSetup, plugins: DiscoverSetupPlugins) { const getStartServices = async () => { const [coreStart, deps] = await core.getStartServices(); diff --git a/src/plugins/discover/public/utils/breadcrumbs.test.ts b/src/plugins/discover/public/utils/breadcrumbs.test.ts index 22c87cd4b50a1..3bd8d04957b2a 100644 --- a/src/plugins/discover/public/utils/breadcrumbs.test.ts +++ b/src/plugins/discover/public/utils/breadcrumbs.test.ts @@ -8,8 +8,6 @@ import { createDiscoverServicesMock } from '../__mocks__/services'; import { setBreadcrumbs } from './breadcrumbs'; -import { createMemoryHistory } from 'history'; -import type { HistoryLocationState } from '../build_services'; describe('Breadcrumbs', () => { const discoverServiceMock = createDiscoverServicesMock(); @@ -41,20 +39,4 @@ describe('Breadcrumbs', () => { { text: 'Saved Search' }, ]); }); - - test('should set breadcrumbs with profile root path', () => { - const history = createMemoryHistory({}); - history.push('/p/my-profile'); - setBreadcrumbs({ - services: { - ...discoverServiceMock, - history, - }, - titleBreadcrumbText: 'Saved Search', - }); - expect(discoverServiceMock.chrome.setBreadcrumbs).toHaveBeenCalledWith([ - { text: 'Discover', href: '#/p/my-profile/', deepLinkId: 'discover' }, - { text: 'Saved Search' }, - ]); - }); }); diff --git a/src/plugins/discover/public/utils/breadcrumbs.ts b/src/plugins/discover/public/utils/breadcrumbs.ts index c260077e24f9f..8dec61cd91522 100644 --- a/src/plugins/discover/public/utils/breadcrumbs.ts +++ b/src/plugins/discover/public/utils/breadcrumbs.ts @@ -8,30 +8,18 @@ import { i18n } from '@kbn/i18n'; import type { ChromeBreadcrumb } from '@kbn/core-chrome-browser'; -import { addProfile, getProfile } from '../../common/customizations'; import type { DiscoverServices } from '../build_services'; const rootPath = '#/'; -const getRootPath = ({ history }: DiscoverServices) => { - const { profile } = getProfile(history.location.pathname); - return profile ? addProfile(rootPath, profile) : rootPath; -}; - -function getRootBreadcrumbs({ - breadcrumb, - services, -}: { - breadcrumb?: string; - services: DiscoverServices; -}): ChromeBreadcrumb[] { +function getRootBreadcrumbs({ breadcrumb }: { breadcrumb?: string }): ChromeBreadcrumb[] { return [ { text: i18n.translate('discover.rootBreadcrumb', { defaultMessage: 'Discover', }), deepLinkId: 'discover', - href: breadcrumb || getRootPath(services), + href: breadcrumb || rootPath, }, ]; } @@ -51,7 +39,6 @@ export function setBreadcrumbs({ }) { const rootBreadcrumbs = getRootBreadcrumbs({ breadcrumb: rootBreadcrumbPath, - services, }); const discoverBreadcrumbsTitle = i18n.translate('discover.discoverBreadcrumbTitle', { defaultMessage: 'Discover', diff --git a/src/plugins/discover/tsconfig.json b/src/plugins/discover/tsconfig.json index 4e6213e745796..b10dee36e3fb7 100644 --- a/src/plugins/discover/tsconfig.json +++ b/src/plugins/discover/tsconfig.json @@ -57,7 +57,6 @@ "@kbn/dom-drag-drop", "@kbn/ebt-tools", "@kbn/unified-field-list", - "@kbn/core-saved-objects-api-server", "@kbn/cell-actions", "@kbn/shared-ux-utility", "@kbn/core-saved-objects-server", diff --git a/test/examples/discover_customization_examples/customizations.ts b/test/examples/discover_customization_examples/customizations.ts index 6d0d223a06cfe..d5777701de1fc 100644 --- a/test/examples/discover_customization_examples/customizations.ts +++ b/test/examples/discover_customization_examples/customizations.ts @@ -71,6 +71,8 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => { expect(title).to.eql(expected.title); expect(description).to.eql(expected.description); }); + await browser.goBack(); + await PageObjects.header.waitUntilLoadingHasFinished(); }); it('Search bar Prepend Filters exists and should apply filter properly', async () => { diff --git a/x-pack/test_serverless/functional/test_suites/common/examples/discover_customization_examples/customizations.ts b/x-pack/test_serverless/functional/test_suites/common/examples/discover_customization_examples/customizations.ts index 08e59867c8aac..59a0349c79580 100644 --- a/x-pack/test_serverless/functional/test_suites/common/examples/discover_customization_examples/customizations.ts +++ b/x-pack/test_serverless/functional/test_suites/common/examples/discover_customization_examples/customizations.ts @@ -70,6 +70,8 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => { expect(title).to.eql(expected.title); expect(description).to.eql(expected.description); }); + await browser.goBack(); + await PageObjects.header.waitUntilLoadingHasFinished(); }); it('Search bar Prepend Filters exists and should apply filter properly', async () => { From 3def76dab85eb10b1fd1f261e9ac73fbbb2464dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Tue, 23 Apr 2024 17:43:49 +0200 Subject: [PATCH 080/183] [Obs AI Assistant] Add form validation to new kb entry (#181379) The name and content are required when submitting a KB entry. This PR adds validation to ensure both are filled out image --- ...nowledge_base_edit_manual_entry_flyout.tsx | 9 ++++++- .../components/knowledge_base_tab.test.tsx | 24 +++++++++++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_edit_manual_entry_flyout.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_edit_manual_entry_flyout.tsx index 675b46bd3ba86..102fda79af72b 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_edit_manual_entry_flyout.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_edit_manual_entry_flyout.tsx @@ -45,6 +45,10 @@ export function KnowledgeBaseEditManualEntryFlyout({ const [newEntryId, setNewEntryId] = useState(entry?.id ?? ''); const [newEntryText, setNewEntryText] = useState(entry?.text ?? ''); + const isEntryIdInvalid = newEntryId.trim() === ''; + const isEntryTextInvalid = newEntryText.trim() === ''; + const isFormInvalid = isEntryIdInvalid || isEntryTextInvalid; + const handleSubmitNewEntryClick = async () => { createEntry({ entry: { @@ -92,10 +96,11 @@ export function KnowledgeBaseEditManualEntryFlyout({ )} > setNewEntryId(e.target.value)} + isInvalid={isEntryIdInvalid} /> ) : ( @@ -136,6 +141,7 @@ export function KnowledgeBaseEditManualEntryFlyout({ )} > {i18n.translate( 'xpack.observabilityAiAssistantManagement.knowledgeBaseNewManualEntryFlyout.saveButtonLabel', diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_tab.test.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_tab.test.tsx index 9a675ed37b89e..fcf6da4598cf7 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_tab.test.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_management/public/routes/components/knowledge_base_tab.test.tsx @@ -71,15 +71,31 @@ describe('KnowledgeBaseTab', () => { fireEvent.click(getByTestId('knowledgeBaseSingleEntryContextMenuItem')); - fireEvent.click(getByTestId('knowledgeBaseEditManualEntryFlyoutFieldText')); - - fireEvent.change(getByTestId('knowledgeBaseEditManualEntryFlyoutFieldText'), { + fireEvent.change(getByTestId('knowledgeBaseEditManualEntryFlyoutIdInput'), { target: { value: 'foo' }, }); + fireEvent.change(getByTestId('euiMarkdownEditorTextArea'), { + target: { value: 'bar' }, + }); + getByTestId('knowledgeBaseEditManualEntryFlyoutSaveButton').click(); - expect(createMock).toHaveBeenCalledWith({ entry: { id: 'foo', text: '' } }); + expect(createMock).toHaveBeenCalledWith({ entry: { id: 'foo', text: 'bar' } }); + }); + + it('should require an id', () => { + const { getByTestId } = render(); + + fireEvent.click(getByTestId('knowledgeBaseNewEntryButton')); + + fireEvent.click(getByTestId('knowledgeBaseSingleEntryContextMenuItem')); + + fireEvent.change(getByTestId('knowledgeBaseEditManualEntryFlyoutIdInput'), { + target: { value: 'foo' }, + }); + + expect(getByTestId('knowledgeBaseEditManualEntryFlyoutSaveButton')).toBeDisabled(); }); }); From 2ea506e30b724b052fdf61a4a1e092b967e13672 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 10:56:45 -0500 Subject: [PATCH 081/183] Update babel (main) (#181248) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@babel/cli](https://babel.dev/docs/en/next/babel-cli) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-cli)) | [`^7.23.9` -> `^7.24.1`](https://renovatebot.com/diffs/npm/@babel%2fcli/7.23.9/7.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fcli/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fcli/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fcli/7.23.9/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fcli/7.23.9/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/core](https://babel.dev/docs/en/next/babel-core) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-core)) | [`^7.24.0` -> `^7.24.4`](https://renovatebot.com/diffs/npm/@babel%2fcore/7.24.0/7.24.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fcore/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fcore/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fcore/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fcore/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/eslint-parser](https://babel.dev/) ([source](https://togithub.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser)) | [`^7.23.10` -> `^7.24.1`](https://renovatebot.com/diffs/npm/@babel%2feslint-parser/7.23.10/7.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2feslint-parser/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2feslint-parser/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2feslint-parser/7.23.10/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2feslint-parser/7.23.10/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/generator](https://babel.dev/docs/en/next/babel-generator) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-generator)) | [`^7.23.6` -> `^7.24.4`](https://renovatebot.com/diffs/npm/@babel%2fgenerator/7.23.6/7.24.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fgenerator/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fgenerator/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fgenerator/7.23.6/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fgenerator/7.23.6/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/parser](https://babel.dev/docs/en/next/babel-parser) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-parser)) | [`^7.24.0` -> `^7.24.4`](https://renovatebot.com/diffs/npm/@babel%2fparser/7.24.0/7.24.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fparser/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fparser/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fparser/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fparser/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/plugin-transform-class-properties](https://babel.dev/docs/en/next/babel-plugin-transform-class-properties) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-properties)) | [`^7.23.3` -> `^7.24.1`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-class-properties/7.23.3/7.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fplugin-transform-class-properties/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fplugin-transform-class-properties/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fplugin-transform-class-properties/7.23.3/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fplugin-transform-class-properties/7.23.3/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/plugin-transform-numeric-separator](https://babel.dev/docs/en/next/babel-plugin-transform-numeric-separator) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-numeric-separator)) | [`^7.23.4` -> `^7.24.1`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-numeric-separator/7.23.4/7.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fplugin-transform-numeric-separator/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fplugin-transform-numeric-separator/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fplugin-transform-numeric-separator/7.23.4/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fplugin-transform-numeric-separator/7.23.4/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/plugin-transform-runtime](https://babel.dev/docs/en/next/babel-plugin-transform-runtime) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime)) | [`^7.24.0` -> `^7.24.3`](https://renovatebot.com/diffs/npm/@babel%2fplugin-transform-runtime/7.24.0/7.24.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fplugin-transform-runtime/7.24.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fplugin-transform-runtime/7.24.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fplugin-transform-runtime/7.24.0/7.24.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fplugin-transform-runtime/7.24.0/7.24.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/preset-env](https://babel.dev/docs/en/next/babel-preset-env) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-preset-env)) | [`^7.24.0` -> `^7.24.4`](https://renovatebot.com/diffs/npm/@babel%2fpreset-env/7.24.0/7.24.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fpreset-env/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fpreset-env/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fpreset-env/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fpreset-env/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/preset-react](https://babel.dev/docs/en/next/babel-preset-react) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-preset-react)) | [`^7.23.3` -> `^7.24.1`](https://renovatebot.com/diffs/npm/@babel%2fpreset-react/7.23.3/7.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fpreset-react/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fpreset-react/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fpreset-react/7.23.3/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fpreset-react/7.23.3/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/preset-typescript](https://babel.dev/docs/en/next/babel-preset-typescript) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-preset-typescript)) | [`^7.23.3` -> `^7.24.1`](https://renovatebot.com/diffs/npm/@babel%2fpreset-typescript/7.23.3/7.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fpreset-typescript/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fpreset-typescript/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fpreset-typescript/7.23.3/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fpreset-typescript/7.23.3/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/runtime](https://babel.dev/docs/en/next/babel-runtime) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-runtime)) | [`^7.24.0` -> `^7.24.4`](https://renovatebot.com/diffs/npm/@babel%2fruntime/7.24.0/7.24.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fruntime/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fruntime/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fruntime/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fruntime/7.24.0/7.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/traverse](https://babel.dev/docs/en/next/babel-traverse) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-traverse)) | [`^7.24.0` -> `^7.24.1`](https://renovatebot.com/diffs/npm/@babel%2ftraverse/7.24.0/7.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2ftraverse/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2ftraverse/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2ftraverse/7.24.0/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2ftraverse/7.24.0/7.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@babel/types](https://babel.dev/docs/en/next/babel-types) ([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-types)) | [`7.21.2` -> `7.24.0`](https://renovatebot.com/diffs/npm/@babel%2ftypes/7.21.2/7.24.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2ftypes/7.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2ftypes/7.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2ftypes/7.21.2/7.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2ftypes/7.21.2/7.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    babel/babel (@​babel/cli) ### [`v7.24.1`](https://togithub.com/babel/babel/blob/HEAD/CHANGELOG.md#v7241-2024-03-19) [Compare Source](https://togithub.com/babel/babel/compare/v7.23.9...v7.24.1) ##### :bug: Bug Fix - `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators` - [#​16350](https://togithub.com/babel/babel/pull/16350) Fix decorated class computed keys ordering ([@​JLHwung](https://togithub.com/JLHwung)) - [#​16344](https://togithub.com/babel/babel/pull/16344) Fix decorated class static field private access ([@​JLHwung](https://togithub.com/JLHwung)) - `babel-plugin-proposal-decorators`, `babel-plugin-proposal-json-modules`, `babel-plugin-transform-async-generator-functions`, `babel-plugin-transform-regenerator`, `babel-plugin-transform-runtime`, `babel-preset-env` - [#​16329](https://togithub.com/babel/babel/pull/16329) Respect `moduleName` for `@babel/runtime/regenerator` imports ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-transform-class-properties` - [#​16331](https://togithub.com/babel/babel/pull/16331) Fix decorator memoiser binding kind ([@​JLHwung](https://togithub.com/JLHwung)) - `babel-helper-create-class-features-plugin`, `babel-helper-replace-supers`, `babel-plugin-proposal-decorators`, `babel-plugin-transform-class-properties` - [#​16325](https://togithub.com/babel/babel/pull/16325) Fix decorator evaluation private environment ([@​JLHwung](https://togithub.com/JLHwung)) ##### :memo: Documentation - [#​16319](https://togithub.com/babel/babel/pull/16319) Update SECURITY.md ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) ##### :house: Internal - `babel-code-frame`, `babel-highlight` - [#​16359](https://togithub.com/babel/babel/pull/16359) Replace `chalk` with `picocolors` ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-helper-fixtures`, `babel-helpers`, `babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-transform-unicode-sets-regex`, `babel-preset-env`, `babel-preset-flow` - [#​16352](https://togithub.com/babel/babel/pull/16352) Run Babel transform tests on old node if possible ([@​JLHwung](https://togithub.com/JLHwung)) - `babel-helpers`, `babel-plugin-transform-async-generator-functions`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-class-static-block`, `babel-plugin-transform-modules-commonjs`, `babel-plugin-transform-modules-systemjs`, `babel-plugin-transform-regenerator`, `babel-plugin-transform-runtime`, `babel-preset-env`, `babel-runtime-corejs3`, `babel-runtime`, `babel-standalone` - [#​16323](https://togithub.com/babel/babel/pull/16323) Allow separate helpers to be excluded in Babel 8 ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-helper-module-imports`, `babel-plugin-proposal-import-wasm-source`, `babel-plugin-proposal-json-modules`, `babel-plugin-proposal-record-and-tuple`, `babel-plugin-transform-react-jsx-development`, `babel-plugin-transform-react-jsx` - [#​16349](https://togithub.com/babel/babel/pull/16349) Support merging imports in import injector ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-helper-create-class-features-plugin`, `babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression`, `babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining`, `babel-plugin-bugfix-v8-static-class-fields-redefine-readonly`, `babel-plugin-external-helpers`, `babel-plugin-proposal-async-do-expressions`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-destructuring-private`, `babel-plugin-proposal-do-expressions`, `babel-plugin-proposal-duplicate-named-capturing-groups-regex`, `babel-plugin-proposal-explicit-resource-management`, `babel-plugin-proposal-export-default-from`, `babel-plugin-proposal-function-bind`, `babel-plugin-proposal-function-sent`, `babel-plugin-proposal-import-attributes-to-assertions`, `babel-plugin-proposal-import-defer`, `babel-plugin-proposal-import-wasm-source`, `babel-plugin-proposal-json-modules`, `babel-plugin-proposal-optional-chaining-assign`, `babel-plugin-proposal-partial-application`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-proposal-record-and-tuple`, `babel-plugin-proposal-regexp-modifiers`, `babel-plugin-proposal-throw-expressions`, `babel-plugin-syntax-async-do-expressions`, `babel-plugin-syntax-decimal`, `babel-plugin-syntax-decorators`, `babel-plugin-syntax-destructuring-private`, `babel-plugin-syntax-do-expressions`, `babel-plugin-syntax-explicit-resource-management`, `babel-plugin-syntax-export-default-from`, `babel-plugin-syntax-flow`, `babel-plugin-syntax-function-bind`, `babel-plugin-syntax-function-sent`, `babel-plugin-syntax-import-assertions`, `babel-plugin-syntax-import-attributes`, `babel-plugin-syntax-import-defer`, `babel-plugin-syntax-import-reflection`, `babel-plugin-syntax-import-source`, `babel-plugin-syntax-jsx`, `babel-plugin-syntax-module-blocks`, `babel-plugin-syntax-optional-chaining-assign`, `babel-plugin-syntax-partial-application`, `babel-plugin-syntax-pipeline-operator`, `babel-plugin-syntax-record-and-tuple`, `babel-plugin-syntax-throw-expressions`, `babel-plugin-syntax-typescript`, `babel-plugin-transform-arrow-functions`, `babel-plugin-transform-async-generator-functions`, `babel-plugin-transform-async-to-generator`, `babel-plugin-transform-block-scoped-functions`, `babel-plugin-transform-block-scoping`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-class-static-block`, `babel-plugin-transform-classes`, `babel-plugin-transform-computed-properties`, `babel-plugin-transform-destructuring`, `babel-plugin-transform-dotall-regex`, `babel-plugin-transform-duplicate-keys`, `babel-plugin-transform-dynamic-import`, `babel-plugin-transform-exponentiation-operator`, `babel-plugin-transform-export-namespace-from`, `babel-plugin-transform-flow-comments`, `babel-plugin-transform-flow-strip-types`, `babel-plugin-transform-for-of`, `babel-plugin-transform-function-name`, `babel-plugin-transform-instanceof`, `babel-plugin-transform-jscript`, `babel-plugin-transform-json-strings`, `babel-plugin-transform-literals`, `babel-plugin-transform-logical-assignment-operators`, `babel-plugin-transform-member-expression-literals`, `babel-plugin-transform-modules-amd`, `babel-plugin-transform-modules-commonjs`, `babel-plugin-transform-modules-systemjs`, `babel-plugin-transform-modules-umd`, `babel-plugin-transform-new-target`, `babel-plugin-transform-nullish-coalescing-operator`, `babel-plugin-transform-numeric-separator`, `babel-plugin-transform-object-assign`, `babel-plugin-transform-object-rest-spread`, `babel-plugin-transform-object-set-prototype-of-to-assign`, `babel-plugin-transform-object-super`, `babel-plugin-transform-optional-catch-binding`, `babel-plugin-transform-optional-chaining`, `babel-plugin-transform-parameters`, `babel-plugin-transform-private-methods`, `babel-plugin-transform-private-property-in-object`, `babel-plugin-transform-property-literals`, `babel-plugin-transform-property-mutators`, `babel-plugin-transform-proto-to-assign`, `babel-plugin-transform-react-constant-elements`, `babel-plugin-transform-react-display-name`, `babel-plugin-transform-react-inline-elements`, `babel-plugin-transform-react-jsx-compat`, `babel-plugin-transform-react-jsx-self`, `babel-plugin-transform-react-jsx-source`, `babel-plugin-transform-react-pure-annotations`, `babel-plugin-transform-regenerator`, `babel-plugin-transform-reserved-words`, `babel-plugin-transform-runtime`, `babel-plugin-transform-shorthand-properties`, `babel-plugin-transform-spread`, `babel-plugin-transform-sticky-regex`, `babel-plugin-transform-strict-mode`, `babel-plugin-transform-template-literals`, `babel-plugin-transform-typeof-symbol`, `babel-plugin-transform-typescript`, `babel-plugin-transform-unicode-escapes`, `babel-plugin-transform-unicode-property-regex`, `babel-plugin-transform-unicode-regex`, `babel-plugin-transform-unicode-sets-regex`, `babel-preset-env`, `babel-preset-flow`, `babel-preset-react`, `babel-preset-typescript` - [#​16332](https://togithub.com/babel/babel/pull/16332) Test Babel 7 plugins compatibility with Babel 8 core ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-compat-data`, `babel-plugin-transform-object-rest-spread`, `babel-preset-env` - [#​16318](https://togithub.com/babel/babel/pull/16318) \[babel 8] Fix `@babel/compat-data` package.json ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) ##### :microscope: Output optimization - `babel-helper-replace-supers`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes`, `babel-plugin-transform-parameters`, `babel-plugin-transform-runtime` - [#​16345](https://togithub.com/babel/babel/pull/16345) Optimize the use of `assertThisInitialized` after `super()` ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes` - [#​16343](https://togithub.com/babel/babel/pull/16343) Use simpler `assertThisInitialized` more often ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-plugin-proposal-decorators`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-object-rest-spread`, `babel-traverse` - [#​16342](https://togithub.com/babel/babel/pull/16342) Consider well-known and registered symbols as literals ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-core`, `babel-plugin-external-helpers`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-function-bind`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes`, `babel-plugin-transform-flow-comments`, `babel-plugin-transform-flow-strip-types`, `babel-plugin-transform-function-name`, `babel-plugin-transform-modules-systemjs`, `babel-plugin-transform-parameters`, `babel-plugin-transform-private-property-in-object`, `babel-plugin-transform-react-jsx`, `babel-plugin-transform-runtime`, `babel-plugin-transform-spread`, `babel-plugin-transform-typescript`, `babel-preset-env` - [#​16326](https://togithub.com/babel/babel/pull/16326) Reduce the use of class names ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu))
    babel/babel (@​babel/eslint-parser) ### [`v7.24.1`](https://togithub.com/babel/babel/compare/v7.23.10...v7.24.1) [Compare Source](https://togithub.com/babel/babel/compare/v7.23.10...v7.24.1)
    babel/babel (@​babel/parser) ### [`v7.24.4`](https://togithub.com/babel/babel/releases/tag/v7.24.4) [Compare Source](https://togithub.com/babel/babel/compare/v7.24.1...v7.24.4) #### v7.24.4 (2024-04-03) Thanks [@​Dunqing](https://togithub.com/Dunqing), [@​luiscubal](https://togithub.com/luiscubal), and [@​samualtnorman](https://togithub.com/samualtnorman) for your first PRs! ##### :eyeglasses: Spec Compliance - `babel-parser` - [#​16403](https://togithub.com/babel/babel/pull/16403) Forbid initializerless using ([@​JLHwung](https://togithub.com/JLHwung)) - `babel-helpers`, `babel-plugin-proposal-decorators`, `babel-runtime-corejs3` - [#​16388](https://togithub.com/babel/babel/pull/16388) Ensure decorators are callable ([@​JLHwung](https://togithub.com/JLHwung)) ##### :bug: Bug Fix - `babel-generator` - [#​16402](https://togithub.com/babel/babel/pull/16402) fix: Correctly prints `{ [key in Bar]? }` ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - [#​16394](https://togithub.com/babel/babel/pull/16394) fix: Correctly generate `TSMappedType` ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-compat-data`, `babel-plugin-bugfix-firefox-class-in-computed-class-key`, `babel-preset-env` - [#​16390](https://togithub.com/babel/babel/pull/16390) Create bugfix plugin for classes in computed keys in Firefox ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators` - [#​16387](https://togithub.com/babel/babel/pull/16387) fix: support mutated outer decorated class binding ([@​JLHwung](https://togithub.com/JLHwung)) - [#​16385](https://togithub.com/babel/babel/pull/16385) fix: Decorators when `super()` exists and `protoInit` is not needed ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-plugin-transform-block-scoping` - [#​16384](https://togithub.com/babel/babel/pull/16384) fix: Transform scoping for `for X` in loop ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - [#​16368](https://togithub.com/babel/babel/pull/16368) fix: Capture `let` when the `for` body is not a block ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-core`, `babel-plugin-transform-block-scoped-functions`, `babel-plugin-transform-block-scoping` - [#​16363](https://togithub.com/babel/babel/pull/16363) Fix incorrect function hoisting in some case statements ([@​luiscubal](https://togithub.com/luiscubal)) ##### Committers: 7 - Babel Bot ([@​babel-bot](https://togithub.com/babel-bot)) - Dunqing ([@​Dunqing](https://togithub.com/Dunqing)) - Huáng Jùnliàng ([@​JLHwung](https://togithub.com/JLHwung)) - Luís Reis ([@​luiscubal](https://togithub.com/luiscubal)) - Nicolò Ribaudo ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - Samual Norman ([@​samualtnorman](https://togithub.com/samualtnorman)) - [@​liuxingbaoyu](https://togithub.com/liuxingbaoyu) ### [`v7.24.1`](https://togithub.com/babel/babel/releases/tag/v7.24.1) [Compare Source](https://togithub.com/babel/babel/compare/v7.24.0...v7.24.1) #### v7.24.1 (2024-03-19) ##### :bug: Bug Fix - `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators` - [#​16350](https://togithub.com/babel/babel/pull/16350) Fix decorated class computed keys ordering ([@​JLHwung](https://togithub.com/JLHwung)) - [#​16344](https://togithub.com/babel/babel/pull/16344) Fix decorated class static field private access ([@​JLHwung](https://togithub.com/JLHwung)) - `babel-plugin-proposal-decorators`, `babel-plugin-proposal-json-modules`, `babel-plugin-transform-async-generator-functions`, `babel-plugin-transform-regenerator`, `babel-plugin-transform-runtime`, `babel-preset-env` - [#​16329](https://togithub.com/babel/babel/pull/16329) Respect `moduleName` for `@babel/runtime/regenerator` imports ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-transform-class-properties` - [#​16331](https://togithub.com/babel/babel/pull/16331) Fix decorator memoiser binding kind ([@​JLHwung](https://togithub.com/JLHwung)) - `babel-helper-create-class-features-plugin`, `babel-helper-replace-supers`, `babel-plugin-proposal-decorators`, `babel-plugin-transform-class-properties` - [#​16325](https://togithub.com/babel/babel/pull/16325) Fix decorator evaluation private environment ([@​JLHwung](https://togithub.com/JLHwung)) ##### :memo: Documentation - [#​16319](https://togithub.com/babel/babel/pull/16319) Update SECURITY.md ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) ##### :house: Internal - `babel-code-frame`, `babel-highlight` - [#​16359](https://togithub.com/babel/babel/pull/16359) Replace `chalk` with `picocolors` ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-helper-fixtures`, `babel-helpers`, `babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression`, `babel-plugin-proposal-pipeline-operator`, `babel-plugin-transform-unicode-sets-regex`, `babel-preset-env`, `babel-preset-flow` - [#​16352](https://togithub.com/babel/babel/pull/16352) Run Babel transform tests on old node if possible ([@​JLHwung](https://togithub.com/JLHwung)) - `babel-helper-module-imports`, `babel-plugin-proposal-import-wasm-source`, `babel-plugin-proposal-json-modules`, `babel-plugin-proposal-record-and-tuple`, `babel-plugin-transform-react-jsx-development`, `babel-plugin-transform-react-jsx` - [#​16349](https://togithub.com/babel/babel/pull/16349) Support merging imports in import injector ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - Other - [#​16332](https://togithub.com/babel/babel/pull/16332) Test Babel 7 plugins compatibility with Babel 8 core ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) ##### :microscope: Output optimization - `babel-helper-replace-supers`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes`, `babel-plugin-transform-parameters`, `babel-plugin-transform-runtime` - [#​16345](https://togithub.com/babel/babel/pull/16345) Optimize the use of `assertThisInitialized` after `super()` ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes` - [#​16343](https://togithub.com/babel/babel/pull/16343) Use simpler `assertThisInitialized` more often ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) - `babel-plugin-proposal-decorators`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-object-rest-spread`, `babel-traverse` - [#​16342](https://togithub.com/babel/babel/pull/16342) Consider well-known and registered symbols as literals ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - `babel-core`, `babel-plugin-external-helpers`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-function-bind`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-classes`, `babel-plugin-transform-flow-comments`, `babel-plugin-transform-flow-strip-types`, `babel-plugin-transform-function-name`, `babel-plugin-transform-modules-systemjs`, `babel-plugin-transform-parameters`, `babel-plugin-transform-private-property-in-object`, `babel-plugin-transform-react-jsx`, `babel-plugin-transform-runtime`, `babel-plugin-transform-spread`, `babel-plugin-transform-typescript`, `babel-preset-env` - [#​16326](https://togithub.com/babel/babel/pull/16326) Reduce the use of class names ([@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)) ##### Committers: 4 - Babel Bot ([@​babel-bot](https://togithub.com/babel-bot)) - Huáng Jùnliàng ([@​JLHwung](https://togithub.com/JLHwung)) - Nicolò Ribaudo ([@​nicolo-ribaudo](https://togithub.com/nicolo-ribaudo)) - [@​liuxingbaoyu](https://togithub.com/liuxingbaoyu)
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/elastic/kibana). --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jonathan Budzenski --- package.json | 26 +- yarn.lock | 1008 +++++++++++++++++++++++++------------------------- 2 files changed, 516 insertions(+), 518 deletions(-) diff --git a/package.json b/package.json index 06040e5681c0b..fd15d8a4ce34a 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ }, "dependencies": { "@appland/sql-parser": "^1.5.1", - "@babel/runtime": "^7.24.0", + "@babel/runtime": "^7.24.4", "@cfworker/json-schema": "^1.12.7", "@dnd-kit/core": "^3.1.1", "@dnd-kit/sortable": "^4.0.0", @@ -1172,27 +1172,27 @@ }, "devDependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@babel/cli": "^7.23.9", - "@babel/core": "^7.24.0", - "@babel/eslint-parser": "^7.23.10", + "@babel/cli": "^7.24.1", + "@babel/core": "^7.24.4", + "@babel/eslint-parser": "^7.24.1", "@babel/eslint-plugin": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/generator": "^7.24.4", "@babel/helper-plugin-utils": "^7.24.0", - "@babel/parser": "^7.24.0", + "@babel/parser": "^7.24.4", "@babel/plugin-proposal-decorators": "^7.24.1", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-runtime": "^7.24.0", - "@babel/preset-env": "^7.24.0", - "@babel/preset-react": "^7.23.3", - "@babel/preset-typescript": "^7.23.3", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-runtime": "^7.24.3", + "@babel/preset-env": "^7.24.4", + "@babel/preset-react": "^7.24.1", + "@babel/preset-typescript": "^7.24.1", "@babel/register": "^7.23.7", - "@babel/traverse": "^7.24.0", + "@babel/traverse": "^7.24.1", "@babel/types": "7.21.2", "@bazel/ibazel": "^0.16.2", "@bazel/typescript": "4.6.2", diff --git a/yarn.lock b/yarn.lock index 8cc252b3258d0..47b6a266bd734 100644 --- a/yarn.lock +++ b/yarn.lock @@ -125,12 +125,12 @@ dependencies: tslib "^2.3.1" -"@babel/cli@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.9.tgz#06b3e76376ee53f14ac8ac422c884950c69e1b9e" - integrity sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q== +"@babel/cli@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.1.tgz#2e11e071e32fe82850b4fe514f56b9c9e1c44911" + integrity sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.25" commander "^4.0.1" convert-source-map "^2.0.0" fs-readdir-recursive "^1.1.0" @@ -141,18 +141,18 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== "@babel/core@7.12.9": version "7.12.9" @@ -176,20 +176,20 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.24.0", "@babel/core@^7.7.5": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" - integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== +"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.24.4", "@babel/core@^7.7.5": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.4.tgz#1f758428e88e0d8c563874741bc4ffc4f71a4717" + integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.4" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.24.0" - "@babel/parser" "^7.24.0" + "@babel/helpers" "^7.24.4" + "@babel/parser" "^7.24.4" "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" + "@babel/traverse" "^7.24.1" "@babel/types" "^7.24.0" convert-source-map "^2.0.0" debug "^4.1.0" @@ -197,10 +197,10 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/eslint-parser@^7.23.10": - version "7.23.10" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.23.10.tgz#2d4164842d6db798873b40e0c4238827084667a2" - integrity sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw== +"@babel/eslint-parser@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.24.1.tgz#e27eee93ed1d271637165ef3a86e2b9332395c32" + integrity sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" @@ -213,14 +213,14 @@ dependencies: eslint-rule-composer "^0.3.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.24.1", "@babel/generator@^7.24.4", "@babel/generator@^7.7.2": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498" + integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw== dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": @@ -237,7 +237,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== @@ -248,10 +248,10 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6", "@babel/helper-create-class-features-plugin@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz#db58bf57137b623b916e24874ab7188d93d7f68f" - integrity sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz#c806f73788a6800a5cfbbc04d2df7ee4d927cce3" + integrity sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -286,21 +286,10 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" - integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-define-polyfill-provider@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.0.tgz#4d1a8b898c8299a2fcf295d7d356d2648471ab31" - integrity sha512-efwOM90nCG6YeT8o3PCyBVSxRfmILxCNL+TNI8CGQl7a62M0Wd9VkV+XHwIlkOz1r4b+lxu6gBjdWiOMdUCrCQ== +"@babel/helper-define-polyfill-provider@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz#fadc63f0c2ff3c8d02ed905dcea747c5b0fb74fd" + integrity sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -335,12 +324,12 @@ dependencies: "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5", "@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.24.0" "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.23.3": version "7.23.3" @@ -379,7 +368,7 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.24.1": +"@babel/helper-replace-supers@^7.24.1": version "7.24.1" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz#7085bd19d4a0b7ed8f405c1ed73ccb70f323abc1" integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== @@ -419,7 +408,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": +"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== @@ -433,52 +422,61 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" - integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== +"@babel/helpers@^7.12.5", "@babel/helpers@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6" + integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw== dependencies: "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" + "@babel/traverse" "^7.24.1" "@babel/types" "^7.24.0" -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.3", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.8", "@babel/parser@^7.23.0", "@babel/parser@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" - integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== +"@babel/parser@^7.1.0", "@babel/parser@^7.10.3", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.8", "@babel/parser@^7.23.0", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88" + integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" - integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz#6125f0158543fb4edf1c22f322f3db67f21cb3e1" + integrity sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" - integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz#b645d9ba8c2bc5b7af50f0fe949f9edbeb07c8cf" + integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz#da8261f2697f0f41b0855b91d3a20a1fbfd271d3" + integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/plugin-transform-optional-chaining" "^7.24.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" - integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz#1181d9685984c91d657b8ddf14f0487a6bab2988" + integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-proposal-class-properties@^7.12.1": version "7.18.6" @@ -636,19 +634,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-import-assertions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" - integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== +"@babel/plugin-syntax-import-assertions@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz#db3aad724153a00eaac115a3fb898de544e34971" + integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-syntax-import-attributes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" - integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== +"@babel/plugin-syntax-import-attributes@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz#c66b966c63b714c4eec508fcf5763b1f2d381093" + integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -671,12 +669,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== +"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.24.1", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -734,12 +732,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== +"@babel/plugin-syntax-typescript@^7.24.1", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -748,129 +746,129 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" - integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz#2bf263617060c9cc45bcdbf492b8cc805082bf27" + integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-async-generator-functions@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" - integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== +"@babel/plugin-transform-async-generator-functions@^7.24.3": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz#8fa7ae481b100768cc9842c8617808c5352b8b89" + integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== dependencies: "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" - integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== +"@babel/plugin-transform-async-to-generator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz#0e220703b89f2216800ce7b1c53cb0cf521c37f4" + integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-imports" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-block-scoped-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" - integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== +"@babel/plugin-transform-block-scoped-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz#1c94799e20fcd5c4d4589523bbc57b7692979380" + integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" - integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== +"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz#28f5c010b66fbb8ccdeef853bef1935c434d7012" + integrity sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-class-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" - integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== +"@babel/plugin-transform-class-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz#bcbf1aef6ba6085cfddec9fc8d58871cf011fc29" + integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-class-static-block@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" - integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== +"@babel/plugin-transform-class-static-block@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz#1a4653c0cf8ac46441ec406dece6e9bc590356a4" + integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.23.8": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" - integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz#5bc8fc160ed96378184bc10042af47f50884dcb1" + integrity sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" - integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== +"@babel/plugin-transform-computed-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz#bc7e787f8e021eccfb677af5f13c29a9934ed8a7" + integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/template" "^7.24.0" -"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" - integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz#b1e8243af4a0206841973786292b8c8dd8447345" + integrity sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-dotall-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" - integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== +"@babel/plugin-transform-dotall-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz#d56913d2f12795cc9930801b84c6f8c47513ac13" + integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-duplicate-keys@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" - integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== +"@babel/plugin-transform-duplicate-keys@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz#5347a797fe82b8d09749d10e9f5b83665adbca88" + integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-dynamic-import@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" - integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== +"@babel/plugin-transform-dynamic-import@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz#2a5a49959201970dd09a5fca856cb651e44439dd" + integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" - integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== +"@babel/plugin-transform-exponentiation-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz#6650ebeb5bd5c012d5f5f90a26613a08162e8ba4" + integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-export-namespace-from@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" - integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== +"@babel/plugin-transform-export-namespace-from@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz#f033541fc036e3efb2dcb58eedafd4f6b8078acd" + integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-transform-flow-strip-types@^7.18.6": @@ -881,87 +879,87 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-flow" "^7.18.6" -"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" - integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz#67448446b67ab6c091360ce3717e7d3a59e202fd" + integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-function-name@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" - integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== +"@babel/plugin-transform-function-name@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz#8cba6f7730626cc4dfe4ca2fa516215a0592b361" + integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== dependencies: - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-json-strings@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" - integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== +"@babel/plugin-transform-json-strings@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz#08e6369b62ab3e8a7b61089151b161180c8299f7" + integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" - integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== +"@babel/plugin-transform-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz#0a1982297af83e6b3c94972686067df588c5c096" + integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-logical-assignment-operators@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" - integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== +"@babel/plugin-transform-logical-assignment-operators@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz#719d8aded1aa94b8fb34e3a785ae8518e24cfa40" + integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" - integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== +"@babel/plugin-transform-member-expression-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz#896d23601c92f437af8b01371ad34beb75df4489" + integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-modules-amd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" - integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== +"@babel/plugin-transform-modules-amd@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz#b6d829ed15258536977e9c7cc6437814871ffa39" + integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== dependencies: "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-modules-commonjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" - integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== +"@babel/plugin-transform-modules-commonjs@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz#e71ba1d0d69e049a22bf90b3867e263823d3f1b9" + integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== dependencies: "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" - integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== +"@babel/plugin-transform-modules-systemjs@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz#2b9625a3d4e445babac9788daec39094e6b11e3e" + integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== dependencies: "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-modules-umd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" - integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== +"@babel/plugin-transform-modules-umd@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz#69220c66653a19cf2c0872b9c762b9a48b8bebef" + integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== dependencies: "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": version "7.22.5" @@ -971,103 +969,102 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" - integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== +"@babel/plugin-transform-new-target@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz#29c59988fa3d0157de1c871a28cd83096363cc34" + integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" - integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz#0cd494bb97cb07d428bd651632cb9d4140513988" + integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" - integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== +"@babel/plugin-transform-numeric-separator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz#5bc019ce5b3435c1cadf37215e55e433d674d4e8" + integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz#7b836ad0088fdded2420ce96d4e1d3ed78b71df1" - integrity sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w== +"@babel/plugin-transform-object-rest-spread@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz#5a3ce73caf0e7871a02e1c31e8b473093af241ff" + integrity sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA== dependencies: - "@babel/compat-data" "^7.23.5" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-parameters" "^7.24.1" -"@babel/plugin-transform-object-super@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" - integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== +"@babel/plugin-transform-object-super@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz#e71d6ab13483cca89ed95a474f542bbfc20a0520" + integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" -"@babel/plugin-transform-optional-catch-binding@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" - integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== +"@babel/plugin-transform-optional-catch-binding@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz#92a3d0efe847ba722f1a4508669b23134669e2da" + integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" - integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== +"@babel/plugin-transform-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz#26e588acbedce1ab3519ac40cc748e380c5291e6" + integrity sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" - integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz#983c15d114da190506c75b616ceb0f817afcc510" + integrity sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-private-methods@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" - integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== +"@babel/plugin-transform-private-methods@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz#a0faa1ae87eff077e1e47a5ec81c3aef383dc15a" + integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-private-property-in-object@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" - integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== +"@babel/plugin-transform-private-property-in-object@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz#756443d400274f8fb7896742962cc1b9f25c1f6a" + integrity sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" - integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== +"@babel/plugin-transform-property-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz#d6a9aeab96f03749f4eebeb0b6ea8e90ec958825" + integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-react-display-name@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" - integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== +"@babel/plugin-transform-react-display-name@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz#554e3e1a25d181f040cf698b93fd289a03bfdcdb" + integrity sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-react-jsx-development@^7.22.5": version "7.22.5" @@ -1076,7 +1073,7 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.17.12", "@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": +"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.17.12", "@babel/plugin-transform-react-jsx@^7.22.5", "@babel/plugin-transform-react-jsx@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== @@ -1087,138 +1084,139 @@ "@babel/plugin-syntax-jsx" "^7.23.3" "@babel/types" "^7.23.4" -"@babel/plugin-transform-react-pure-annotations@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" - integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== +"@babel/plugin-transform-react-pure-annotations@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz#c86bce22a53956331210d268e49a0ff06e392470" + integrity sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-regenerator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" - integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== +"@babel/plugin-transform-regenerator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz#625b7545bae52363bdc1fbbdc7252b5046409c8c" + integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" - integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== +"@babel/plugin-transform-reserved-words@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz#8de729f5ecbaaf5cf83b67de13bad38a21be57c1" + integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-runtime@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz#e308fe27d08b74027d42547081eefaf4f2ffbcc9" - integrity sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA== +"@babel/plugin-transform-runtime@^7.24.3": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz#dc58ad4a31810a890550365cc922e1ff5acb5d7f" + integrity sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ== dependencies: - "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-module-imports" "^7.24.3" "@babel/helper-plugin-utils" "^7.24.0" - babel-plugin-polyfill-corejs2 "^0.4.8" - babel-plugin-polyfill-corejs3 "^0.9.0" - babel-plugin-polyfill-regenerator "^0.5.5" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" - integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz#ba9a09144cf55d35ec6b93a32253becad8ee5b55" + integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" - integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz#a1acf9152cbf690e4da0ba10790b3ac7d2b2b391" + integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" - integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== +"@babel/plugin-transform-sticky-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz#f03e672912c6e203ed8d6e0271d9c2113dc031b9" + integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" - integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz#15e2166873a30d8617e3e2ccadb86643d327aab7" + integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-typeof-symbol@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" - integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== +"@babel/plugin-transform-typeof-symbol@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz#6831f78647080dec044f7e9f68003d99424f94c7" + integrity sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-typescript@^7.23.3": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" - integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== +"@babel/plugin-transform-typescript@^7.24.1": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz#03e0492537a4b953e491f53f2bc88245574ebd15" + integrity sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.23.6" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.23.3" + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-typescript" "^7.24.1" -"@babel/plugin-transform-unicode-escapes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" - integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== +"@babel/plugin-transform-unicode-escapes@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz#fb3fa16676549ac7c7449db9b342614985c2a3a4" + integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-unicode-property-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" - integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== +"@babel/plugin-transform-unicode-property-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz#56704fd4d99da81e5e9f0c0c93cabd91dbc4889e" + integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-unicode-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" - integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== +"@babel/plugin-transform-unicode-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz#57c3c191d68f998ac46b708380c1ce4d13536385" + integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-unicode-sets-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" - integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== +"@babel/plugin-transform-unicode-sets-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz#c1ea175b02afcffc9cf57a9c4658326625165b7f" + integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/preset-env@^7.12.11", "@babel/preset-env@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.0.tgz#11536a7f4b977294f0bdfad780f01a8ac8e183fc" - integrity sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA== +"@babel/preset-env@^7.12.11", "@babel/preset-env@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.4.tgz#46dbbcd608771373b88f956ffb67d471dce0d23b" + integrity sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A== dependencies: - "@babel/compat-data" "^7.23.5" + "@babel/compat-data" "^7.24.4" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-plugin-utils" "^7.24.0" "@babel/helper-validator-option" "^7.23.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.4" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.23.3" - "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-assertions" "^7.24.1" + "@babel/plugin-syntax-import-attributes" "^7.24.1" "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -1230,58 +1228,58 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.9" - "@babel/plugin-transform-async-to-generator" "^7.23.3" - "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.4" - "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.8" - "@babel/plugin-transform-computed-properties" "^7.23.3" - "@babel/plugin-transform-destructuring" "^7.23.3" - "@babel/plugin-transform-dotall-regex" "^7.23.3" - "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.4" - "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.4" - "@babel/plugin-transform-for-of" "^7.23.6" - "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.4" - "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" - "@babel/plugin-transform-member-expression-literals" "^7.23.3" - "@babel/plugin-transform-modules-amd" "^7.23.3" - "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-modules-systemjs" "^7.23.9" - "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-arrow-functions" "^7.24.1" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" + "@babel/plugin-transform-async-to-generator" "^7.24.1" + "@babel/plugin-transform-block-scoped-functions" "^7.24.1" + "@babel/plugin-transform-block-scoping" "^7.24.4" + "@babel/plugin-transform-class-properties" "^7.24.1" + "@babel/plugin-transform-class-static-block" "^7.24.4" + "@babel/plugin-transform-classes" "^7.24.1" + "@babel/plugin-transform-computed-properties" "^7.24.1" + "@babel/plugin-transform-destructuring" "^7.24.1" + "@babel/plugin-transform-dotall-regex" "^7.24.1" + "@babel/plugin-transform-duplicate-keys" "^7.24.1" + "@babel/plugin-transform-dynamic-import" "^7.24.1" + "@babel/plugin-transform-exponentiation-operator" "^7.24.1" + "@babel/plugin-transform-export-namespace-from" "^7.24.1" + "@babel/plugin-transform-for-of" "^7.24.1" + "@babel/plugin-transform-function-name" "^7.24.1" + "@babel/plugin-transform-json-strings" "^7.24.1" + "@babel/plugin-transform-literals" "^7.24.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" + "@babel/plugin-transform-member-expression-literals" "^7.24.1" + "@babel/plugin-transform-modules-amd" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-modules-systemjs" "^7.24.1" + "@babel/plugin-transform-modules-umd" "^7.24.1" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" - "@babel/plugin-transform-numeric-separator" "^7.23.4" - "@babel/plugin-transform-object-rest-spread" "^7.24.0" - "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.4" - "@babel/plugin-transform-optional-chaining" "^7.23.4" - "@babel/plugin-transform-parameters" "^7.23.3" - "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.4" - "@babel/plugin-transform-property-literals" "^7.23.3" - "@babel/plugin-transform-regenerator" "^7.23.3" - "@babel/plugin-transform-reserved-words" "^7.23.3" - "@babel/plugin-transform-shorthand-properties" "^7.23.3" - "@babel/plugin-transform-spread" "^7.23.3" - "@babel/plugin-transform-sticky-regex" "^7.23.3" - "@babel/plugin-transform-template-literals" "^7.23.3" - "@babel/plugin-transform-typeof-symbol" "^7.23.3" - "@babel/plugin-transform-unicode-escapes" "^7.23.3" - "@babel/plugin-transform-unicode-property-regex" "^7.23.3" - "@babel/plugin-transform-unicode-regex" "^7.23.3" - "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/plugin-transform-new-target" "^7.24.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.1" + "@babel/plugin-transform-object-super" "^7.24.1" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.1" + "@babel/plugin-transform-parameters" "^7.24.1" + "@babel/plugin-transform-private-methods" "^7.24.1" + "@babel/plugin-transform-private-property-in-object" "^7.24.1" + "@babel/plugin-transform-property-literals" "^7.24.1" + "@babel/plugin-transform-regenerator" "^7.24.1" + "@babel/plugin-transform-reserved-words" "^7.24.1" + "@babel/plugin-transform-shorthand-properties" "^7.24.1" + "@babel/plugin-transform-spread" "^7.24.1" + "@babel/plugin-transform-sticky-regex" "^7.24.1" + "@babel/plugin-transform-template-literals" "^7.24.1" + "@babel/plugin-transform-typeof-symbol" "^7.24.1" + "@babel/plugin-transform-unicode-escapes" "^7.24.1" + "@babel/plugin-transform-unicode-property-regex" "^7.24.1" + "@babel/plugin-transform-unicode-regex" "^7.24.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.8" - babel-plugin-polyfill-corejs3 "^0.9.0" - babel-plugin-polyfill-regenerator "^0.5.5" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1303,28 +1301,28 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.12.10", "@babel/preset-react@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" - integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== +"@babel/preset-react@^7.12.10", "@babel/preset-react@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.1.tgz#2450c2ac5cc498ef6101a6ca5474de251e33aa95" + integrity sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-transform-react-display-name" "^7.23.3" - "@babel/plugin-transform-react-jsx" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-transform-react-display-name" "^7.24.1" + "@babel/plugin-transform-react-jsx" "^7.23.4" "@babel/plugin-transform-react-jsx-development" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations" "^7.23.3" + "@babel/plugin-transform-react-pure-annotations" "^7.24.1" -"@babel/preset-typescript@^7.12.7", "@babel/preset-typescript@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" - integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== +"@babel/preset-typescript@^7.12.7", "@babel/preset-typescript@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz#89bdf13a3149a17b3b2a2c9c62547f06db8845ec" + integrity sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-syntax-jsx" "^7.23.3" - "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-typescript" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-syntax-jsx" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-typescript" "^7.24.1" "@babel/register@^7.12.1", "@babel/register@^7.23.7": version "7.23.7" @@ -1342,10 +1340,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.24.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.0.tgz#584c450063ffda59697021430cb47101b085951e" - integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.24.4", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd" + integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== dependencies: regenerator-runtime "^0.14.0" @@ -1358,18 +1356,18 @@ "@babel/parser" "^7.24.0" "@babel/types" "^7.24.0" -"@babel/traverse@^7.10.3", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.24.0", "@babel/traverse@^7.4.5": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" - integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== +"@babel/traverse@^7.10.3", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.24.1", "@babel/traverse@^7.4.5": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.24.0" + "@babel/parser" "^7.24.1" "@babel/types" "^7.24.0" debug "^4.3.1" globals "^11.1.0" @@ -1392,7 +1390,7 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.22.19", "@babel/types@^7.23.4", "@babel/types@^7.23.6": +"@babel/types@^7.22.19", "@babel/types@^7.23.4": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== @@ -2995,24 +2993,24 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": version "0.3.5" @@ -3035,7 +3033,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.9": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -12357,13 +12355,13 @@ babel-plugin-macros@^3.0.1, babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.4.8: - version "0.4.9" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.9.tgz#15a285f681e1c5495093d85f1cf72bd1cbed41ce" - integrity sha512-BXIWIaO3MewbXWdJdIGDWZurv5OGJlFNo7oy20DpB3kWDVJLcY2NRypRsRUbRe5KMqSNLuOGnWTFQQtY5MAsRw== +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.10" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz#276f41710b03a64f6467433cab72cbc2653c38b1" + integrity sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.0" + "@babel/helper-define-polyfill-provider" "^0.6.1" semver "^6.3.1" babel-plugin-polyfill-corejs3@^0.1.0: @@ -12374,20 +12372,20 @@ babel-plugin-polyfill-corejs3@^0.1.0: "@babel/helper-define-polyfill-provider" "^0.1.5" core-js-compat "^3.8.1" -babel-plugin-polyfill-corejs3@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" - integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== +babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.5.0" - core-js-compat "^3.34.0" + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" -babel-plugin-polyfill-regenerator@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" - integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz#4f08ef4c62c7a7f66a35ed4c0d75e30506acc6be" + integrity sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g== dependencies: - "@babel/helper-define-polyfill-provider" "^0.5.0" + "@babel/helper-define-polyfill-provider" "^0.6.1" babel-plugin-react-docgen@^4.2.1: version "4.2.1" @@ -12967,7 +12965,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.20.3, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.22.3: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.20.3, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -14217,12 +14215,12 @@ copy-to-clipboard@^3.0.8, copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.31.0, core-js-compat@^3.34.0, core-js-compat@^3.8.1: - version "3.36.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" - integrity sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw== +core-js-compat@^3.31.0, core-js-compat@^3.36.1, core-js-compat@^3.8.1: + version "3.37.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.0.tgz#d9570e544163779bb4dff1031c7972f44918dc73" + integrity sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA== dependencies: - browserslist "^4.22.3" + browserslist "^4.23.0" core-js-pure@^3.8.1: version "3.26.0" From e45a26edfe69590973eaa325fea38529ed7b2f6b Mon Sep 17 00:00:00 2001 From: Elastic Machine Date: Tue, 23 Apr 2024 18:01:36 +0200 Subject: [PATCH 082/183] [main] Sync bundled packages with Package Storage (#181447) Automated by https://buildkite.com/elastic/package-storage-infra-kibana-discover-release-branches/builds/603 --- fleet_packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fleet_packages.json b/fleet_packages.json index 633fd76e2498f..4de7895192d4e 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -56,6 +56,6 @@ }, { "name": "security_detection_engine", - "version": "8.13.3" + "version": "8.13.4" } ] \ No newline at end of file From bc53c8ae428698aef554c947e976c9d48b41988c Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Tue, 23 Apr 2024 10:12:52 -0600 Subject: [PATCH 083/183] [Security solution] Remove extra spacing from message (#181367) --- .../chat_send/use_chat_send.test.tsx | 4 +- .../impl/assistant/prompt/helpers.test.ts | 58 +++++++++++++++++-- .../impl/assistant/prompt/helpers.ts | 13 +++-- 3 files changed, 63 insertions(+), 12 deletions(-) diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx index 73caae8ed6fc3..6b3b2f8f06efb 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx @@ -104,7 +104,7 @@ describe('use chat send', () => { expect(sendMessage).toHaveBeenCalled(); const appendMessageSend = sendMessage.mock.calls[0][0].message; expect(appendMessageSend).toEqual( - `You are a helpful, expert assistant who answers questions about Elastic Security. Do not answer questions unrelated to Elastic Security.\nIf you answer a question related to KQL or EQL, it should be immediately usable within an Elastic Security timeline; please always format the output correctly with back ticks. Any answer provided for Query DSL should also be usable in a security timeline. This means you should only ever include the "filter" portion of the query.\nUse the following context to answer questions:\n\n\n\n${promptText}` + `You are a helpful, expert assistant who answers questions about Elastic Security. Do not answer questions unrelated to Elastic Security.\nIf you answer a question related to KQL or EQL, it should be immediately usable within an Elastic Security timeline; please always format the output correctly with back ticks. Any answer provided for Query DSL should also be usable in a security timeline. This means you should only ever include the "filter" portion of the query.\nUse the following context to answer questions:\n\n${promptText}` ); }); }); @@ -124,7 +124,7 @@ describe('use chat send', () => { await waitFor(() => { expect(sendMessage).toHaveBeenCalled(); const messages = setCurrentConversation.mock.calls[0][0].messages; - expect(messages[messages.length - 1].content).toEqual(`\n\n${promptText}`); + expect(messages[messages.length - 1].content).toEqual(promptText); }); }); it('handleRegenerateResponse removes the last message of the conversation, resends the convo to GenAI, and appends the message received', async () => { diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts index 97840d777feac..33b33f83e6581 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts @@ -94,9 +94,7 @@ User prompt text`); selectedSystemPrompt: undefined, // <-- no system prompt }); - expect(message.content).toEqual(` - -CONTEXT: + expect(message.content).toEqual(`CONTEXT: """ alert data """ @@ -148,6 +146,56 @@ User prompt text`); expect(Date.parse(message.timestamp)).not.toBeNaN(); }); + it('should return the correct combined message for a new chat without prompt context', () => { + const result = getCombinedMessage({ + currentReplacements: {}, + isNewChat: true, + promptText: 'User prompt text', + selectedSystemPrompt: mockSystemPrompt, + selectedPromptContexts: {}, + }); + + expect(result.content).toEqual( + `You are a helpful, expert assistant who answers questions about Elastic Security.\n\nUser prompt text` + ); + }); + + it('should return the correct combined message for a new chat without system context and multiple selectedPromptContext', () => { + const result = getCombinedMessage({ + currentReplacements: {}, + isNewChat: true, + promptText: 'User prompt text', + selectedPromptContexts: { + context1: { + promptContextId: 'context1', + rawData: 'This is raw data for context 1', + replacements: {}, + }, + context2: { + promptContextId: 'context2', + rawData: 'This is raw data for context 2', + replacements: {}, + }, + }, + selectedSystemPrompt: { ...mockSystemPrompt, content: '' }, + }); + + expect(result.content).toEqual( + `CONTEXT:\n\"\"\"\nThis is raw data for context 1\n\"\"\"\n,CONTEXT:\n\"\"\"\nThis is raw data for context 2\n\"\"\"\n\nUser prompt text` + ); + }); + + it('should remove extra spaces when there is no prompt content or system prompt', () => { + const result = getCombinedMessage({ + currentReplacements: {}, + isNewChat: true, + promptText: 'User prompt text', + selectedPromptContexts: {}, + selectedSystemPrompt: { ...mockSystemPrompt, content: '' }, + }); + + expect(result.content).toEqual(`User prompt text`); + }); describe('when there is data to anonymize', () => { const mockPromptContextWithDataToAnonymize: SelectedPromptContext = { @@ -210,9 +258,7 @@ User prompt text`); selectedSystemPrompt: mockSystemPrompt, }); - expect(message.content).toEqual(` - -User prompt text`); + expect(message.content).toEqual(`User prompt text`); }); }); }); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts index 5d334f64f0e11..448ab6aa895b1 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts @@ -71,13 +71,18 @@ export function getCombinedMessage({ rawData: selectedPromptContexts[id].rawData, }); - return `${SYSTEM_PROMPT_CONTEXT_NON_I18N(promptContextData)}`; + return `${SYSTEM_PROMPT_CONTEXT_NON_I18N(promptContextData)}\n`; }); + const content = `${ + isNewChat && selectedSystemPrompt && selectedSystemPrompt.content.length > 0 + ? `${selectedSystemPrompt?.content ?? ''}\n\n` + : '' + }${promptContextsContent.length > 0 ? `${promptContextsContent}\n` : ''}${promptText}`; + return { - content: `${ - isNewChat ? `${selectedSystemPrompt?.content ?? ''}\n\n` : '' - }${promptContextsContent}\n\n${promptText}`, + // trim ensures any extra \n and other whitespace is removed + content: content.trim(), role: 'user', // we are combining the system and user messages into one message timestamp: new Date().toLocaleString(), replacements, From c351e14e83552262a25488104d207ce70e1d0b47 Mon Sep 17 00:00:00 2001 From: Gloria Hornero Date: Tue, 23 Apr 2024 18:21:13 +0200 Subject: [PATCH 084/183] [Security Solution] Adds serverlessQA tag to the API tests (#180773) Continues https://github.com/elastic/kibana/pull/179737 effort we are aligning the tags on Cypress and API to have a unified experience. ## Summary We want to start integrating our Cypress tests with the serverless Kibana quality gate. However, not all the teams feel comfortable enabling all the tests, to facilitate the effort of enabling tests in the quality gate we are adding the `@serverlessQA` tag, now on API tests as well. We use tags to select which tests we want to execute on each environment and pipeline. `ess` - runs in ESS env `serverless` - runs in serverless env and periodic pipeline (failures don't block release) `serverlessQA` - runs in kibana release process (failures block release) `skipInEss` - skipped for ESS env `skipInServerless` - skipped for all serverless related environments `skipInServerlessMKI` - skipped for MKI environments ### Description **Tests tagged as `@serverless`** All the tests tagged as `@serverless` will be executed as part of the PR validation process using the serverless FTR environment (not a real one). That tests will be executed as well as part of the periodic pipeline using a real serverless project. QA environment is used to do so using the latest available commit in main at the time of the execution. **Tests tagged as `@serverlessQA`** All the tests tagged as `@serverlessQA` will be executed as part of the kibana release process using a real serverless project with the latest image available in the QA environment **Tests tagged as `@ess`** All the tests tagged as `@ess` will be executed as part of the PR validation process using an on-prem ESS environment. **Tests tagged as `@skipInServerless`** All the tests tagged as `@skipInServerless` will be excluded from the PR validation process using the serverless FTR environment, the periodic pipeline and kibana release process for Serverless. **Tests tagged as `@skipInEss`** All the tests tagged as `skipInEss` will be excluded from the PR validation process using an on-prem ESS environment. --------- Co-authored-by: Ryland Herrick --- .../api_integration_serverless_release.yml | 389 ++++++++++++++++++ .../README.md | 20 +- .../config/ess/config.base.ts | 2 +- .../serverless/config.base.essentials.ts | 2 +- .../config/serverless/config.base.ts | 2 +- .../package.json | 114 +++-- .../scripts/index.js | 10 +- .../add_actions.ts | 2 +- .../check_privileges.ts | 2 +- .../update_actions.ts | 12 +- .../field_aliases.ts | 2 +- .../query_alerts.ts | 2 +- .../set_alert_tags.ts | 3 +- .../assignments/assignments.ts | 3 +- .../assignments/assignments_serverless.ts | 3 +- .../document_level_security.ts | 2 +- .../basic_license_essentials_tier/date.ts | 2 +- .../basic_license_essentials_tier/double.ts | 2 +- .../basic_license_essentials_tier/float.ts | 2 +- .../basic_license_essentials_tier/integer.ts | 2 +- .../ips/basic_license_essentials_tier/ip.ts | 2 +- .../basic_license_essentials_tier/ip_array.ts | 2 +- .../basic_license_essentials_tier/keyword.ts | 2 +- .../keyword_array.ts | 2 +- .../basic_license_essentials_tier/long.ts | 2 +- .../basic_license_essentials_tier/text.ts | 2 +- .../text_array.ts | 2 +- .../create_endpoint_exceptions.ts | 2 +- .../create_rule_exceptions.ts | 2 +- .../exception_comments_serverless.ts | 3 +- .../exceptions_data_integrity.ts | 3 +- .../find_rule_exception_references.ts | 2 +- .../prebuilt_rules.ts | 3 +- .../rule_exceptions_execution.ts | 2 +- .../execution_logic/eql.ts | 2 +- .../execution_logic/machine_learning.ts | 8 +- .../execution_logic/new_terms.ts | 2 +- .../new_terms_alert_suppression.ts | 2 +- .../execution_logic/non_ecs_fields.ts | 2 +- .../execution_logic/query.ts | 4 +- .../execution_logic/saved_query.ts | 2 +- .../execution_logic/threat_match.ts | 3 +- .../threat_match_alert_suppression.ts | 2 +- .../execution_logic/threshold.ts | 2 +- .../threshold_alert_suppression.ts | 2 +- .../ignore_fields.ts | 6 +- .../keyword_family/const_keyword.ts | 2 +- .../keyword_family/keyword.ts | 2 +- .../keyword_mixed_with_const.ts | 2 +- .../trial_license_complete_tier/runtime.ts | 2 +- .../trial_license_complete_tier/timestamps.ts | 2 +- .../install_latest_bundled_prebuilt_rules.ts | 2 +- .../prerelease_packages.ts | 2 +- .../install_large_prebuilt_rules_package.ts | 2 +- .../fleet_integration.ts | 2 +- .../get_prebuilt_rules_status.ts | 2 +- .../get_prebuilt_timelines_status.ts | 2 +- .../install_prebuilt_rules.ts | 2 +- ...prebuilt_rules_with_historical_versions.ts | 2 +- .../upgrade_prebuilt_rules.ts | 2 +- ...prebuilt_rules_with_historical_versions.ts | 2 +- .../update_prebuilt_rules_package.ts | 2 +- .../perform_bulk_action.ts | 2 +- .../perform_bulk_action_dry_run.ts | 2 +- .../create_rules.ts | 6 +- .../create_rules_bulk.ts | 2 +- .../preview_rules.ts | 4 +- .../delete_rules_bulk.ts | 2 +- .../import_rules_with_overwrite.ts | 2 +- .../export_rules.ts | 2 +- .../import_connectors.ts | 2 +- .../import_rules.ts | 2 +- .../import_rules_with_overwrite.ts | 2 +- .../patch_rules.ts | 2 +- .../patch_rules.ts | 10 +- .../patch_rules_bulk.ts | 2 +- .../trial_license_complete_tier/read_rules.ts | 4 +- .../update_rules.ts | 2 +- .../update_rules.ts | 10 +- .../update_rules_bulk.ts | 2 +- .../task_based/all_types.ts | 2 +- .../task_based/detection_rules.ts | 14 +- .../usage_collector/all_types.ts | 2 +- .../usage_collector/detection_rule_status.ts | 8 +- .../usage_collector/detection_rules.ts | 36 +- .../read_privileges.ts | 2 +- .../asset_criticality.ts | 2 +- .../risk_scoring_task/task_execution.ts | 10 +- .../trial_license_complete_tier/basic.ts | 4 +- 89 files changed, 630 insertions(+), 188 deletions(-) create mode 100644 .buildkite/pipelines/security_solution/api_integration_serverless_release.yml diff --git a/.buildkite/pipelines/security_solution/api_integration_serverless_release.yml b/.buildkite/pipelines/security_solution/api_integration_serverless_release.yml new file mode 100644 index 0000000000000..25c6f0ce06b8e --- /dev/null +++ b/.buildkite/pipelines/security_solution/api_integration_serverless_release.yml @@ -0,0 +1,389 @@ +steps: + - group: 'API Integration Serverless Release Tests' + key: test_execution + depends_on: build_image + steps: + - label: Running integration tests for Serverless Exception Workflows + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh exception_workflows:qa:serverless:release + key: exception_workflows:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '*' + limit: 2 + + - label: Running exception_operators_date_numeric_types:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh exception_operators_date_numeric_types:qa:serverless:release + key: exception_operators_date_numeric_types:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '*' + limit: 2 + + - label: Running exception_operators_keyword:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh exception_operators_keyword:qa:serverless:release + key: exception_operators_keyword:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '*' + limit: 2 + + - label: Running exception_operators_ips:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh exception_operators_ips:qa:serverless:release + key: exception_operators_ips:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '*' + limit: 2 + + - label: Running exception_operators_long:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh exception_operators_long:qa:serverless:release + key: exception_operators_long:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running exception_operators_text:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh exception_operators_text:qa:serverless:release + key: exception_operators_text:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running alerts:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh alerts:qa:serverless:release + key: alerts:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running alerts:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh alerts:essentials:qa:serverless:release + key: alerts:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running actions:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh actions:qa:serverless:release + key: actions:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running genai:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh genai:qa:serverless:release + key: genai:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: "1" + limit: 2 + + - label: Running rule_execution_logic:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_execution_logic:qa:serverless:release + key: rule_execution_logic:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_patch:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_patch:qa:serverless:release + key: rule_patch:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_patch:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_patch:essentials:qa:serverless:release + key: rule_patch:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_update:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_update:qa:serverless:release + key: rule_update:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_update:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_update:essentials:qa:serverless:release + key: rule_update:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rules_management:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rules_management:essentials:qa:serverless:release + key: rules_management:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running prebuilt_rules_management:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh prebuilt_rules_management:qa:serverless:release + key: prebuilt_rules_management:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running prebuilt_rules_bundled_prebuilt_rules_package:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh prebuilt_rules_bundled_prebuilt_rules_package:qa:serverless:release + key: prebuilt_rules_bundled_prebuilt_rules_package:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running prebuilt_rules_large_prebuilt_rules_package:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh prebuilt_rules_large_prebuilt_rules_package:qa:serverless:release + key: prebuilt_rules_large_prebuilt_rules_package:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running prebuilt_rules_update_prebuilt_rules_package:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh prebuilt_rules_update_prebuilt_rules_package:qa:serverless:release + key: prebuilt_rules_update_prebuilt_rules_package:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_bulk_actions:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_bulk_actions:qa:serverless:release + key: rule_bulk_actions:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_read:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_read:qa:serverless:release + key: rule_read:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_import_export:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_import_export:essentials:qa:serverless:release + key: rule_import_export:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_import_export:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_import_export:qa:serverless:release + key: rule_import_export:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + + - label: Running rule_management:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_management:qa:serverless:release + key: rule_management:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_read:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_read:essentials:qa:serverless:release + key: rule_read:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_creation:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_creation:qa:serverless:release + key: rule_creation:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_creation:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_creation:essentials:qa:serverless:release + key: rule_creation:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_delete:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_delete:qa:serverless:release + key: rule_delete:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running rule_delete:essentials:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh rule_delete:essentials:qa:serverless:release + key: rule_delete:essentials:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running exception_lists_items:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh exception_lists_items:qa:serverless:release + key: exception_lists_items:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running lists_items:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh lists_items:qa:serverless:release + key: lists_items:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running user_roles:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh user_roles:qa:serverless:release + key: user_roles:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + + - label: Running telemetry:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh telemetry:qa:serverless:release + key: telemetry:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 + - label: Running entity_analytics:qa:serverless:release + command: .buildkite/scripts/pipelines/security_solution_quality_gate/api_integration/api-integration-tests.sh entity_analytics:qa:serverless:release + key: entity_analytics:qa:serverless:release + agents: + queue: n2-4-spot + timeout_in_minutes: 120 + retry: + automatic: + - exit_status: '1' + limit: 2 diff --git a/x-pack/test/security_solution_api_integration/README.md b/x-pack/test/security_solution_api_integration/README.md index c0162a0abb041..1cfc87a1420c9 100644 --- a/x-pack/test/security_solution_api_integration/README.md +++ b/x-pack/test/security_solution_api_integration/README.md @@ -15,16 +15,28 @@ we have introduced the `detection_response` directory to consolidate all the int - In this directory, Mocha tagging is utilized to assign tags to specific test suites and individual test cases. This tagging system enables the ability to selectively apply tags to test suites and test cases, facilitating the exclusion of specific test cases within a test suite as needed. -- There are three primary tags that have been defined: @ess, @serverless, and @brokenInServerless - - Test suites and cases are prefixed with specific tags to determine their execution in particular environments or to exclude them from specific environments. +- We are using the following tags: + * `@ess`: Runs in an ESS environment (on-prem installation) as part of the CI validation on PRs. + + * `@serverless`: Runs in the first quality gate and in the periodic pipeline. + + * `@serverlessQA`: Runs in the second quality gate. + + * `@skipInEss`: Skipped for ESS environment. + + * `@skipInServerless`: Skipped for all quality gates, CI and periodic pipeline. + + * `@skipInServerlessMKI`: Skipped for all the MKI environments. + ex: ``` describe('@serverless @ess create_rules', () => { ==> tests in this suite will run in both Ess and Serverless describe('creating rules', () => {}); - describe('@brokenInServerless missing timestamps', () => {}); ==> tests in this suite will be excluded in Serverless + // This test is skipped due to flakiness in serverless environments: https://github.com/elastic/kibana/issues/497777 + describe('@skipInServerless missing timestamps', () => {}); ==> tests in this suite will be excluded in Serverless ``` @@ -86,7 +98,7 @@ In this project, you can run various commands to execute tests and workflows, ea ``` 3. **Run tests for "exception_workflows" using the serverless runner in the "qaEnv" environment:** ```shell - npm run run-tests:dr:default exceptions/workflows serverless qaEnv + npm run run-tests:dr:default exceptions/workflows serverless qaPeriodicEnv ``` 4. **Run the server for "exception_workflows" in the "essEnv" environment:** ```shell diff --git a/x-pack/test/security_solution_api_integration/config/ess/config.base.ts b/x-pack/test/security_solution_api_integration/config/ess/config.base.ts index 7408b0093f7e9..fc25abe814400 100644 --- a/x-pack/test/security_solution_api_integration/config/ess/config.base.ts +++ b/x-pack/test/security_solution_api_integration/config/ess/config.base.ts @@ -96,7 +96,7 @@ export function createTestConfig(options: CreateTestConfigOptions, testFiles?: s ], }, mochaOpts: { - grep: '/^(?!.*@brokenInEss).*@ess.*/', + grep: '/^(?!.*@skipInEss).*@ess.*/', }, }; }; diff --git a/x-pack/test/security_solution_api_integration/config/serverless/config.base.essentials.ts b/x-pack/test/security_solution_api_integration/config/serverless/config.base.essentials.ts index 377d970d3451d..55a7957ae20d6 100644 --- a/x-pack/test/security_solution_api_integration/config/serverless/config.base.essentials.ts +++ b/x-pack/test/security_solution_api_integration/config/serverless/config.base.essentials.ts @@ -44,7 +44,7 @@ export function createTestConfig(options: CreateTestConfigOptions) { mochaOpts: { ...svlSharedConfig.get('mochaOpts'), - grep: '/^(?!.*@brokenInServerless).*@serverless.*/', + grep: '/^(?!.*@skipInServerless).*@serverless.*/', }, }; }; diff --git a/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts b/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts index ae3b17ce086c3..026f8cad10395 100644 --- a/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts +++ b/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts @@ -42,7 +42,7 @@ export function createTestConfig(options: CreateTestConfigOptions) { mochaOpts: { ...svlSharedConfig.get('mochaOpts'), - grep: '/^(?!.*@brokenInServerless).*@serverless.*/', + grep: '/^(?!.*@skipInServerless).*@serverless.*/', }, }; }; diff --git a/x-pack/test/security_solution_api_integration/package.json b/x-pack/test/security_solution_api_integration/package.json index 88e55374b3b9f..ff58c521ccd15 100644 --- a/x-pack/test/security_solution_api_integration/package.json +++ b/x-pack/test/security_solution_api_integration/package.json @@ -37,225 +37,263 @@ "genai:server:serverless": "npm run initialize-server:genai:trial_complete invoke_ai serverless", "genai:runner:serverless": "npm run run-tests:genai:trial_complete invoke_ai serverless serverlessEnv", - "genai:qa:serverless": "npm run run-tests:genai:trial_complete invoke_ai serverless qaEnv", + "genai:qa:serverless": "npm run run-tests:genai:trial_complete invoke_ai serverless qaPeriodicEnv", + "genai:qa:serverless:release": "npm run run-tests:genai:trial_complete invoke_ai serverlessQA qaEnv", "genai:server:ess": "npm run initialize-server:genai:trial_complete invoke_ai ess", "genai:runner:ess": "npm run run-tests:genai:trial_complete invoke_ai ess essEnv", "nlp_cleanup_task:complete:server:serverless": "npm run initialize-server:genai:trial_complete nlp_cleanup_task serverless", "nlp_cleanup_task:complete:runner:serverless": "npm run run-tests:genai:trial_complete nlp_cleanup_task serverless serverlessEnv", - "nlp_cleanup_task:complete:qa:serverless": "npm run run-tests:genai:trial_complete nlp_cleanup_task serverless qaEnv", + "nlp_cleanup_task:complete:qa:serverless": "npm run run-tests:genai:trial_complete nlp_cleanup_task serverless qaPeriodicEnv", + "nlp_cleanup_task:complete:qa:serverless:release": "npm run run-tests:genai:trial_complete nlp_cleanup_task serverlessQA qaEnv", "nlp_cleanup_task:essentials:server:serverless": "npm run initialize-server:genai:basic_essentials nlp_cleanup_task serverless", "nlp_cleanup_task:essentials:runner:serverless": "npm run run-tests:genai:basic_essentials nlp_cleanup_task serverless serverlessEnv", - "nlp_cleanup_task:essentials:qa:serverless": "npm run run-tests:genai:basic_essentials nlp_cleanup_task serverless qaEnv", + "nlp_cleanup_task:essentials:qa:serverless": "npm run run-tests:genai:basic_essentials nlp_cleanup_task serverless qaPeriodicEnv", + "nlp_cleanup_task:essentials:qa:serverless:release": "npm run run-tests:genai:basic_essentials nlp_cleanup_task serverlessQA qaEnv", "entity_analytics:server:serverless": "npm run initialize-server:ea:trial_complete risk_engine serverless", "entity_analytics:runner:serverless": "npm run run-tests:ea:trial_complete risk_engine serverless serverlessEnv", - "entity_analytics:qa:serverless": "npm run run-tests:ea:trial_complete risk_engine serverless qaEnv", + "entity_analytics:qa:serverless": "npm run run-tests:ea:trial_complete risk_engine serverless qaPeriodicEnv", + "entity_analytics:qa:serverless:release": "npm run run-tests:ea:trial_complete risk_engine serverlessQA qaEnv", "entity_analytics:server:ess": "npm run initialize-server:ea:trial_complete risk_engine ess", "entity_analytics:runner:ess": "npm run run-tests:ea:trial_complete risk_engine ess essEnv", "entity_analytics:essentials:server:serverless": "npm run initialize-server:ea:basic_essentials risk_engine serverless", "entity_analytics:essentials:runner:serverless": "npm run run-tests:ea:basic_essentials risk_engine serverless serverlessEnv", - "entity_analytics:essentials:qa:serverless": "npm run run-tests:ea:basic_essentials risk_engine serverless qaEnv", + "entity_analytics:essentials:qa:serverless": "npm run run-tests:ea:basic_essentials risk_engine serverless qaPeriodicEnv", + "entity_analytics:essentials:qa:serverless:release": "npm run run-tests:ea:basic_essentials risk_engine serverlessQA qaEnv", "entity_analytics:essentials:server:ess": "npm run initialize-server:ea:basic_essentials risk_engine ess", "entity_analytics:essentials:runner:ess": "npm run run-tests:ea:basic_essentials risk_engine ess essEnv", "exception_lists_items:server:serverless": "npm run initialize-server:lists:complete exception_lists_items serverless", "exception_lists_items:runner:serverless": "npm run run-tests:lists:complete exception_lists_items serverless serverlessEnv", - "exception_lists_items:qa:serverless": "npm run run-tests:lists:complete exception_lists_items serverless qaEnv", + "exception_lists_items:qa:serverless": "npm run run-tests:lists:complete exception_lists_items serverless qaPeriodicEnv", + "exception_lists_items:qa:serverless:release": "npm run run-tests:lists:complete exception_lists_items serverlessQA qaEnv", "exception_lists_items:server:ess": "npm run initialize-server:lists:complete exception_lists_items ess", "exception_lists_items:runner:ess": "npm run run-tests:lists:complete exception_lists_items ess essEnv", "lists_items:server:serverless": "npm run initialize-server:lists:complete lists_items serverless", "lists_items:runner:serverless": "npm run run-tests:lists:complete lists_items serverless serverlessEnv", - "lists_items:qa:serverless": "npm run run-tests:lists:complete lists_items serverless qaEnv", + "lists_items:qa:serverless": "npm run run-tests:lists:complete lists_items serverless qaPeriodicEnv", + "lists_items:qa:serverless:release": "npm run run-tests:lists:complete lists_items serverlessQA qaEnv", "lists_items:server:ess": "npm run initialize-server:lists:complete lists_items ess", "lists_items:runner:ess": "npm run run-tests:lists:complete lists_items ess essEnv", "user_roles:server:serverless": "npm run initialize-server:dr user_roles serverless", "user_roles:runner:serverless": "npm run run-tests:dr user_roles serverless serverlessEnv", - "user_roles:qa:serverless": "npm run run-tests:dr user_roles serverless qaEnv", + "user_roles:qa:serverless": "npm run run-tests:dr user_roles serverless qaPeriodicEnv", + "user_roles:qa:serverless:release": "npm run run-tests:dr user_roles serverlessQA qaEnv", "user_roles:server:ess": "npm run initialize-server:dr user_roles ess", "user_roles:runner:ess": "npm run run-tests:dr user_roles ess essEnv", "telemetry:server:serverless": "npm run initialize-server:dr telemetry serverless", "telemetry:runner:serverless": "npm run run-tests:dr telemetry serverless serverlessEnv", - "telemetry:qa:serverless": "npm run run-tests:dr telemetry serverless qaEnv", + "telemetry:qa:serverless": "npm run run-tests:dr telemetry serverless qaPeriodicEnv", + "telemetry:qa:serverless:release": "npm run run-tests:dr telemetry serverlessQA qaEnv", "telemetry:server:ess": "npm run initialize-server:dr telemetry ess", "telemetry:runner:ess": "npm run run-tests:dr telemetry ess essEnv", "exception_workflows:essentials:server:serverless": "npm run initialize-server:de:basic_essentials exceptions/workflows serverless", "exception_workflows:essentials:runner:serverless": "npm run run-tests:de:basic_essentials exceptions/workflows serverless serverlessEnv", - "exception_workflows:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/workflows serverless qaEnv", + "exception_workflows:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/workflows serverless qaPeriodicEnv", + "exception_workflows:essentials:qa:serverless:release": "npm run run-tests:de:basic_essentials exceptions/workflows serverlessQA qaEnv", "exception_workflows:basic:server:ess": "npm run initialize-server:de:basic_essentials exceptions/workflows ess", "exception_workflows:basic:runner:ess": "npm run run-tests:de:basic_essentials exceptions/workflows ess essEnv", "exception_operators_date_numeric_types:essentials:server:serverless": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/date_numeric_types serverless", "exception_operators_date_numeric_types:essentials:runner:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/date_numeric_types serverless serverlessEnv", - "exception_operators_date_numeric_types:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/date_numeric_types serverless qaEnv", + "exception_operators_date_numeric_types:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/date_numeric_types serverless qaPeriodicEnv", + "exception_operators_date_numeric_types:essentials:qa:serverless:release": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/date_numeric_types serverlessQA qaEnv", "exception_operators_date_numeric_types:basic:server:ess": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/date_numeric_types ess", "exception_operators_date_numeric_types:basic:runner:ess": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/date_numeric_types ess essEnv", "exception_operators_keyword:essentials:server:serverless": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/keyword serverless", "exception_operators_keyword:essentials:runner:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/keyword serverless serverlessEnv", - "exception_operators_keyword:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/keyword serverless qaEnv", + "exception_operators_keyword:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/keyword serverless qaPeriodicEnv", + "exception_operators_keyword:essentials:qa:serverless:release": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/keyword serverlessQA qaEnv", "exception_operators_keyword:basic:server:ess": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/keyword ess", "exception_operators_keyword:basic:runner:ess": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/keyword ess essEnv", "exception_operators_ips:essentials:server:serverless": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/ips serverless", "exception_operators_ips:essentials:runner:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/ips serverless serverlessEnv", - "exception_operators_ips:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/ips serverless qaEnv", + "exception_operators_ips:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/ips serverless qaPeriodicEnv", + "exception_operators_ips:essentials:qa:serverless:release": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/ips serverlessQA qaEnv", "exception_operators_ips:basic:server:ess": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/ips ess", "exception_operators_ips:basic:runner:ess": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/ips ess essEnv", "exception_operators_long:essentials:server:serverless": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/long serverless", "exception_operators_long:essentials:runner:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/long serverless serverlessEnv", - "exception_operators_long:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/long serverless qaEnv", + "exception_operators_long:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/long serverless qaPeriodicEnv", + "exception_operators_long:essentials:qa:serverless:release": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/long serverlessQA qaEnv", "exception_operators_long:basic:server:ess": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/long ess", "exception_operators_long:basic:runner:ess": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/long ess essEnv", "exception_operators_text:essentials:server:serverless": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/text serverless", "exception_operators_text:essentials:runner:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/text serverless serverlessEnv", - "exception_operators_text:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/text serverless qaEnv", + "exception_operators_text:essentials:qa:serverless": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/text serverless qaPeriodicEnv", + "exception_operators_text:essentials:qa:serverless:release": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/text serverlessQA qaEnv", "exception_operators_text:basic:server:ess": "npm run initialize-server:de:basic_essentials exceptions/operators_data_types/text ess", "exception_operators_text:basic:runner:ess": "npm run run-tests:de:basic_essentials exceptions/operators_data_types/text ess essEnv", "actions:server:serverless": "npm run initialize-server:de actions serverless", "actions:runner:serverless": "npm run run-tests:de actions serverless serverlessEnv", - "actions:qa:serverless": "npm run run-tests:de actions serverless qaEnv", + "actions:qa:serverless": "npm run run-tests:de actions serverless qaPeriodicEnv", + "actions:qa:serverless:release": "npm run run-tests:de actions serverlessQA qaEnv", "actions:server:ess": "npm run initialize-server:de actions ess", "actions:runner:ess": "npm run run-tests:de actions ess essEnv", "alerts:server:serverless": "npm run initialize-server:de alerts serverless", "alerts:runner:serverless": "npm run run-tests:de alerts serverless serverlessEnv", - "alerts:qa:serverless": "npm run run-tests:de alerts serverless qaEnv", + "alerts:qa:serverless": "npm run run-tests:de alerts serverless qaPeriodicEnv", + "alerts:qa:serverless:release": "npm run run-tests:de alerts serverlessQA qaEnv", "alerts:server:ess": "npm run initialize-server:de alerts ess", "alerts:runner:ess": "npm run run-tests:de alerts ess essEnv", "alerts:essentials:server:serverless": "npm run initialize-server:de:basic_essentials alerts serverless", "alerts:essentials:runner:serverless": "npm run run-tests:de:basic_essentials alerts serverless serverlessEnv", - "alerts:essentials:qa:serverless": "npm run run-tests:de:basic_essentials alerts serverless qaEnv", + "alerts:essentials:qa:serverless": "npm run run-tests:de:basic_essentials alerts serverless qaPeriodicEnv", + "alerts:essentials:qa:serverless:release": "npm run run-tests:de:basic_essentials alerts serverlessQA qaEnv", "alerts:basic:server:ess": "npm run initialize-server:de:basic_essentials alerts ess", "alerts:basic:runner:ess": "npm run run-tests:de:basic_essentials alerts ess essEnv", "rule_execution_logic:server:serverless": "npm run initialize-server:de rule_execution_logic serverless", "rule_execution_logic:runner:serverless": "npm run run-tests:de rule_execution_logic serverless serverlessEnv", - "rule_execution_logic:qa:serverless": "npm run run-tests:de rule_execution_logic serverless qaEnv", + "rule_execution_logic:qa:serverless": "npm run run-tests:de rule_execution_logic serverless qaPeriodicEnv", + "rule_execution_logic:qa:serverless:release": "npm run run-tests:de rule_execution_logic serverlessQA qaEnv", "rule_execution_logic:server:ess": "npm run initialize-server:de rule_execution_logic ess", "rule_execution_logic:runner:ess": "npm run run-tests:de rule_execution_logic ess essEnv", "rule_creation:server:serverless": "npm run initialize-server:rm rule_creation serverless", "rule_creation:runner:serverless": "npm run run-tests:rm rule_creation serverless serverlessEnv", - "rule_creation:qa:serverless": "npm run run-tests:rm rule_creation serverless qaEnv", + "rule_creation:qa:serverless": "npm run run-tests:rm rule_creation serverless qaPeriodicEnv", + "rule_creation:qa:serverless:release": "npm run run-tests:rm rule_creation serverlessQA qaEnv", "rule_creation:server:ess": "npm run initialize-server:rm rule_creation ess", "rule_creation:runner:ess": "npm run run-tests:rm rule_creation ess essEnv", "rule_creation:essentials:server:serverless": "npm run initialize-server:rm:basic_essentials rule_creation serverless", "rule_creation:essentials:runner:serverless": "npm run run-tests:rm:basic_essentials rule_creation serverless serverlessEnv", - "rule_creation:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_creation serverless qaEnv", + "rule_creation:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_creation serverless qaPeriodicEnv", + "rule_creation:essentials:qa:serverless:release": "npm run run-tests:rm:basic_essentials rule_creation serverlessQA qaEnv", "rule_creation:basic:server:ess": "npm run initialize-server:rm:basic_essentials rule_creation ess", "rule_creation:basic:runner:ess": "npm run run-tests:rm:basic_essentials rule_creation ess essEnv", "rule_update:server:serverless": "npm run initialize-server:rm rule_update serverless", "rule_update:runner:serverless": "npm run run-tests:rm rule_update serverless serverlessEnv", - "rule_update:qa:serverless": "npm run run-tests:rm rule_update serverless qaEnv", + "rule_update:qa:serverless": "npm run run-tests:rm rule_update serverless qaPeriodicEnv", + "rule_update:qa:serverless:release": "npm run run-tests:rm rule_update serverlessQA qaEnv", "rule_update:server:ess": "npm run initialize-server:rm rule_update ess", "rule_update:runner:ess": "npm run run-tests:rm rule_update ess essEnv", "rule_update:essentials:server:serverless": "npm run initialize-server:rm:basic_essentials rule_update serverless", "rule_update:essentials:runner:serverless": "npm run run-tests:rm:basic_essentials rule_update serverless serverlessEnv", - "rule_update:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_update serverless qaEnv", + "rule_update:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_update serverless qaPeriodicEnv", + "rule_update:essentials:qa:serverless:release": "npm run run-tests:rm:basic_essentials rule_update serverlessQA qaEnv", "rule_update:basic:server:ess": "npm run initialize-server:rm:basic_essentials rule_update ess", "rule_update:basic:runner:ess": "npm run run-tests:rm:basic_essentials rule_update ess essEnv", "rule_patch:server:serverless": "npm run initialize-server:rm rule_patch serverless", "rule_patch:runner:serverless": "npm run run-tests:rm rule_patch serverless serverlessEnv", - "rule_patch:qa:serverless": "npm run run-tests:rm rule_patch serverless qaEnv", + "rule_patch:qa:serverless": "npm run run-tests:rm rule_patch serverless qaPeriodicEnv", + "rule_patch:qa:serverless:release": "npm run run-tests:rm rule_patch serverlessQA qaEnv", "rule_patch:server:ess": "npm run initialize-server:rm rule_patch ess", "rule_patch:runner:ess": "npm run run-tests:rm rule_patch ess essEnv", "rule_patch:essentials:server:serverless": "npm run initialize-server:rm:basic_essentials rule_patch serverless", "rule_patch:essentials:runner:serverless": "npm run run-tests:rm:basic_essentials rule_patch serverless serverlessEnv", - "rule_patch:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_patch serverless qaEnv", + "rule_patch:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_patch serverless qaPeriodicEnv", + "rule_patch:essentials:qa:serverless:release": "npm run run-tests:rm:basic_essentials rule_patch serverlessQA qaEnv", "rule_patch:basic:server:ess": "npm run initialize-server:rm:basic_essentials rule_patch ess", "rule_patch:basic:runner:ess": "npm run run-tests:rm:basic_essentials rule_patch ess essEnv", "prebuilt_rules_management:server:serverless": "npm run initialize-server:rm prebuilt_rules/management serverless", "prebuilt_rules_management:runner:serverless": "npm run run-tests:rm prebuilt_rules/management serverless serverlessEnv", - "prebuilt_rules_management:qa:serverless": "npm run run-tests:rm prebuilt_rules/management serverless qaEnv", + "prebuilt_rules_management:qa:serverless": "npm run run-tests:rm prebuilt_rules/management serverless qaPeriodicEnv", + "prebuilt_rules_management:qa:serverless:release": "npm run run-tests:rm prebuilt_rules/management serverlessQA qaEnv", "prebuilt_rules_management:server:ess": "npm run initialize-server:rm prebuilt_rules/management ess", "prebuilt_rules_management:runner:ess": "npm run run-tests:rm prebuilt_rules/management ess essEnv", "prebuilt_rules_bundled_prebuilt_rules_package:server:serverless": "npm run initialize-server:rm prebuilt_rules/bundled_prebuilt_rules_package serverless", "prebuilt_rules_bundled_prebuilt_rules_package:runner:serverless": "npm run run-tests:rm prebuilt_rules/bundled_prebuilt_rules_package serverless serverlessEnv", - "prebuilt_rules_bundled_prebuilt_rules_package:qa:serverless": "npm run run-tests:rm prebuilt_rules/bundled_prebuilt_rules_package serverless qaEnv", + "prebuilt_rules_bundled_prebuilt_rules_package:qa:serverless": "npm run run-tests:rm prebuilt_rules/bundled_prebuilt_rules_package serverless qaPeriodicEnv", + "prebuilt_rules_bundled_prebuilt_rules_package:qa:serverless:release": "npm run run-tests:rm prebuilt_rules/bundled_prebuilt_rules_package serverlessQA qaEnv", "prebuilt_rules_bundled_prebuilt_rules_package:server:ess": "npm run initialize-server:rm prebuilt_rules/bundled_prebuilt_rules_package ess", "prebuilt_rules_bundled_prebuilt_rules_package:runner:ess": "npm run run-tests:rm prebuilt_rules/bundled_prebuilt_rules_package ess essEnv", "prebuilt_rules_large_prebuilt_rules_package:server:serverless": "npm run initialize-server:rm prebuilt_rules/large_prebuilt_rules_package serverless", "prebuilt_rules_large_prebuilt_rules_package:runner:serverless": "npm run run-tests:rm prebuilt_rules/large_prebuilt_rules_package serverless serverlessEnv", - "prebuilt_rules_large_prebuilt_rules_package:qa:serverless": "npm run run-tests:rm prebuilt_rules/large_prebuilt_rules_package serverless qaEnv", + "prebuilt_rules_large_prebuilt_rules_package:qa:serverless": "npm run run-tests:rm prebuilt_rules/large_prebuilt_rules_package serverless qaPeriodicEnv", + "prebuilt_rules_large_prebuilt_rules_package:qa:serverles:release": "npm run run-tests:rm prebuilt_rules/large_prebuilt_rules_package serverlessQA qaEnv", "prebuilt_rules_large_prebuilt_rules_package:server:ess": "npm run initialize-server:rm prebuilt_rules/large_prebuilt_rules_package ess", "prebuilt_rules_large_prebuilt_rules_package:runner:ess": "npm run run-tests:rm prebuilt_rules/large_prebuilt_rules_package ess essEnv", "prebuilt_rules_update_prebuilt_rules_package:server:serverless": "npm run initialize-server:rm prebuilt_rules/update_prebuilt_rules_package serverless", "prebuilt_rules_update_prebuilt_rules_package:runner:serverless": "npm run run-tests:rm prebuilt_rules/update_prebuilt_rules_package serverless serverlessEnv", - "prebuilt_rules_update_prebuilt_rules_package:qa:serverless": "npm run run-tests:rm prebuilt_rules/update_prebuilt_rules_package serverless qaEnv", + "prebuilt_rules_update_prebuilt_rules_package:qa:serverless": "npm run run-tests:rm prebuilt_rules/update_prebuilt_rules_package serverless qaPeriodicEnv", + "prebuilt_rules_update_prebuilt_rules_package:qa:serverless:release": "npm run run-tests:rm prebuilt_rules/update_prebuilt_rules_package serverlessQA qaEnv", "prebuilt_rules_update_prebuilt_rules_package:server:ess": "npm run initialize-server:rm prebuilt_rules/update_prebuilt_rules_package ess", "prebuilt_rules_update_prebuilt_rules_package:runner:ess": "npm run run-tests:rm prebuilt_rules/update_prebuilt_rules_package ess essEnv", "rule_delete:server:serverless": "npm run initialize-server:rm rule_delete serverless", "rule_delete:runner:serverless": "npm run run-tests:rm rule_delete serverless serverlessEnv", - "rule_delete:qa:serverless": "npm run run-tests:rm rule_delete serverless qaEnv", + "rule_delete:qa:serverless": "npm run run-tests:rm rule_delete serverless qaPeriodicEnv", + "rule_delete:qa:serverless:release": "npm run run-tests:rm rule_delete serverlessQA qaEnv", "rule_delete:server:ess": "npm run initialize-server:rm rule_delete ess", "rule_delete:runner:ess": "npm run run-tests:rm rule_delete ess essEnv", "rule_delete:essentials:server:serverless": "npm run initialize-server:rm:basic_essentials rule_delete serverless", "rule_delete:essentials:runner:serverless": "npm run run-tests:rm:basic_essentials rule_delete serverless serverlessEnv", - "rule_delete:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_delete serverless qaEnv", + "rule_delete:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_delete serverless qaPeriodicEnv", + "rule_delete:essentials:qa:serverless:release": "npm run run-tests:rm:basic_essentials rule_delete serverlessQA qaEnv", "rule_delete:basic:server:ess": "npm run initialize-server:rm:basic_essentials rule_delete ess", "rule_delete:basic:runner:ess": "npm run run-tests:rm:basic_essentials rule_delete ess essEnv", "rule_import_export:server:serverless": "npm run initialize-server:rm rule_import_export serverless", "rule_import_export:runner:serverless": "npm run run-tests:rm rule_import_export serverless serverlessEnv", - "rule_import_export:qa:serverless": "npm run run-tests:rm rule_import_export serverless qaEnv", + "rule_import_export:qa:serverless": "npm run run-tests:rm rule_import_export serverless qaPeriodicEnv", + "rule_import_export:qa:serverless:release": "npm run run-tests:rm rule_import_export serverlessQA qaEnv", "rule_import_export:server:ess": "npm run initialize-server:rm rule_import_export ess", "rule_import_export:runner:ess": "npm run run-tests:rm rule_import_export ess essEnv", "rule_import_export:essentials:server:serverless": "npm run initialize-server:rm:basic_essentials rule_import_export serverless", "rule_import_export:essentials:runner:serverless": "npm run run-tests:rm:basic_essentials rule_import_export serverless serverlessEnv", - "rule_import_export:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_import_export serverless qaEnv", + "rule_import_export:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_import_export serverless qaPeriodicEnv", + "rule_import_export:essentials:qa:serverless:release": "npm run run-tests:rm:basic_essentials rule_import_export serverlessQA qaEnv", "rule_import_export:basic:server:ess": "npm run initialize-server:rm:basic_essentials rule_import_export ess", "rule_import_export:basic:runner:ess": "npm run run-tests:rm:basic_essentials rule_import_export ess essEnv", "rule_management:server:serverless": "npm run initialize-server:rm rule_management serverless", "rule_management:runner:serverless": "npm run run-tests:rm rule_management serverless serverlessEnv", - "rule_management:qa:serverless": "npm run run-tests:rm rule_management serverless qaEnv", + "rule_management:qa:serverless": "npm run run-tests:rm rule_management serverless qaPeriodicEnv", + "rule_management:qa:serverless:release": "npm run run-tests:rm rule_management serverlessQA qaEnv", "rule_management:server:ess": "npm run initialize-server:rm rule_management ess", "rule_management:runner:ess": "npm run run-tests:rm rule_management ess essEnv", "rule_bulk_actions:server:serverless": "npm run initialize-server:rm rule_bulk_actions serverless", "rule_bulk_actions:runner:serverless": "npm run run-tests:rm rule_bulk_actions serverless serverlessEnv", - "rule_bulk_actions:qa:serverless": "npm run run-tests:rm rule_bulk_actions serverless qaEnv", + "rule_bulk_actions:qa:serverless": "npm run run-tests:rm rule_bulk_actions serverless qaPeriodicEnv", + "rule_bulk_actions:qa:serverless:release": "npm run run-tests:rm rule_bulk_actions serverlessQA qaEnv", "rule_bulk_actions:server:ess": "npm run initialize-server:rm rule_bulk_actions ess", "rule_bulk_actions:runner:ess": "npm run run-tests:rm rule_bulk_actions ess essEnv", "rule_read:server:serverless": "npm run initialize-server:rm rule_read serverless", "rule_read:runner:serverless": "npm run run-tests:rm rule_read serverless serverlessEnv", - "rule_read:qa:serverless": "npm run run-tests:rm rule_read serverless qaEnv", + "rule_read:qa:serverless": "npm run run-tests:rm rule_read serverless qaPeriodicEnv", + "rule_read:qa:serverless:release": "npm run run-tests:rm rule_read serverlessQA qaEnv", "rule_read:server:ess": "npm run initialize-server:rm rule_read ess", "rule_read:runner:ess": "npm run run-tests:rm rule_read ess essEnv", "rule_read:essentials:server:serverless": "npm run initialize-server:rm:basic_essentials rule_read serverless", "rule_read:essentials:runner:serverless": "npm run run-tests:rm:basic_essentials rule_read serverless serverlessEnv", - "rule_read:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_read serverless qaEnv", + "rule_read:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_read serverless qaPeriodicEnv", + "rule_read:essentials:qa:serverless:release": "npm run run-tests:rm:basic_essentials rule_read serverlessQA qaEnv", "rule_read:basic:server:ess": "npm run initialize-server:rm:basic_essentials rule_read ess", "rule_read:basic:runner:ess": "npm run run-tests:rm:basic_essentials rule_read ess essEnv", "rules_management:essentials:server:serverless": "npm run initialize-server:rm:basic_essentials rule_management serverless", "rules_management:essentials:runner:serverless": "npm run run-tests:rm:basic_essentials rule_management serverless serverlessEnv", - "rules_management:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_management serverless qaEnv", + "rules_management:essentials:qa:serverless": "npm run run-tests:rm:basic_essentials rule_management serverless qaPeriodicEnv", + "rules_management:essentials:qa:serverless:release": "npm run run-tests:rm:basic_essentials rule_management serverlessQA qaEnv", "rules_management:basic:server:ess": "npm run initialize-server:rm:basic_essentials rule_management ess", "rules_management:basic:runner:ess": "npm run run-tests:rm:basic_essentials rule_management ess essEnv" } diff --git a/x-pack/test/security_solution_api_integration/scripts/index.js b/x-pack/test/security_solution_api_integration/scripts/index.js index c89421ee8feb4..6cc8dd1ef5c7a 100644 --- a/x-pack/test/security_solution_api_integration/scripts/index.js +++ b/x-pack/test/security_solution_api_integration/scripts/index.js @@ -21,15 +21,19 @@ let grepArgs = []; if (type !== 'server') { switch (environment) { case 'serverlessEnv': - grepArgs = ['--grep', '/^(?!.*@brokenInServerless).*@serverless.*/']; + grepArgs = ['--grep', '/^(?!.*@skipInServerless).*@serverless.*/']; break; case 'essEnv': - grepArgs = ['--grep', '/^(?!.*@brokenInEss).*@ess.*/']; + grepArgs = ['--grep', '/^(?!.*@skipInEss).*@ess.*/']; + break; + + case 'qaPeriodicEnv': + grepArgs = ['--grep', '/^(?!.*@skipInServerless|.*@skipInServerlessMKI).*@serverless.*/']; break; case 'qaEnv': - grepArgs = ['--grep', '/^(?!.*@brokenInServerless|.*@skipInQA).*@serverless.*/']; + grepArgs = ['--grep', '/^(?!.*@skipInServerless|.*@skipInServerlessMKI).*@serverlessQA.*/']; break; default: diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/add_actions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/add_actions.ts index 442385ed5e2f7..335fad4c7acee 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/add_actions.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/add_actions.ts @@ -21,7 +21,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess add_actions', () => { + describe('@serverless @serverlessQA @ess add_actions', () => { describe('adding actions', () => { beforeEach(async () => { await es.indices.delete({ index: 'logs-test', ignore_unavailable: true }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/check_privileges.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/check_privileges.ts index fb120059f44be..966f92bbc4672 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/check_privileges.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/check_privileges.ts @@ -31,7 +31,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@ess @serverless @brokenInServerless check_privileges', () => { + describe('@ess @serverless @skipInServerless check_privileges', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); await esArchiver.load('x-pack/test/functional/es_archives/security_solution/alias'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/update_actions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/update_actions.ts index abbb039793bf3..40a967c068a00 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/update_actions.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/update_actions.ts @@ -147,7 +147,8 @@ export default ({ getService }: FtrProviderContext) => { expect(body?.execution_summary?.last_execution?.status).toBe('succeeded'); }); - it('@skipInQA expects an updated rule with a webhook action and meta field runs successfully', async () => { + // Broken in MKI environment, needs triage + it('@skipInServerlessMKI expects an updated rule with a webhook action and meta field runs successfully', async () => { const webhookAction = await createWebHookRuleAction(supertest); await supertest @@ -187,7 +188,8 @@ export default ({ getService }: FtrProviderContext) => { expect(body?.execution_summary?.last_execution?.status).toBe('succeeded'); }); - it('@skipInQA adds a webhook to an immutable rule', async () => { + // Broken in MKI environment, needs triage + it('@skipInServerlessMKI adds a webhook to an immutable rule', async () => { const immutableRule = await getImmutableRule(); const webhookAction = await createWebHookRuleAction(supertest); const ruleAction = { @@ -210,7 +212,8 @@ export default ({ getService }: FtrProviderContext) => { expect(updatedRule.throttle).toEqual(immutableRule.throttle); }); - it('@skipInQA should be able to create a new webhook action, attach it to an immutable rule and the count of prepackaged rules should not increase. If this fails, suspect the immutable tags are not staying on the rule correctly.', async () => { + // Broken in MKI environment, needs triage + it('@skipInServerlessMKI should be able to create a new webhook action, attach it to an immutable rule and the count of prepackaged rules should not increase. If this fails, suspect the immutable tags are not staying on the rule correctly.', async () => { const immutableRule = await getImmutableRule(); const hookAction = await createWebHookRuleAction(supertest); const ruleToUpdate = getRuleWithWebHookAction( @@ -224,7 +227,8 @@ export default ({ getService }: FtrProviderContext) => { expect(status.rules_not_installed).toBe(0); }); - it('@skipInQA should be able to create a new webhook action, attach it to an immutable rule and the rule should stay immutable when searching against immutable tags', async () => { + // Broken in MKI environment, needs triage + it('@skipInServerlessMKI should be able to create a new webhook action, attach it to an immutable rule and the rule should stay immutable when searching against immutable tags', async () => { const immutableRule = await getImmutableRule(); const webhookAction = await createWebHookRuleAction(supertest); const ruleAction = { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/field_aliases.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/field_aliases.ts index cc37d7396cc0f..b6c6d265c14da 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/field_aliases.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/field_aliases.ts @@ -29,7 +29,7 @@ export default ({ getService }: FtrProviderContext) => { name: string; } - describe('@ess @serverless Tests involving aliases of source indexes and the alerts index', () => { + describe('@ess @serverless @serverlessQA Tests involving aliases of source indexes and the alerts index', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/security_solution/alias'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/query_alerts.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/query_alerts.ts index 5dcc78486ebdc..95764a6894fd4 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/query_alerts.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/query_alerts.ts @@ -34,7 +34,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@ess @serverless query_signals_route and find_alerts_route', () => { + describe('@ess @serverless @serverlessQA query_signals_route and find_alerts_route', () => { describe('validation checks', () => { it('should not give errors when querying and the alerts index does exist and is empty', async () => { await createAlertsIndex(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/set_alert_tags.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/set_alert_tags.ts index 305d57ace71eb..25ed0c62d0d58 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/set_alert_tags.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/set_alert_tags.ts @@ -40,8 +40,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const path = dataPathBuilder.getPath('auditbeat/hosts'); - // Intentionally setting as @skipInQA, keeping tests running in MKI that should block release - describe('@ess @serverless @skipInQA set_alert_tags', () => { + describe('@ess @serverless set_alert_tags', () => { describe('validation checks', () => { it('should give errors when no alert ids are provided', async () => { const { body } = await supertest diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments.ts index 69538dfb6c1ca..4e4ecb21ca157 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments.ts @@ -39,8 +39,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const path = dataPathBuilder.getPath('auditbeat/hosts'); - // Intentionally setting as @skipInQA, keeping tests running in MKI that should block release - describe('@ess @serverless @skipInQA Alert User Assignment - ESS & Serverless', () => { + describe('@ess @serverless Alert User Assignment - ESS & Serverless', () => { describe('validation checks', () => { it('should give errors when no alert ids are provided', async () => { const { body } = await supertest diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments_serverless.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments_serverless.ts index 48c9e5f065800..7064f27cfd3bd 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments_serverless.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/assignments/assignments_serverless.ts @@ -33,8 +33,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const path = dataPathBuilder.getPath('auditbeat/hosts'); - // Intentionally setting as @skipInQA, keeping tests running in MKI that should block release - describe('@serverless @skipInQA Alert User Assignment - Serverless', () => { + describe('@serverless Alert User Assignment - Serverless', () => { before(async () => { await esArchiver.load(path); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/document_level_security.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/document_level_security.ts index 32177044f8486..5c2f0333c4a0e 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/document_level_security.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/document_level_security.ts @@ -74,7 +74,7 @@ export default ({ getService }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); const security = getService('security'); - describe('@ess @serverless @brokenInServerless find alert with/without doc level security', () => { + describe('@ess @serverless @skipInServerless find alert with/without doc level security', () => { before(async () => { await security.role.create( roleToAccessSecuritySolution.name, diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/date.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/date.ts index 9c3a3afa52d68..7a911995da977 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/date.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/date.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type date', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type date', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/date'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/double.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/double.ts index 6b4ecfab9024e..3c4b21f8ee3d5 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/double.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/double.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type double', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type double', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/double'); await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/double_as_string'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/float.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/float.ts index 16408aba28834..5e42ee8a56c4d 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/float.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/float.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type float', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type float', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/float'); await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/float_as_string'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/integer.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/integer.ts index fd5b2e6fd9bcb..e728cfc98ee83 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/integer.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/date_numeric_types/basic_license_essentials_tier/integer.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type integer', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type integer', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/integer'); await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/integer_as_string'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip.ts index cdffe6d65aa23..31924284e79ed 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type ip', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type ip', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/ip'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip_array.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip_array.ts index 398e5d5f13573..cd67498c421c9 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip_array.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/ips/basic_license_essentials_tier/ip_array.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type ip', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type ip', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/ip_as_array'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword.ts index f8272e6bf4b0b..4db39a1230ad3 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type keyword', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type keyword', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/keyword'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword_array.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword_array.ts index 6d8da5cd51159..c4d50860ea5c2 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword_array.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/keyword/basic_license_essentials_tier/keyword_array.ts @@ -33,7 +33,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type keyword', () => { + describe('@serverles @serverlessQA @ess Rule exception operators for data type keyword', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/keyword_as_array'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/long/basic_license_essentials_tier/long.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/long/basic_license_essentials_tier/long.ts index 4acbd385bde43..947303c0c3f7a 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/long/basic_license_essentials_tier/long.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/long/basic_license_essentials_tier/long.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type long', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type long', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/long'); await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/long_as_string'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text.ts index d8c44b3fc5e91..8442106dcf6d6 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text.ts @@ -33,7 +33,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type text', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type text', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/text'); await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/text_no_spaces'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text_array.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text_array.ts index 674d24e6231f1..bfc528cf6ad6b 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text_array.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/operators_data_types/text/basic_license_essentials_tier/text_array.ts @@ -32,7 +32,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess Rule exception operators for data type text', () => { + describe('@serverless @serverlessQA @ess Rule exception operators for data type text', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_exceptions/text_as_array'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_endpoint_exceptions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_endpoint_exceptions.ts index 8850976d1cf53..728d5328a9174 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_endpoint_exceptions.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_endpoint_exceptions.ts @@ -74,7 +74,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess create_endpoint_exceptions', () => { + describe('@serverless @serverlessQA @ess create_endpoint_exceptions', () => { before(async () => { await esArchiver.load( 'x-pack/test/functional/es_archives/rule_exceptions/endpoint_without_host_type' diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_rule_exceptions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_rule_exceptions.ts index e65914d7f4193..21147663a630d 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_rule_exceptions.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/create_rule_exceptions.ts @@ -48,7 +48,7 @@ export default ({ getService }: FtrProviderContext) => { const config = getService('config'); const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); - describe('@serverless @ess create "rule_default" exceptions', () => { + describe('@serverless @serverlessQA @ess create "rule_default" exceptions', () => { before(async () => { await createAlertsIndex(supertest, log); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts index e4431967bf439..5af48e8216c3c 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts @@ -26,8 +26,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const supertestWithoutAuth = getService('supertestWithoutAuth'); - // @skipInQA purposefully - only running tests in MKI whose failure should block release - describe('@serverless @skipInQA exception item comments - serverless specific behavior', () => { + describe('@serverless exception item comments - serverless specific behavior', () => { describe('Rule Exceptions', () => { afterEach(async () => { await deleteAllExceptions(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exceptions_data_integrity.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exceptions_data_integrity.ts index 8aac6a504d52e..fe88000c9df1d 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exceptions_data_integrity.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exceptions_data_integrity.ts @@ -37,8 +37,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - // @skipInQA purposefully - only running tests in MKI whose failure should block release - describe('@serverless @ess @skipInQA exceptions data integrity', () => { + describe('@serverless @ess exceptions data integrity', () => { afterEach(async () => { await deleteAllAlerts(supertest, log, es); await deleteAllRules(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/find_rule_exception_references.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/find_rule_exception_references.ts index e8f8a5bab1981..9df4347efe7bf 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/find_rule_exception_references.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/find_rule_exception_references.ts @@ -36,7 +36,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@serverless @ess find_rule_exception_references', () => { + describe('@serverless @serverlessQA @ess find_rule_exception_references', () => { before(async () => { await createAlertsIndex(supertest, log); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/prebuilt_rules.ts index 0eb674d148727..7ce1ec3bd5a3f 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/prebuilt_rules.ts @@ -37,8 +37,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - // @skipInQA purposefully - only running tests in MKI whose failure should block release - describe('@serverless @ess @skipInQA exceptions workflows for prebuilt rules', () => { + describe('@serverless @ess exceptions workflows for prebuilt rules', () => { describe('creating rules with exceptions', () => { beforeEach(async () => { await createAlertsIndex(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/rule_exceptions_execution.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/rule_exceptions_execution.ts index 4c24d025ce76f..550bb16d1dfe8 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/rule_exceptions_execution.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/rule_exceptions_execution.ts @@ -58,7 +58,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const path = dataPathBuilder.getPath('auditbeat/hosts'); - describe('@serverless @ess rule exceptions execution', () => { + describe('@serverless @serverlessQA @ess rule exceptions execution', () => { before(async () => { await esArchiver.load(path); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/eql.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/eql.ts index a9e87e3018508..8222fd2640bea 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/eql.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/eql.ts @@ -77,7 +77,7 @@ export default ({ getService }: FtrProviderContext) => { const auditPath = dataPathBuilder.getPath('auditbeat/hosts'); // FLAKY: https://github.com/elastic/kibana/issues/180641 - describe.skip('@ess @serverless EQL type rules', () => { + describe.skip('@ess @serverless @serverlessQA EQL type rules', () => { const { indexListOfDocuments } = dataGeneratorFactory({ es, index: 'ecs_compliant', diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/machine_learning.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/machine_learning.ts index a822fb5f82b96..a9763445e9bf5 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/machine_learning.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/machine_learning.ts @@ -87,7 +87,7 @@ export default ({ getService }: FtrProviderContext) => { }; // FLAKY: https://github.com/elastic/kibana/issues/171426 - describe.skip('@ess @serverless Machine learning type rules', () => { + describe.skip('@ess @serverless @serverlessQA Machine learning type rules', () => { before(async () => { // Order is critical here: auditbeat data must be loaded before attempting to start the ML job, // as the job looks for certain indices on start @@ -214,7 +214,7 @@ export default ({ getService }: FtrProviderContext) => { expect(metricsResponse.metrics?.task_run?.value.by_type['alerting:siem__mlRule']).toEqual(1); }); - it('@skipInQA generates max alerts warning when circuit breaker is exceeded', async () => { + it('@skipInServerlessMKI generates max alerts warning when circuit breaker is exceeded', async () => { const { logs } = await previewRule({ supertest, rule: { ...rule, anomaly_threshold: 1, max_signals: 5 }, // This threshold generates 10 alerts with the current esArchive @@ -230,7 +230,7 @@ export default ({ getService }: FtrProviderContext) => { expect(logs[0].warnings).not.toContain(getMaxAlertsWarning()); }); - it('@skipInQA should create 7 alerts from ML rule when records meet anomaly_threshold', async () => { + it('@skipInServerlessMKI should create 7 alerts from ML rule when records meet anomaly_threshold', async () => { const { previewId } = await previewRule({ supertest, rule: { ...rule, anomaly_threshold: 20 }, @@ -309,7 +309,7 @@ export default ({ getService }: FtrProviderContext) => { await esArchiver.unload('x-pack/test/functional/es_archives/entity/risks'); }); - it('@skipInQA should be enriched with host risk score', async () => { + it('@skipInServerlessMKI should be enriched with host risk score', async () => { const { previewId } = await previewRule({ supertest, rule }); const previewAlerts = await getPreviewAlerts({ es, previewId }); expect(previewAlerts.length).toBe(1); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms.ts index f87595c0d7bb4..d6f464b63d78d 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms.ts @@ -81,7 +81,7 @@ export default ({ getService }: FtrProviderContext) => { }; // Failing: See https://github.com/elastic/kibana/issues/180236 - describe.skip('@ess @serverless New terms type rules', () => { + describe.skip('@ess @serverless @serverlessQA New terms type rules', () => { before(async () => { await esArchiver.load(path); await esArchiver.load('x-pack/test/functional/es_archives/security_solution/new_terms'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms_alert_suppression.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms_alert_suppression.ts index 654781617f097..863a107af8ab5 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms_alert_suppression.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/new_terms_alert_suppression.ts @@ -55,7 +55,7 @@ export default ({ getService }: FtrProviderContext) => { const historicalWindowStart = '2019-10-13T05:00:04.000Z'; - describe('@ess @serverless New terms type rules, alert suppression', () => { + describe('@ess @serverless @serverlessQA New terms type rules, alert suppression', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/security_solution/ecs_compliant'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/non_ecs_fields.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/non_ecs_fields.ts index bdd3a53914fcf..c5b04cd202d24 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/non_ecs_fields.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/non_ecs_fields.ts @@ -58,7 +58,7 @@ export default ({ getService }: FtrProviderContext) => { }; }; - describe('@ess @serverless Non ECS fields in alert document source', () => { + describe('@ess @serverless @serverlessQA Non ECS fields in alert document source', () => { before(async () => { await esArchiver.load( 'x-pack/test/functional/es_archives/security_solution/ecs_non_compliant' diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/query.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/query.ts index dd9c0dc624035..a3ff1cf2909ff 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/query.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/query.ts @@ -98,7 +98,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const auditbeatPath = dataPathBuilder.getPath('auditbeat/hosts'); - describe('@ess @serverless Query type rules', () => { + describe('@ess @serverless @serverlessQA Query type rules', () => { before(async () => { await esArchiver.load(auditbeatPath); await esArchiver.load('x-pack/test/functional/es_archives/security_solution/alerts/8.8.0', { @@ -2373,7 +2373,7 @@ export default ({ getService }: FtrProviderContext) => { }); // TODO: Ask YARA - describe('@brokenInServerless legacy investigation_fields', () => { + describe('@skipInServerless legacy investigation_fields', () => { let ruleWithLegacyInvestigationField: Rule; beforeEach(async () => { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/saved_query.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/saved_query.ts index 5afbee73fa727..8e88222c9653b 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/saved_query.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/saved_query.ts @@ -43,7 +43,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const path = dataPathBuilder.getPath('auditbeat/hosts'); - describe('@ess @serverless Saved query type rules', () => { + describe('@ess @serverless @serverlessQA Saved query type rules', () => { before(async () => { await esArchiver.load(path); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match.ts index 5514f7848b461..588ac2d3ec46b 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match.ts @@ -171,7 +171,8 @@ export default ({ getService }: FtrProviderContext) => { /** * Specific api integration tests for threat matching rule type */ - describe('@ess @serverless Threat match type rules', () => { + // FLAKY: https://github.com/elastic/kibana/issues/155304 + describe('@ess @serverless @serverlessQA Threat match type rules', () => { before(async () => { await esArchiver.load(audibeatHostsPath); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match_alert_suppression.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match_alert_suppression.ts index 84e6ce0469367..c0b8e85ec27af 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match_alert_suppression.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threat_match_alert_suppression.ts @@ -157,7 +157,7 @@ export default ({ getService }: FtrProviderContext) => { }, ]; - describe('@ess @serverless Indicator match type rules, alert suppression', () => { + describe('@ess @serverless @serverlessQA Indicator match type rules, alert suppression', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/security_solution/ecs_compliant'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold.ts index 97f1bcaf50c00..98e96dc262841 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold.ts @@ -47,7 +47,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const path = dataPathBuilder.getPath('auditbeat/hosts'); - describe('@ess @serverless Threshold type rules', () => { + describe('@ess @serverless @serverlessQA Threshold type rules', () => { before(async () => { await esArchiver.load(path); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold_alert_suppression.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold_alert_suppression.ts index 11b38b71599df..53b03edba30df 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold_alert_suppression.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/execution_logic/threshold_alert_suppression.ts @@ -49,7 +49,7 @@ export default ({ getService }: FtrProviderContext) => { const dataPathBuilder = new EsArchivePathBuilder(isServerless); const path = dataPathBuilder.getPath('auditbeat/hosts'); - describe('@ess @serverless Threshold type rules, alert suppression', () => { + describe('@ess @serverless @serverlessQA Threshold type rules, alert suppression', () => { const { indexListOfDocuments, indexGeneratedDocuments } = dataGeneratorFactory({ es, index: 'ecs_compliant', diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/ignore_fields.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/ignore_fields.ts index 3e3cf7eac685f..205570fdd96c3 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/ignore_fields.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/ignore_fields.ts @@ -46,7 +46,7 @@ export default ({ getService }: FtrProviderContext): void => { * server/lib/detection_engine/signals/source_fields_merging/utils/is_ignored.ts * server/lib/detection_engine/signals/source_fields_merging/utils/is_eql_bug_77152.ts */ - describe('@ess @serverless ignore_fields', () => { + describe('@ess @serverless @serverlessQA ignore_fields', () => { const supertest = getService('supertest'); const esArchiver = getService('esArchiver'); const log = getService('log'); @@ -69,7 +69,7 @@ export default ({ getService }: FtrProviderContext): void => { await deleteAllRules(supertest, log); }); - it('@skipInQA should ignore the field of "testing_ignored"', async () => { + it('@skipInServerlessMKI should ignore the field of "testing_ignored"', async () => { const rule = getEqlRuleForAlertTesting(['ignore_fields']); const { id } = await createRule(supertest, log, rule); @@ -84,7 +84,7 @@ export default ({ getService }: FtrProviderContext): void => { expect(hits).to.eql([undefined, undefined, undefined, undefined]); }); - it('@skipInQA should ignore the field of "testing_regex"', async () => { + it('@skipInServerlessMKI should ignore the field of "testing_regex"', async () => { const rule = getEqlRuleForAlertTesting(['ignore_fields']); const { id } = await createRule(supertest, log, rule); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/const_keyword.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/const_keyword.ts index fca298744b69c..b3464827bd5dd 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/const_keyword.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/const_keyword.ts @@ -31,7 +31,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@ess @serverless Rule detects against a keyword of event.dataset', () => { + describe('@ess @serverless @serverlessQA Rule detects against a keyword of event.dataset', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_keyword_family/const_keyword'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword.ts index ddab1e5a1a44b..9afade19216a1 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword.ts @@ -50,7 +50,7 @@ export default ({ getService }: FtrProviderContext) => { await deleteAllRules(supertest, log); }); - describe('@ess @serverless "kql" rule type', () => { + describe('@ess @serverless @serverlessQA "kql" rule type', () => { it('should detect the "dataset_name_1" from "event.dataset"', async () => { const rule: QueryRuleCreateProps = { ...getRuleForAlertTesting(['keyword']), diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword_mixed_with_const.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword_mixed_with_const.ts index 4844aadb76a27..c71bf14abb644 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword_mixed_with_const.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/keyword_family/keyword_mixed_with_const.ts @@ -31,7 +31,7 @@ export default ({ getService }: FtrProviderContext) => { const log = getService('log'); const es = getService('es'); - describe('@ess @serverless Rule detects against a keyword and constant_keyword of event.dataset', () => { + describe('@ess @serverless @serverlessQA Rule detects against a keyword and constant_keyword of event.dataset', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/rule_keyword_family/const_keyword'); await esArchiver.load('x-pack/test/functional/es_archives/rule_keyword_family/keyword'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/runtime.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/runtime.ts index 47e0a0ab3ff9c..439f876921da1 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/runtime.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/runtime.ts @@ -31,7 +31,7 @@ export default ({ getService }: FtrProviderContext) => { hostname: string; } - describe('@ess @serverless Tests involving runtime fields of source indexes and the alerts index', () => { + describe('@ess @serverless @serverlessQA Tests involving runtime fields of source indexes and the alerts index', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/security_solution/runtime'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/timestamps.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/timestamps.ts index 108066830c636..8101de2a1e4d3 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/timestamps.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/timestamps.ts @@ -44,7 +44,7 @@ export default ({ getService }: FtrProviderContext) => { * the "signal.original_time" field, ensuring that timestamp overrides operate, and ensuring that * partial errors happen correctly */ - describe('@ess @serverless timestamp tests', () => { + describe('@ess @serverless @serverlessQA timestamp tests', () => { describe('alerts generated from events with a timestamp in seconds is converted correctly into the forced ISO8601 format when copying', () => { beforeEach(async () => { await createAlertsIndex(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/install_latest_bundled_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/install_latest_bundled_prebuilt_rules.ts index 5e147ee2b711b..52386aaa6d016 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/install_latest_bundled_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/install_latest_bundled_prebuilt_rules.ts @@ -31,7 +31,7 @@ export default ({ getService }: FtrProviderContext): void => { /* from a package that was bundled with Kibana */ // // FLAKY: https://github.com/elastic/kibana/issues/180087 - describe.skip('@ess @serverless @skipInQA install_bundled_prebuilt_rules', () => { + describe.skip('@ess @serverless @skipInServerlessMKI install_bundled_prebuilt_rules', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllPrebuiltRuleAssets(es, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/prerelease_packages.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/prerelease_packages.ts index b0e7269a386e0..edae7dd4eb014 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/prerelease_packages.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/bundled_prebuilt_rules_package/trial_license_complete_tier/prerelease_packages.ts @@ -31,7 +31,7 @@ export default ({ getService }: FtrProviderContext): void => { /* (We use high mock version numbers to prevent clashes with real packages downloaded in other tests.) /* To do assertions on which packages have been installed, 99.0.0 has a single rule to install, /* while 99.0.1-beta.1 has 2 rules to install. Also, both packages have the version as part of the rule names. */ - describe('@ess @serverless @skipInQA prerelease_packages', () => { + describe('@ess @serverless @skipInServerlessMKI prerelease_packages', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllPrebuiltRuleAssets(es, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/large_prebuilt_rules_package/trial_license_complete_tier/install_large_prebuilt_rules_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/large_prebuilt_rules_package/trial_license_complete_tier/install_large_prebuilt_rules_package.ts index b34aae0b97a56..b172c11ea2eed 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/large_prebuilt_rules_package/trial_license_complete_tier/install_large_prebuilt_rules_package.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/large_prebuilt_rules_package/trial_license_complete_tier/install_large_prebuilt_rules_package.ts @@ -18,7 +18,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @serverless @skipInQA install_large_prebuilt_rules_package', () => { + describe('@ess @serverless @skipInServerlessMKI install_large_prebuilt_rules_package', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllPrebuiltRuleAssets(es, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/fleet_integration.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/fleet_integration.ts index 37c38e25397ae..cb317870d3773 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/fleet_integration.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/fleet_integration.ts @@ -22,7 +22,7 @@ export default ({ getService }: FtrProviderContext): void => { const log = getService('log'); const retry = getService('retry'); - describe('@ess @serverless @skipInQA install_prebuilt_rules_from_real_package', () => { + describe('@ess @serverless @skipInServerlessMKI install_prebuilt_rules_from_real_package', () => { beforeEach(async () => { await deletePrebuiltRulesFleetPackage(supertest); await deleteAllRules(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_rules_status.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_rules_status.ts index 5ae15cd6fc3a1..3c5806688cd61 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_rules_status.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_rules_status.ts @@ -30,7 +30,7 @@ export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const log = getService('log'); - describe('@ess @serverless @skipInQA Prebuilt Rules status', () => { + describe('@ess @serverless @skipInServerlessMKI Prebuilt Rules status', () => { describe('get_prebuilt_rules_status', () => { beforeEach(async () => { await deleteAllPrebuiltRuleAssets(es, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_timelines_status.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_timelines_status.ts index f0311154a900b..d7f368d7f69a9 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_timelines_status.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/get_prebuilt_timelines_status.ts @@ -18,7 +18,7 @@ export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const log = getService('log'); - describe('@ess @serverless @skipInQA get_prebuilt_timelines_status', () => { + describe('@ess @serverless @skipInServerlessMKI get_prebuilt_timelines_status', () => { beforeEach(async () => { await deleteAllTimelines(es, log); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules.ts index d9a99d50228d5..a96f88101d006 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules.ts @@ -24,7 +24,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @serverless @skipInQA install prebuilt rules from package without historical versions with mock rule assets', () => { + describe('@ess @serverless @skipInServerlessMKI install prebuilt rules from package without historical versions with mock rule assets', () => { const getRuleAssetSavedObjects = () => [ createRuleAssetSavedObject({ rule_id: 'rule-1', version: 1 }), createRuleAssetSavedObject({ rule_id: 'rule-2', version: 2 }), diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules_with_historical_versions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules_with_historical_versions.ts index 8b8b06f6b1519..21e546ff91bdc 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules_with_historical_versions.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/install_prebuilt_rules_with_historical_versions.ts @@ -24,7 +24,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @serverless @skipInQA install prebuilt rules from package with historical versions with mock rule assets', () => { + describe('@ess @serverless @skipInServerlessMKI install prebuilt rules from package with historical versions with mock rule assets', () => { const getRuleAssetSavedObjects = () => [ createRuleAssetSavedObject({ rule_id: 'rule-1', version: 1 }), createRuleAssetSavedObject({ rule_id: 'rule-1', version: 2 }), diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules.ts index 73204855bcbf8..cd336f91fae13 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules.ts @@ -27,7 +27,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @serverless @skipInQA upgrade prebuilt rules from package without historical versions with mock rule assets', () => { + describe('@ess @serverless @skipInServerlessMKI upgrade prebuilt rules from package without historical versions with mock rule assets', () => { const getRuleAssetSavedObjects = () => [ createRuleAssetSavedObject({ rule_id: 'rule-1', version: 1 }), createRuleAssetSavedObject({ rule_id: 'rule-2', version: 2 }), diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules_with_historical_versions.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules_with_historical_versions.ts index 4137e2a9a194f..049ae3a5a6fd8 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules_with_historical_versions.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/upgrade_prebuilt_rules_with_historical_versions.ts @@ -24,7 +24,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @serverless @skipInQA upgrade prebuilt rules from package with historical versions with mock rule assets', () => { + describe('@ess @serverless @skipInServerlessMKI upgrade prebuilt rules from package with historical versions with mock rule assets', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllTimelines(es, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/update_prebuilt_rules_package/trial_license_complete_tier/update_prebuilt_rules_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/update_prebuilt_rules_package/trial_license_complete_tier/update_prebuilt_rules_package.ts index 98264cada6976..8e26b089a9f80 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/update_prebuilt_rules_package/trial_license_complete_tier/update_prebuilt_rules_package.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/update_prebuilt_rules_package/trial_license_complete_tier/update_prebuilt_rules_package.ts @@ -62,7 +62,7 @@ export default ({ getService }: FtrProviderContext): void => { return getPackageResponse.body.item.version ?? ''; }; - describe('@ess @serverless @skipInQA update_prebuilt_rules_package', () => { + describe('@ess @serverless @skipInServerlessMKI update_prebuilt_rules_package', () => { before(async () => { const configFilePath = path.resolve(REPO_ROOT, 'fleet_packages.json'); const fleetPackages = await fs.readFile(configFilePath, 'utf8'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action.ts index 747426e0c0587..8b59070202b08 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action.ts @@ -85,7 +85,7 @@ export default ({ getService }: FtrProviderContext): void => { const createWebHookConnector = () => createConnector(getWebHookAction()); const createSlackConnector = () => createConnector(getSlackAction()); - describe('@ess @serverless @brokenInServerless @skipInQA perform_bulk_action', () => { + describe('@ess @serverless @skipInServerless perform_bulk_action', () => { beforeEach(async () => { await createAlertsIndex(supertest, log); await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_dry_run.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_dry_run.ts index 29e3cad3f0ab4..149af89f6a72a 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_dry_run.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_bulk_actions/trial_license_complete_tier/perform_bulk_action_dry_run.ts @@ -24,7 +24,7 @@ export default ({ getService }: FtrProviderContext): void => { const log = getService('log'); const es = getService('es'); - describe('@ess @serverless @skipInQA perform_bulk_action dry_run', () => { + describe('@ess @serverless @skipInServerlessMKI perform_bulk_action dry_run', () => { beforeEach(async () => { await createAlertsIndex(supertest, log); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules.ts index e7967df45b5f9..319a4a20c9c96 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules.ts @@ -346,7 +346,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless t1_analyst', () => { + describe('@skipInServerless t1_analyst', () => { const role = ROLES.t1_analyst; beforeEach(async () => { @@ -482,7 +482,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless missing timestamps', () => { + describe('@skipInServerless missing timestamps', () => { beforeEach(async () => { await es.indices.delete({ index: 'myfakeindex-1', ignore_unavailable: true }); await es.indices.create({ @@ -561,7 +561,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless per-action frequencies', () => { + describe('@skipInServerless per-action frequencies', () => { beforeEach(async () => { await deleteAllAlerts(supertest, log, es); await deleteAllRules(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules_bulk.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules_bulk.ts index c762487b8f278..282ffcf327dee 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules_bulk.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/create_rules_bulk.ts @@ -45,7 +45,7 @@ export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); // See https://github.com/elastic/kibana/issues/130963 for discussion on deprecation - describe('@ess @brokenInServerless @skipInQA create_rules_bulk', () => { + describe('@ess @skipInServerless create_rules_bulk', () => { describe('deprecations', () => { afterEach(async () => { await deleteAllRules(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/preview_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/preview_rules.ts index 43a04eef3cb69..02474fdb91d24 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/preview_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_creation/trial_license_complete_tier/preview_rules.ts @@ -95,7 +95,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless t1_analyst', () => { + describe('@skipInServerless t1_analyst', () => { const role = ROLES.t1_analyst; beforeEach(async () => { @@ -116,7 +116,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless hunter', () => { + describe('@skipInServerless hunter', () => { const role = ROLES.hunter; beforeEach(async () => { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_delete/trial_license_complete_tier/delete_rules_bulk.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_delete/trial_license_complete_tier/delete_rules_bulk.ts index a606f286ff1d7..cd4deb8cff7d8 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_delete/trial_license_complete_tier/delete_rules_bulk.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_delete/trial_license_complete_tier/delete_rules_bulk.ts @@ -40,7 +40,7 @@ export default ({ getService }: FtrProviderContext): void => { const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); // See https://github.com/elastic/kibana/issues/130963 for discussion on deprecation - describe('@ess @brokenInServerless @skipInQA delete_rules_bulk', () => { + describe('@ess @skipInServerlesMKI delete_rules_bulk', () => { describe('deprecations', () => { it('should return a warning header', async () => { await createRule(supertest, log, getSimpleRule()); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/basic_license_essentials_tier/import_rules_with_overwrite.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/basic_license_essentials_tier/import_rules_with_overwrite.ts index 3f2318208bb16..c58f20a84db8f 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/basic_license_essentials_tier/import_rules_with_overwrite.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/basic_license_essentials_tier/import_rules_with_overwrite.ts @@ -16,7 +16,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @serverless @skipInQA import_rules with rule overwrite set to "true"', () => { + describe('@ess @serverless @skipInServerlessMKI import_rules with rule overwrite set to "true"', () => { beforeEach(async () => { await deleteAllRules(supertest, log); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/export_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/export_rules.ts index 10421b88a9dde..788eb36dddcca 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/export_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/export_rules.ts @@ -27,7 +27,7 @@ export default ({ getService }: FtrProviderContext): void => { const log = getService('log'); const es = getService('es'); - describe('@ess @brokenInServerless @skipInQA export_rules', () => { + describe('@ess @skipInServerlessMKI export_rules', () => { describe('exporting rules', () => { beforeEach(async () => { await createAlertsIndex(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_connectors.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_connectors.ts index 60576ff5cabdf..5edaabf86c093 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_connectors.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_connectors.ts @@ -16,7 +16,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @brokenInServerless @skipInQA import action connectors', () => { + describe('@ess @skipInServerlessMKI import action connectors', () => { const CONNECTOR_ID = '1be16246-642a-4ed8-bfd3-b47f8c7d7055'; const ANOTHER_CONNECTOR_ID = 'abc16246-642a-4ed8-bfd3-b47f8c7d7055'; const CUSTOM_ACTION_CONNECTOR = { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules.ts index f47d90f5f4e83..b40b5b785ca53 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules.ts @@ -171,7 +171,7 @@ export default ({ getService }: FtrProviderContext): void => { const log = getService('log'); const esArchiver = getService('esArchiver'); - describe('@ess @brokenInServerless @skipInQA import_rules', () => { + describe('@ess @serverless @skipInServerlessMKI import_rules', () => { beforeEach(async () => { await deleteAllRules(supertest, log); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules_with_overwrite.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules_with_overwrite.ts index 3f2318208bb16..c58f20a84db8f 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules_with_overwrite.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_import_export/trial_license_complete_tier/import_rules_with_overwrite.ts @@ -16,7 +16,7 @@ export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const log = getService('log'); - describe('@ess @serverless @skipInQA import_rules with rule overwrite set to "true"', () => { + describe('@ess @serverless @skipInServerlessMKI import_rules with rule overwrite set to "true"', () => { beforeEach(async () => { await deleteAllRules(supertest, log); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/basic_license_essentials_tier/patch_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/basic_license_essentials_tier/patch_rules.ts index f5b1364bc1afb..7abca99e6e052 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/basic_license_essentials_tier/patch_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/basic_license_essentials_tier/patch_rules.ts @@ -59,7 +59,7 @@ export default ({ getService }: FtrProviderContext) => { expect(bodyToCompare).to.eql(expectedRule); }); - it('@brokenInServerless should return a "403 forbidden" using a rule_id of type "machine learning"', async () => { + it('@skipInServerless should return a "403 forbidden" using a rule_id of type "machine learning"', async () => { await createRule(supertest, log, getSimpleRule('rule-1')); // patch a simple rule's type to machine learning diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules.ts index 24919448b8522..8256b7734463f 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules.ts @@ -47,7 +47,7 @@ export default ({ getService }: FtrProviderContext) => { const config = getService('config'); const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); - describe('@ess @serverless @skipInQA patch_rules', () => { + describe('@ess @serverless @skipInServerlessMKI patch_rules', () => { describe('patch rules', () => { beforeEach(async () => { await createAlertsIndex(supertest, log); @@ -422,7 +422,7 @@ export default ({ getService }: FtrProviderContext) => { describe('actions without frequencies', () => { [undefined, NOTIFICATION_THROTTLE_NO_ACTIONS, NOTIFICATION_THROTTLE_RULE].forEach( (throttle) => { - it(`@brokenInServerless it sets each action's frequency attribute to default value when 'throttle' is ${throttle}`, async () => { + it(`@skipInServerless it sets each action's frequency attribute to default value when 'throttle' is ${throttle}`, async () => { const actionsWithoutFrequencies = await getActionsWithoutFrequencies(supertest); // create simple rule @@ -452,7 +452,7 @@ export default ({ getService }: FtrProviderContext) => { // Action throttle cannot be shorter than the schedule interval which is by default is 5m ['300s', '5m', '3h', '4d'].forEach((throttle) => { - it(`@brokenInServerless it correctly transforms 'throttle = ${throttle}' and sets it as a frequency of each action`, async () => { + it(`@skipInServerless it correctly transforms 'throttle = ${throttle}' and sets it as a frequency of each action`, async () => { const actionsWithoutFrequencies = await getActionsWithoutFrequencies(supertest); // create simple rule @@ -490,7 +490,7 @@ export default ({ getService }: FtrProviderContext) => { '10h', '2d', ].forEach((throttle) => { - it(`@brokenInServerless it does not change actions frequency attributes when 'throttle' is '${throttle}'`, async () => { + it(`@skipInServerless it does not change actions frequency attributes when 'throttle' is '${throttle}'`, async () => { const actionsWithFrequencies = await getActionsWithFrequencies(supertest); // create simple rule @@ -516,7 +516,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless some actions with frequencies', () => { + describe('@skipInServerless some actions with frequencies', () => { [undefined, NOTIFICATION_THROTTLE_NO_ACTIONS, NOTIFICATION_THROTTLE_RULE].forEach( (throttle) => { it(`it overrides each action's frequency attribute to default value when 'throttle' is ${throttle}`, async () => { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules_bulk.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules_bulk.ts index 984dbaec712c3..88ca9c4ffe289 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules_bulk.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_patch/trial_license_complete_tier/patch_rules_bulk.ts @@ -44,7 +44,7 @@ export default ({ getService }: FtrProviderContext) => { const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); // See https://github.com/elastic/kibana/issues/130963 for discussion on deprecation - describe('@ess @brokenInServerless @skipInQA patch_rules_bulk', () => { + describe('@ess @skipInServerless patch_rules_bulk', () => { describe('deprecations', () => { afterEach(async () => { await deleteAllRules(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_read/trial_license_complete_tier/read_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_read/trial_license_complete_tier/read_rules.ts index c8a76f58dbccd..2dc3e8168a24f 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_read/trial_license_complete_tier/read_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_read/trial_license_complete_tier/read_rules.ts @@ -108,7 +108,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless @skipInQA should be able to a read a execute immediately action correctly', async () => { + it('@skipInServerless should be able to a read a execute immediately action correctly', async () => { // create connector/action const { body: hookAction } = await supertest .post('/api/actions/action') @@ -150,7 +150,7 @@ export default ({ getService }: FtrProviderContext) => { expect(bodyToCompare).to.eql(ruleWithActions); }); - it('@brokenInServerless should be able to a read a scheduled action correctly', async () => { + it('@skipInServerless should be able to a read a scheduled action correctly', async () => { // create connector/action const { body: hookAction } = await supertest .post('/api/actions/action') diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/basic_license_essentials_tier/update_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/basic_license_essentials_tier/update_rules.ts index 2d787dd099cdb..301b4413805a9 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/basic_license_essentials_tier/update_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/basic_license_essentials_tier/update_rules.ts @@ -64,7 +64,7 @@ export default ({ getService }: FtrProviderContext) => { expect(bodyToCompare).to.eql(expectedRule); }); - it('@brokenInServerless should return a 403 forbidden if it is a machine learning job', async () => { + it('@skipInServerless should return a 403 forbidden if it is a machine learning job', async () => { await createRule(supertest, log, getSimpleRule('rule-1')); // update a simple rule's type to try to be a machine learning job type diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules.ts index 500eedb5bc2fd..d905c57aa4a2f 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules.ts @@ -50,7 +50,7 @@ export default ({ getService }: FtrProviderContext) => { const config = getService('config'); const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); - describe('@ess @serverless @skipInQA update_rules', () => { + describe('@ess @serverless @skipInServerlessMKI update_rules', () => { describe('update rules', () => { beforeEach(async () => { await createAlertsIndex(supertest, log); @@ -142,7 +142,7 @@ export default ({ getService }: FtrProviderContext) => { expect(bodyToCompare).to.eql(outputRule); }); - it('@brokenInServerless should update a single rule property and remove the action', async () => { + it('@skipInServerless should update a single rule property and remove the action', async () => { const [connector1] = await Promise.all([ supertest .post(`/api/actions/connector`) @@ -562,7 +562,7 @@ export default ({ getService }: FtrProviderContext) => { return removeServerGeneratedPropertiesIncludingRuleId(updatedRule); }; - describe('@brokenInServerless actions without frequencies', () => { + describe('@skipInServerless actions without frequencies', () => { [undefined, NOTIFICATION_THROTTLE_NO_ACTIONS, NOTIFICATION_THROTTLE_RULE].forEach( (throttle) => { it(`it sets each action's frequency attribute to default value when 'throttle' is ${throttle}`, async () => { @@ -623,7 +623,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless actions with frequencies', () => { + describe('@skipInServerless actions with frequencies', () => { [ undefined, NOTIFICATION_THROTTLE_NO_ACTIONS, @@ -658,7 +658,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless some actions with frequencies', () => { + describe('@skipInServerless some actions with frequencies', () => { [undefined, NOTIFICATION_THROTTLE_NO_ACTIONS, NOTIFICATION_THROTTLE_RULE].forEach( (throttle) => { it(`it overrides each action's frequency attribute to default value when 'throttle' is ${throttle}`, async () => { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules_bulk.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules_bulk.ts index 5c7f4db37a658..2dead22fd358a 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules_bulk.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/trial_license_complete_tier/update_rules_bulk.ts @@ -54,7 +54,7 @@ export default ({ getService }: FtrProviderContext) => { const ELASTICSEARCH_USERNAME = config.get('servers.kibana.username'); // See https://github.com/elastic/kibana/issues/130963 for discussion on deprecation - describe('@ess @brokenInServerless @skipInQA update_rules_bulk', () => { + describe('@ess update_rules_bulk', () => { describe('deprecations', () => { afterEach(async () => { await deleteAllRules(supertest, log); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/all_types.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/all_types.ts index 8ec7a4eeb56cd..db82ff8f6eca4 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/all_types.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/all_types.ts @@ -43,7 +43,7 @@ export default ({ getService }: FtrProviderContext) => { await deleteAllExceptions(supertest, log); }); - it('@skipInQA should only have task metric values when no rules are running', async () => { + it('@skipInServerlessMKI should only have task metric values when no rules are running', async () => { await retry.try(async () => { const stats = await getSecurityTelemetryStats(supertest, log); removeExtraFieldsFromTelemetryStats(stats); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/detection_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/detection_rules.ts index abfe92a4cec04..a6d19a2c2aaf3 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/detection_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/task_based/detection_rules.ts @@ -55,7 +55,7 @@ export default ({ getService }: FtrProviderContext) => { }); describe('custom rules should never show any detection_rules telemetry data for each list type', () => { - it('@skipInQA should NOT give telemetry/stats for an exception list of type "detection"', async () => { + it('@skipInServerlessMKI should NOT give telemetry/stats for an exception list of type "detection"', async () => { const rule = getRuleForAlertTesting(['telemetry'], 'rule-1', false); // create an exception list container of type "detection" @@ -111,7 +111,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@skipInQA should NOT give telemetry/stats for an exception list of type "endpoint"', async () => { + it('@skipInServerlessMKI should NOT give telemetry/stats for an exception list of type "endpoint"', async () => { const rule = getRuleForAlertTesting(['telemetry'], 'rule-1', false); // create an exception list container of type "detection" @@ -167,7 +167,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@skipInQA should NOT give telemetry/stats for an exception list of type "endpoint_trusted_apps"', async () => { + it('@skipInServerlessMKI should NOT give telemetry/stats for an exception list of type "endpoint_trusted_apps"', async () => { const rule = getRuleForAlertTesting(['telemetry'], 'rule-1', false); // create an exception list container of type "detection" @@ -223,7 +223,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@skipInQA should NOT give telemetry/stats for an exception list of type "endpoint_events"', async () => { + it('@skipInServerlessMKI should NOT give telemetry/stats for an exception list of type "endpoint_events"', async () => { const rule = getRuleForAlertTesting(['telemetry'], 'rule-1', false); // create an exception list container of type "detection" @@ -279,7 +279,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@skipInQA should NOT give telemetry/stats for an exception list of type "endpoint_host_isolation_exceptions"', async () => { + it('@skipInServerlessMKI should NOT give telemetry/stats for an exception list of type "endpoint_host_isolation_exceptions"', async () => { const rule = getRuleForAlertTesting(['telemetry'], 'rule-1', false); // create an exception list container of type "detection" @@ -336,7 +336,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@skipInQA pre-built/immutable/elastic rules should show detection_rules telemetry data for each list type', () => { + describe('@skipInServerlessMKI pre-built/immutable/elastic rules should show detection_rules telemetry data for each list type', () => { beforeEach(async () => { // install prepackaged rules to get immutable rules for testing await installMockPrebuiltRules(supertest, es); @@ -789,7 +789,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@skipInQA pre-built/immutable/elastic rules should show detection_rules telemetry data for multiple list items and types', () => { + describe('@skipInServerlessMKI pre-built/immutable/elastic rules should show detection_rules telemetry data for multiple list items and types', () => { beforeEach(async () => { // install prepackaged rules to get immutable rules for testing await installMockPrebuiltRules(supertest, es); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/all_types.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/all_types.ts index a3f893fff8aa9..bbc8280becfa4 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/all_types.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/all_types.ts @@ -24,7 +24,7 @@ export default ({ getService }: FtrProviderContext) => { const retry = getService('retry'); const es = getService('es'); - describe('@ess @serverless @skipInQA Detection rule telemetry', async () => { + describe('@ess @serverless @skipInServerlessMKI Detection rule telemetry', async () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/security_solution/telemetry'); }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rule_status.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rule_status.ts index 317956d5b7dcd..c7d587e487213 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rule_status.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rule_status.ts @@ -123,7 +123,7 @@ export default ({ getService }: FtrProviderContext) => { expect(stats?.detection_rules.detection_rule_usage).to.eql(expectedRuleUsage); }); - it('@skipInQA should have zero values for "detection_rule_status.all_rules" rules that are not query based', () => { + it('@skipInServerlessMKI should have zero values for "detection_rule_status.all_rules" rules that are not query based', () => { expect(stats?.detection_rules.detection_rule_status.all_rules.eql).to.eql( getInitialSingleEventMetric() ); @@ -175,7 +175,7 @@ export default ({ getService }: FtrProviderContext) => { ); }); - it('@skipInQA should have non zero values for "index_duration"', () => { + it('@skipInServerlessMKI should have non zero values for "index_duration"', () => { expect( stats?.detection_rules.detection_rule_status.custom_rules.query.index_duration.max ).to.be.above(1); @@ -208,11 +208,11 @@ export default ({ getService }: FtrProviderContext) => { ).to.be.above(1); }); - it('@skipInQA should have non zero values for "succeeded"', () => { + it('@skipInServerlessMKI should have non zero values for "succeeded"', () => { expect(stats?.detection_rules.detection_rule_status.custom_rules.query.succeeded).to.eql(1); }); - it('@skipInQA should have non zero values for "succeeded", "index_duration", "search_duration" and "enrichment_duration"', () => { + it('@skipInServerlessMKI should have non zero values for "succeeded", "index_duration", "search_duration" and "enrichment_duration"', () => { expect( stats?.detection_rules.detection_rule_status.custom_rules.query.index_duration.max ).to.be.above(1); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rules.ts index 2772b3ebde34e..d0f633707fa62 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/telemetry/trial_license_complete_tier/usage_collector/detection_rules.ts @@ -162,7 +162,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "notifications_enabled" to be "1" for rule that has at least "1" action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerless should show "notifications_enabled" to be "1" for rule that has at least "1" action(s) and the alert is "enabled"/"active"', async () => { const rule = getRuleForAlertTesting(['telemetry']); const hookAction = await createWebHookRuleAction(supertest); const ruleToCreate = getRuleWithWebHookAction(hookAction.id, true, rule); @@ -191,7 +191,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { + it('@skipInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { const rule = getRuleForAlertTesting(['telemetry'], 'rule-1', false); const { id } = await createRule(supertest, log, rule); const hookAction = await createWebHookRuleAction(supertest); @@ -217,7 +217,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { const rule = getRuleForAlertTesting(['telemetry']); const { id } = await createRule(supertest, log, rule); const hookAction = await createWebHookRuleAction(supertest); @@ -246,7 +246,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('@brokenInServerless legacy investigation fields', () => { + describe('@skipInServerless legacy investigation fields', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await createRuleThroughAlertingEndpoint( @@ -411,7 +411,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { + it('@skipInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { const rule = getEqlRuleForAlertTesting(['telemetry'], 'rule-1', false); const { id } = await createRule(supertest, log, rule); const hookAction = await createWebHookRuleAction(supertest); @@ -436,7 +436,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { const rule = getEqlRuleForAlertTesting(['telemetry']); const { id } = await createRule(supertest, log, rule); const hookAction = await createWebHookRuleAction(supertest); @@ -609,7 +609,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { + it('@skipInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { const rule: ThresholdRuleCreateProps = { ...getThresholdRuleForAlertTesting(['telemetry'], 'rule-1', false), threshold: { @@ -640,7 +640,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { const rule: ThresholdRuleCreateProps = { ...getThresholdRuleForAlertTesting(['telemetry']), threshold: { @@ -788,7 +788,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { + it('@skipInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { const rule = getSimpleMlRule(); const { id } = await createRule(supertest, log, rule); const hookAction = await createWebHookRuleAction(supertest); @@ -813,7 +813,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { const rule = getSimpleMlRule('rule-1', true); const { id } = await createRule(supertest, log, rule); const hookAction = await createWebHookRuleAction(supertest); @@ -988,7 +988,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { + it('@skipInServerless should show "legacy_notifications_disabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "disabled"/"in-active"', async () => { const rule = getSimpleThreatMatch(); const { id } = await createRule(supertest, log, rule); const hookAction = await createWebHookRuleAction(supertest); @@ -1013,7 +1013,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerless should show "legacy_notifications_enabled" to be "1" for rule that has at least "1" legacy action(s) and the alert is "enabled"/"active"', async () => { const rule: ThreatMatchRuleCreateProps = { ...getSimpleThreatMatch('rule-1', true), index: ['telemetry'], @@ -1059,7 +1059,7 @@ export default ({ getService }: FtrProviderContext) => { }); describe('"pre-packaged"/"immutable" rules', async () => { - it('@skipInQA should show stats for totals for in-active pre-packaged rules', async () => { + it('@skipInServerless should show stats for totals for in-active pre-packaged rules', async () => { await installMockPrebuiltRules(supertest, es); await retry.try(async () => { const stats = await getStats(supertest, log); @@ -1092,7 +1092,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@skipInQA should show stats for the detection_rule_details for a specific pre-packaged rule', async () => { + it('@skipInServerlessMKI should show stats for the detection_rule_details for a specific pre-packaged rule', async () => { await installMockPrebuiltRules(supertest, es); await retry.try(async () => { const stats = await getStats(supertest, log); @@ -1123,7 +1123,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@skipInQA should show "notifications_disabled" to be "1", "has_notification" to be "true, "has_legacy_notification" to be "false" for rule that has at least "1" action(s) and the alert is "disabled"/"in-active"', async () => { + it('@skipInServerlessMKI should show "notifications_disabled" to be "1", "has_notification" to be "true, "has_legacy_notification" to be "false" for rule that has at least "1" action(s) and the alert is "disabled"/"in-active"', async () => { await installMockPrebuiltRules(supertest, es); const immutableRule = await fetchRule(supertest, { ruleId: ELASTIC_SECURITY_RULE_ID }); const hookAction = await createWebHookRuleAction(supertest); @@ -1176,7 +1176,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@skipInQA should show "notifications_enabled" to be "1", "has_notification" to be "true, "has_legacy_notification" to be "false" for rule that has at least "1" action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerlessMKI should show "notifications_enabled" to be "1", "has_notification" to be "true, "has_legacy_notification" to be "false" for rule that has at least "1" action(s) and the alert is "enabled"/"active"', async () => { await installMockPrebuiltRules(supertest, es); const immutableRule = await fetchRule(supertest, { ruleId: ELASTIC_SECURITY_RULE_ID }); const hookAction = await createWebHookRuleAction(supertest); @@ -1229,7 +1229,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_disabled" to be "1", "has_notification" to be "false, "has_legacy_notification" to be "true" for rule that has at least "1" action(s) and the alert is "disabled"/"in-active"', async () => { + it('@skipInServerless should show "legacy_notifications_disabled" to be "1", "has_notification" to be "false, "has_legacy_notification" to be "true" for rule that has at least "1" action(s) and the alert is "disabled"/"in-active"', async () => { await installMockPrebuiltRules(supertest, es); const immutableRule = await fetchRule(supertest, { ruleId: ELASTIC_SECURITY_RULE_ID }); const hookAction = await createWebHookRuleAction(supertest); @@ -1282,7 +1282,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('@brokenInServerless should show "legacy_notifications_enabled" to be "1", "has_notification" to be "false, "has_legacy_notification" to be "true" for rule that has at least "1" action(s) and the alert is "enabled"/"active"', async () => { + it('@skipInServerless should show "legacy_notifications_enabled" to be "1", "has_notification" to be "false, "has_legacy_notification" to be "true" for rule that has at least "1" action(s) and the alert is "enabled"/"active"', async () => { await installMockPrebuiltRules(supertest, es); const immutableRule = await fetchRule(supertest, { ruleId: ELASTIC_SECURITY_RULE_ID }); const hookAction = await createWebHookRuleAction(supertest); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/user_roles/trial_license_complete_tier/read_privileges.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/user_roles/trial_license_complete_tier/read_privileges.ts index d13f4e2e4dd0a..7727958243823 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/user_roles/trial_license_complete_tier/read_privileges.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/user_roles/trial_license_complete_tier/read_privileges.ts @@ -20,7 +20,7 @@ export default ({ getService }: FtrProviderContext) => { const supertestWithoutAuth = getService('supertestWithoutAuth'); // Failing ES Promotion: https://github.com/elastic/kibana/issues/174028 - describe.skip('@ess @serverless @brokenInServerless read_privileges', () => { + describe.skip('@ess @serverless @skipInServerless read_privileges', () => { it('should return expected privileges for elastic admin', async () => { const { body } = await supertest.get(DETECTION_ENGINE_PRIVILEGES_URL).send().expect(200); expect(body).to.eql({ diff --git a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts index 207cd26a1563c..7f4a9714be640 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/asset_criticality.ts @@ -23,7 +23,7 @@ export default ({ getService }: FtrProviderContext) => { const supertest = getService('supertest'); const assetCriticalityRoutes = assetCriticalityRouteHelpersFactory(supertest); - describe('@ess @serverless @skipInQA asset_criticality Asset Criticality APIs', () => { + describe('@ess @serverless @skipInServerlessMKI asset_criticality Asset Criticality APIs', () => { beforeEach(async () => { await cleanRiskEngine({ kibanaServer, es, log }); await cleanAssetCriticality({ log, es }); diff --git a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts index 8461cae6d5edb..b575da1e4bbad 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/entity_analytics/risk_engine/trial_license_complete_tier/risk_scoring_task/task_execution.ts @@ -93,7 +93,7 @@ export default ({ getService }: FtrProviderContext): void => { await riskEngineRoutes.init(); }); - it('@skipInQA calculates and persists risk scores for alert documents', async () => { + it('@skipInServerlessMKI calculates and persists risk scores for alert documents', async () => { await waitForRiskScoresToBePresent({ es, log, scoreCount: 10 }); const scores = await readRiskScores(es); @@ -104,7 +104,7 @@ export default ({ getService }: FtrProviderContext): void => { ); }); - it('@skipInQA starts the latest transform', async () => { + it('@skipInServerlessMKI starts the latest transform', async () => { await waitForRiskScoresToBePresent({ es, log, scoreCount: 10 }); const transformStats = await es.transform.getTransformStats({ @@ -114,7 +114,7 @@ export default ({ getService }: FtrProviderContext): void => { expect(transformStats.transforms[0].state).to.eql('started'); }); - describe('@skipInQA disabling and re-enabling the risk engine', () => { + describe('@skipInServerlessMKI disabling and re-enabling the risk engine', () => { beforeEach(async () => { await waitForRiskScoresToBePresent({ es, log, scoreCount: 10 }); await riskEngineRoutes.disable(); @@ -136,7 +136,7 @@ export default ({ getService }: FtrProviderContext): void => { }); }); - describe('@skipInQA disabling the risk engine', () => { + describe('@skipInServerlessMKI disabling the risk engine', () => { beforeEach(async () => { await waitForRiskScoresToBePresent({ es, log, scoreCount: 10 }); }); @@ -213,7 +213,7 @@ export default ({ getService }: FtrProviderContext): void => { }); }); - it('@skipInQA calculates and persists risk scores for both types of entities', async () => { + it('@skipInServerlessMKI calculates and persists risk scores for both types of entities', async () => { await riskEngineRoutes.init(); await waitForRiskScoresToBePresent({ es, log, scoreCount: 20 }); const riskScores = await readRiskScores(es); diff --git a/x-pack/test/security_solution_api_integration/test_suites/genai/invoke_ai/trial_license_complete_tier/basic.ts b/x-pack/test/security_solution_api_integration/test_suites/genai/invoke_ai/trial_license_complete_tier/basic.ts index 840f3be765cb0..2be43b9188044 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/genai/invoke_ai/trial_license_complete_tier/basic.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/genai/invoke_ai/trial_license_complete_tier/basic.ts @@ -28,8 +28,8 @@ export default ({ getService }: FtrProviderContext) => { const objectRemover = new ObjectRemover(supertest); const configService = getService('config'); - // @skipInQA tag because the simulators do not work in the QA env - describe('@ess @serverless @skipInQA Basic Security AI Assistant Invoke AI [non-streaming, non-LangChain]', async () => { + // @skipInServerlessMKI tag because the simulators do not work in the QA env + describe('@ess @serverless @skipInServerlessMKI Basic Security AI Assistant Invoke AI [non-streaming, non-LangChain]', async () => { after(() => { objectRemover.removeAll(); }); From 812069aa5a682196cc1ca6dbd03074307662b483 Mon Sep 17 00:00:00 2001 From: Bena Kansara <69037875+benakansara@users.noreply.github.com> Date: Tue, 23 Apr 2024 19:27:33 +0200 Subject: [PATCH 085/183] [Custom threshold] [Alert details] Place annotation in middle of bar in alerts history chart (#181299) Closes https://github.com/elastic/kibana/issues/181300 Adjusted annotation time so that it is displayed in the middle of bar instead of slightly after start of the bar ### Previous Screenshot 2024-04-22 at 13 41 36 ### After change Screenshot 2024-04-22 at 13 41 09 --- .../components/alert_details_app_section/alert_history.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/alert_history.tsx b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/alert_history.tsx index 0ce59163184b5..b75b489cd86db 100644 --- a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/alert_history.tsx +++ b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/alert_history.tsx @@ -45,7 +45,7 @@ interface Props { const dateRange = { from: 'now-30d', - to: 'now', + to: 'now+1d', }; export function AlertHistoryChart({ rule, dataView, alert }: Props) { @@ -102,7 +102,10 @@ export function AlertHistoryChart({ rule, dataView, alert }: Props) { label: String(annotation.doc_count), key: { type: 'point_in_time', - timestamp: moment(new Date(annotation.key_as_string!)).toISOString(), + timestamp: moment(new Date(annotation.key_as_string!)) + .startOf('day') + .add(12, 'h') + .toISOString(), }, lineWidth: 2, color: euiTheme.colors.danger, From 20694c01dca77883ef774ec0074eed499f8686ee Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Tue, 23 Apr 2024 12:32:36 -0500 Subject: [PATCH 086/183] Re-add 8.13 to versions.json --- versions.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/versions.json b/versions.json index 7407634eb82fe..1dbc0501e298c 100644 --- a/versions.json +++ b/versions.json @@ -13,6 +13,12 @@ "currentMajor": true, "previousMinor": true }, + { + "version": "8.13.3", + "branch": "8.13", + "currentMajor": true, + "previousMinor": true + }, { "version": "7.17.21", "branch": "7.17", From 5ffda28c0e7fb50477e58a95a87b78f8e45a1c53 Mon Sep 17 00:00:00 2001 From: Dominique Clarke Date: Tue, 23 Apr 2024 13:35:33 -0400 Subject: [PATCH 087/183] [SLOs] support filters in grouped view on slo overview list (#181360) ## Summary Resolves https://github.com/elastic/kibana/issues/181311 Supports unified search filters when using the group by option on the SLO overview page. ### Testing 1. Create a few SLOs 2. Group the SLOs by status 3. Create a unified search filter for `slo.name` that matches a single SLO 4. Observe that the results are filtered appropriately 5. Negate that unified search filter 6. Observe that the results are filtered appropriately --- .../slo/public/pages/slos/components/slo_list.tsx | 1 + .../slo/server/services/find_slo_groups.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_list.tsx b/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_list.tsx index a41143ab8cec9..64ebfe7a6a2d8 100644 --- a/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_list.tsx +++ b/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_list.tsx @@ -124,6 +124,7 @@ export function SloList() { kqlQuery={kqlQuery} sort={state.sort.by} direction={state.sort.direction} + filters={filters} /> )}
    diff --git a/x-pack/plugins/observability_solution/slo/server/services/find_slo_groups.ts b/x-pack/plugins/observability_solution/slo/server/services/find_slo_groups.ts index e3e1ce9db2381..c962c7ae926ea 100644 --- a/x-pack/plugins/observability_solution/slo/server/services/find_slo_groups.ts +++ b/x-pack/plugins/observability_solution/slo/server/services/find_slo_groups.ts @@ -73,6 +73,7 @@ export class FindSLOGroups { getElasticsearchQueryOrThrow(kqlQuery), ...(parsedFilters.filter ?? []), ], + must_not: [...(parsedFilters.must_not ?? [])], }, }, body: { From 95717a4f63434d6b1fb58f2ba3d7a07ae8b73199 Mon Sep 17 00:00:00 2001 From: Trevor Pierce <1Copenut@users.noreply.github.com> Date: Tue, 23 Apr 2024 14:03:42 -0500 Subject: [PATCH 088/183] [ES] Added height and virtualization to ApiRequestFlyout (#180320) Adds a feature to ApiRequestFlyout component so keyboard users can scroll API output. --- .../view_api_request_flyout/view_api_request_flyout.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx b/src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx index c32fab974a811..12030f1c5ea31 100644 --- a/src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx +++ b/src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx @@ -111,7 +111,12 @@ export const ApiRequestFlyout: React.FunctionComponent - + {request} From d4047fe716ad946310d3327a95cac58dbb06c152 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Tue, 23 Apr 2024 13:28:03 -0600 Subject: [PATCH 089/183] [Embeddable rebuild] ML anomaly swim lane embeddable: ensure dashboard reset works correctly (#181346) ## Summary Fixes https://github.com/elastic/kibana/issues/181210 The reset functionality was not reverting the embeddable values. This PR ensures the embeddable values are reset on dashboard reset. Comparators require the `next` functionality to be wrapped in a function in order to maintain `this` being defined. The problem is that BehaviourSubjects are class instances, and if you pass in the next method like `[someSubject$, someSubject$.next]` you lose the this context. NOTE: This needs the `8.14.1` label when it's available ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- .../anomaly_swimlane/initialize_swim_lane_controls.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/initialize_swim_lane_controls.ts b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/initialize_swim_lane_controls.ts index 218b937b25277..1301b29f80661 100644 --- a/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/initialize_swim_lane_controls.ts +++ b/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/initialize_swim_lane_controls.ts @@ -60,10 +60,10 @@ export const initializeSwimLaneControls = ( }; const swimLaneComparators: StateComparators = { - jobIds: [jobIds, jobIds.next, fastIsEqual], - swimlaneType: [swimlaneType, swimlaneType.next], - viewBy: [viewBy, viewBy.next], - perPage: [perPage, perPage.next], + jobIds: [jobIds, (arg) => jobIds.next(arg), fastIsEqual], + swimlaneType: [swimlaneType, (arg) => swimlaneType.next(arg)], + viewBy: [viewBy, (arg) => viewBy.next(arg)], + perPage: [perPage, (arg) => perPage.next(arg)], }; return { From 37c57599439bd2114b4d45fb8e0b8c71f496ace0 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 23 Apr 2024 16:59:18 -0400 Subject: [PATCH 090/183] skip failing test suite (#181493) --- .../apps/discover/ccs_compatibility/_timeout_results.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/discover/ccs_compatibility/_timeout_results.ts b/test/functional/apps/discover/ccs_compatibility/_timeout_results.ts index f8f81a44bdf8c..cf163ce7c1f7a 100644 --- a/test/functional/apps/discover/ccs_compatibility/_timeout_results.ts +++ b/test/functional/apps/discover/ccs_compatibility/_timeout_results.ts @@ -21,7 +21,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const remoteEsArchiver = getService('remoteEsArchiver' as 'esArchiver'); - describe('discover search CCS timeout', () => { + // Failing: See https://github.com/elastic/kibana/issues/181493 + describe.skip('discover search CCS timeout', () => { before(async () => { await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); await remoteEsArchiver.loadIfNeeded( From 3142f1ab31fe24e74e5bd19a8e657dac6af3ef6c Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Tue, 23 Apr 2024 17:20:56 -0400 Subject: [PATCH 091/183] [Fleet] Filter globalsearch deeplink based on authz (#181492) --- x-pack/plugins/fleet/public/deep_links.ts | 105 ++++++++++++---------- x-pack/plugins/fleet/public/plugin.ts | 70 ++++++++------- 2 files changed, 97 insertions(+), 78 deletions(-) diff --git a/x-pack/plugins/fleet/public/deep_links.ts b/x-pack/plugins/fleet/public/deep_links.ts index 14e1df2b2f82c..9273bbb61e50e 100644 --- a/x-pack/plugins/fleet/public/deep_links.ts +++ b/x-pack/plugins/fleet/public/deep_links.ts @@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { AppDeepLink } from '@kbn/core/public'; import type { ExperimentalFeatures } from '../common/experimental_features'; +import type { FleetAuthz } from '../common'; import { FLEET_ROUTING_PATHS } from './constants/page_paths'; @@ -21,51 +22,59 @@ export enum FleetDeepLinkId { settings = 'settings', } -export const getFleetDeepLinks: (experimentalFeatures: ExperimentalFeatures) => AppDeepLink[] = ( - experimentalFeatures -) => [ - { - id: FleetDeepLinkId.agents, - title: i18n.translate('xpack.fleet.deepLinks.agents.title', { defaultMessage: 'Agents' }), - path: FLEET_ROUTING_PATHS.agents, - }, - { - id: FleetDeepLinkId.policies, - title: i18n.translate('xpack.fleet.deepLinks.policies.title', { - defaultMessage: 'Agent policies', - }), - path: FLEET_ROUTING_PATHS.policies, - }, - { - id: FleetDeepLinkId.enrollmentTokens, - title: i18n.translate('xpack.fleet.deepLinks.enrollmentTokens.title', { - defaultMessage: 'Enrollment tokens', - }), - path: FLEET_ROUTING_PATHS.enrollment_tokens, - }, - ...(experimentalFeatures.agentTamperProtectionEnabled - ? [ - { - id: FleetDeepLinkId.uninstallTokens, - title: i18n.translate('xpack.fleet.deepLinks.uninstallTokens.title', { - defaultMessage: 'Uninstall tokens', - }), - path: FLEET_ROUTING_PATHS.uninstall_tokens, - }, - ] - : []), - { - id: FleetDeepLinkId.dataStreams, - title: i18n.translate('xpack.fleet.deepLinks.dataStreams.title', { - defaultMessage: 'Data streams', - }), - path: FLEET_ROUTING_PATHS.data_streams, - }, - { - id: FleetDeepLinkId.settings, - title: i18n.translate('xpack.fleet.deepLinks.settings.title', { - defaultMessage: 'Settings', - }), - path: FLEET_ROUTING_PATHS.settings, - }, -]; +export const getFleetDeepLinks: ( + experimentalFeatures: ExperimentalFeatures, + authz?: FleetAuthz +) => AppDeepLink[] = (experimentalFeatures, authz) => { + return [ + { + id: FleetDeepLinkId.agents, + title: i18n.translate('xpack.fleet.deepLinks.agents.title', { defaultMessage: 'Agents' }), + path: FLEET_ROUTING_PATHS.agents, + visibleIn: !authz?.fleet.readAgents ? [] : ['globalSearch'], + }, + { + id: FleetDeepLinkId.policies, + title: i18n.translate('xpack.fleet.deepLinks.policies.title', { + defaultMessage: 'Agent policies', + }), + path: FLEET_ROUTING_PATHS.policies, + visibleIn: !authz?.fleet.readAgentPolicies ? [] : ['globalSearch'], + }, + { + id: FleetDeepLinkId.enrollmentTokens, + title: i18n.translate('xpack.fleet.deepLinks.enrollmentTokens.title', { + defaultMessage: 'Enrollment tokens', + }), + path: FLEET_ROUTING_PATHS.enrollment_tokens, + visibleIn: !authz?.fleet.allAgents ? [] : ['globalSearch'], + }, + ...((experimentalFeatures.agentTamperProtectionEnabled + ? [ + { + id: FleetDeepLinkId.uninstallTokens, + title: i18n.translate('xpack.fleet.deepLinks.uninstallTokens.title', { + defaultMessage: 'Uninstall tokens', + }), + path: FLEET_ROUTING_PATHS.uninstall_tokens, + visibleIn: !authz?.fleet.allAgents ? [] : ['globalSearch'], + }, + ] + : []) as AppDeepLink[]), + { + id: FleetDeepLinkId.dataStreams, + title: i18n.translate('xpack.fleet.deepLinks.dataStreams.title', { + defaultMessage: 'Data streams', + }), + path: FLEET_ROUTING_PATHS.data_streams, + }, + { + id: FleetDeepLinkId.settings, + title: i18n.translate('xpack.fleet.deepLinks.settings.title', { + defaultMessage: 'Settings', + }), + path: FLEET_ROUTING_PATHS.settings, + visibleIn: !authz?.fleet.readSettings ? [] : ['globalSearch'], + }, + ]; +}; diff --git a/x-pack/plugins/fleet/public/plugin.ts b/x-pack/plugins/fleet/public/plugin.ts index e8f36ffed3af4..3a22a8bc5b5a9 100644 --- a/x-pack/plugins/fleet/public/plugin.ts +++ b/x-pack/plugins/fleet/public/plugin.ts @@ -8,6 +8,7 @@ import React from 'react'; import type { AppMountParameters, + AppUpdater, CoreSetup, CoreStart, Plugin, @@ -84,6 +85,7 @@ import type { import { LazyCustomLogsAssetsExtension } from './lazy_custom_logs_assets_extension'; import { setCustomIntegrations, setCustomIntegrationsStart } from './services/custom_integrations'; import { getFleetDeepLinks } from './deep_links'; +import { Subject } from 'rxjs'; export type { FleetConfigType } from '../common/types'; @@ -149,6 +151,7 @@ export class FleetPlugin implements Plugin(); constructor(private readonly initializerContext: PluginInitializerContext) { this.config = this.initializerContext.config.get(); @@ -220,6 +223,7 @@ export class FleetPlugin implements Plugin { const [coreStartServices, startDepsServices, fleetStart] = await core.getStartServices(); @@ -236,7 +240,6 @@ export class FleetPlugin implements Plugin { unmount(); teardownFleet(startServices); @@ -302,46 +305,53 @@ export class FleetPlugin implements Plugin ({ + deepLinks: getFleetDeepLinks(this.experimentalFeatures, authz), + })); + registerExtension({ package: CUSTOM_LOGS_INTEGRATION_NAME, view: 'package-detail-assets', Component: LazyCustomLogsAssetsExtension, }); - const { capabilities } = core.application; // Set the custom integrations language clients setCustomIntegrationsStart(deps.customIntegrations); // capabilities.fleetv2 returns fleet privileges and capabilities.fleet returns integrations privileges return { - authz: { - ...calculateAuthz({ - fleet: { - all: capabilities.fleetv2.all as boolean, - setup: false, - agents: { - read: capabilities.fleetv2.agents_read as boolean, - all: capabilities.fleetv2.agents_all as boolean, - }, - agentPolicies: { - read: capabilities.fleetv2.agent_policies_read as boolean, - all: capabilities.fleetv2.agent_policies_all as boolean, - }, - settings: { - read: capabilities.fleetv2.settings_read as boolean, - all: capabilities.fleetv2.settings_all as boolean, - }, - }, - integrations: { - all: capabilities.fleet.all as boolean, - read: capabilities.fleet.read as boolean, - }, - subfeatureEnabled: this.experimentalFeatures.subfeaturePrivileges ?? false, - }), - packagePrivileges: calculatePackagePrivilegesFromCapabilities(capabilities), - endpointExceptionsPrivileges: - calculateEndpointExceptionsPrivilegesFromCapabilities(capabilities), - }, + authz, isInitialized: once(async () => { const permissionsResponse = await getPermissions(); From 8dcaefcebc49a80c84dad97447428a96e8bb78fe Mon Sep 17 00:00:00 2001 From: Andrew Macri Date: Tue, 23 Apr 2024 18:19:16 -0400 Subject: [PATCH 092/183] [Security Solution] [AI Insights] Remove secondary loading placeholder (#181486) ## [Security Solution] [AI Insights] Remove secondary loading placeholder ### Summary This PR removes the secondary loading placeholder, per the _before_ and _after_ screenshots below: #### Before ![before](https://github.com/elastic/kibana/assets/4459398/f9e5a61f-16c8-49e9-aba5-ff5f75ca6bd5) #### After ![after](https://github.com/elastic/kibana/assets/4459398/22ca8d3b-9b28-473c-aace-d4fcb59d168c) ### Feature flag The `assistantAlertsInsights` feature flag must be enabled to access this feature: ``` xpack.securitySolution.enableExperimental: ['assistantAlertsInsights'] ``` --- .../insight/loading_placeholder/index.tsx | 42 ------------------- .../public/ai_insights/pages/index.tsx | 15 +++---- 2 files changed, 5 insertions(+), 52 deletions(-) delete mode 100644 x-pack/plugins/security_solution/public/ai_insights/insight/loading_placeholder/index.tsx diff --git a/x-pack/plugins/security_solution/public/ai_insights/insight/loading_placeholder/index.tsx b/x-pack/plugins/security_solution/public/ai_insights/insight/loading_placeholder/index.tsx deleted file mode 100644 index be39e9229a67e..0000000000000 --- a/x-pack/plugins/security_solution/public/ai_insights/insight/loading_placeholder/index.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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 { css } from '@emotion/react'; -import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSpacer, EuiSkeletonTitle } from '@elastic/eui'; -import React from 'react'; - -import { ActionsPlaceholder } from '../actions/actions_placeholder'; -import { Title } from '../title'; - -const LoadingPlaceholderComponent: React.FC = () => ( - - - - - </EuiFlexItem> - - <EuiFlexItem grow={false}> - <ActionsPlaceholder /> - </EuiFlexItem> - </EuiFlexGroup> - - <EuiSpacer size="l" /> - - <EuiSkeletonTitle - css={css` - inline-size: 100%; - `} - data-test-subj="skeletonTitle" - isLoading={true} - size="l" - /> - </EuiPanel> -); - -LoadingPlaceholderComponent.displayName = 'LoadingPlaceholder'; - -export const LoadingPlaceholder = React.memo(LoadingPlaceholderComponent); diff --git a/x-pack/plugins/security_solution/public/ai_insights/pages/index.tsx b/x-pack/plugins/security_solution/public/ai_insights/pages/index.tsx index 57268041ebb4d..71b7998099837 100644 --- a/x-pack/plugins/security_solution/public/ai_insights/pages/index.tsx +++ b/x-pack/plugins/security_solution/public/ai_insights/pages/index.tsx @@ -31,7 +31,6 @@ import { showSummary, } from './helpers'; import { Insight } from '../insight'; -import { LoadingPlaceholder } from '../insight/loading_placeholder'; import { LoadingCallout } from './loading_callout'; import { PageTitle } from './page_title'; import { Summary } from './summary'; @@ -191,15 +190,11 @@ const AiInsightsComponent: React.FC = () => { isLoading, loadingConnectorId, }) ? ( - <> - <LoadingCallout - alertsCount={knowledgeBase.latestAlerts} - connectorIntervals={connectorIntervals} - approximateFutureTime={approximateFutureTime} - /> - <EuiSpacer size="m" /> - <LoadingPlaceholder /> - </> + <LoadingCallout + alertsCount={knowledgeBase.latestAlerts} + approximateFutureTime={approximateFutureTime} + connectorIntervals={connectorIntervals} + /> ) : ( selectedConnectorInsights.map((insight, i) => ( <React.Fragment key={insight.id}> From ebc3fdc1fe9d86577ac116883c0d13526ba198f1 Mon Sep 17 00:00:00 2001 From: Steph Milovic <stephanie.milovic@elastic.co> Date: Tue, 23 Apr 2024 16:35:43 -0600 Subject: [PATCH 093/183] [Security solution] Fix `OpenAndAcknowledgedAlertsTool` for Haiku (#181485) --- .../open_and_acknowledged_alerts_tool.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/server/assistant/tools/open_and_acknowledged_alerts/open_and_acknowledged_alerts_tool.ts b/x-pack/plugins/security_solution/server/assistant/tools/open_and_acknowledged_alerts/open_and_acknowledged_alerts_tool.ts index 42262970fb8f6..f77d920978756 100644 --- a/x-pack/plugins/security_solution/server/assistant/tools/open_and_acknowledged_alerts/open_and_acknowledged_alerts_tool.ts +++ b/x-pack/plugins/security_solution/server/assistant/tools/open_and_acknowledged_alerts/open_and_acknowledged_alerts_tool.ts @@ -22,7 +22,7 @@ export interface OpenAndAcknowledgedAlertsToolParams extends AssistantToolParams } export const OPEN_AND_ACKNOWLEDGED_ALERTS_TOOL_DESCRIPTION = - 'Call this for knowledge about the latest n open and acknowledged alerts (sorted by `kibana.alert.risk_score`) in the environment, or when answering questions about open alerts'; + 'Call this for knowledge about the latest n open and acknowledged alerts (sorted by `kibana.alert.risk_score`) in the environment, or when answering questions about open alerts. Input should be a string.'; /** * Returns a tool for querying open and acknowledged alerts, or null if the From 70c574dd6d61f361c763c3315a4caa4a6a99ce54 Mon Sep 17 00:00:00 2001 From: Kevin Delemme <kevin.delemme@elastic.co> Date: Tue, 23 Apr 2024 20:34:03 -0400 Subject: [PATCH 094/183] fix(slo tests): attempt to fix flakyness (#181439) --- .../test_suites/observability/slos/delete_slo.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/slos/delete_slo.ts b/x-pack/test_serverless/api_integration/test_suites/observability/slos/delete_slo.ts index c56b8255b4111..d605e57d997ef 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/slos/delete_slo.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/slos/delete_slo.ts @@ -47,8 +47,8 @@ export default function ({ getService }: FtrProviderContext) { return {}; } }; - // Failing: See https://github.com/elastic/kibana/issues/180982 - describe.skip('delete_slo', () => { + + describe('delete_slo', () => { // DATE_VIEW should match the index template: // x-pack/packages/kbn-infra-forge/src/data_sources/composable/template.json const DATE_VIEW = 'kbn-data-forge-fake_hosts'; @@ -136,6 +136,7 @@ export default function ({ getService }: FtrProviderContext) { indexName: SLO_SUMMARY_DESTINATION_INDEX_PATTERN, }); + const numberOfRollupDocumentsBeforeDeletion = sloRollupData.hits.hits.length; expect(sloRollupData.hits.hits.length > 0).to.be(true); expect(sloSummaryData.hits.hits.length > 0).to.be(true); @@ -169,7 +170,9 @@ export default function ({ getService }: FtrProviderContext) { sloId, indexName: SLO_DESTINATION_INDEX_PATTERN, }); - if (sloRollupDataAfterDeletion.hits.hits.length > 0) { + if ( + sloRollupDataAfterDeletion.hits.hits.length >= numberOfRollupDocumentsBeforeDeletion + ) { throw new Error('SLO rollup data not deleted yet'); } return true; From 15e55986dd3cdfc7016737242cdd87e172335e6c Mon Sep 17 00:00:00 2001 From: Vadim Kibana <82822460+vadimkibana@users.noreply.github.com> Date: Wed, 24 Apr 2024 04:07:11 +0200 Subject: [PATCH 095/183] [Reporting] Limit report document chunk size to 4MB (#181395) ## Summary Closes https://github.com/elastic/kibana/issues/180829 ### Checklist Delete any items that are not applicable to this PR. - [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 ### For maintainers - [x] 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) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/lib/content_stream.test.ts | 8 +-- .../reporting/server/lib/content_stream.ts | 63 ++++--------------- 2 files changed, 13 insertions(+), 58 deletions(-) diff --git a/x-pack/plugins/reporting/server/lib/content_stream.test.ts b/x-pack/plugins/reporting/server/lib/content_stream.test.ts index 288d528c722bf..d4f179c5c9359 100644 --- a/x-pack/plugins/reporting/server/lib/content_stream.test.ts +++ b/x-pack/plugins/reporting/server/lib/content_stream.test.ts @@ -280,9 +280,7 @@ describe('ContentStream', () => { }); it('should split raw data into chunks', async () => { - client.cluster.getSettings.mockResponseOnce( - set<any>({}, 'defaults.http.max_content_length', 1028) - ); + stream.chunkSize = 2; stream.end('123456'); await new Promise((resolve) => stream.once('finish', resolve)); @@ -322,9 +320,7 @@ describe('ContentStream', () => { }); it('should encode every chunk separately', async () => { - client.cluster.getSettings.mockResponseOnce( - set<any>({}, 'defaults.http.max_content_length', 1028) - ); + base64Stream.chunkSize = 3; base64Stream.end('12345678'); await new Promise((resolve) => base64Stream.once('finish', resolve)); diff --git a/x-pack/plugins/reporting/server/lib/content_stream.ts b/x-pack/plugins/reporting/server/lib/content_stream.ts index 0be61705d84b5..17362516d2c9d 100644 --- a/x-pack/plugins/reporting/server/lib/content_stream.ts +++ b/x-pack/plugins/reporting/server/lib/content_stream.ts @@ -5,22 +5,15 @@ * 2.0. */ -import { defaults, get } from 'lodash'; import { Duplex } from 'stream'; import { v4 as uuidv4 } from 'uuid'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { ByteSizeValue } from '@kbn/config-schema'; import type { ElasticsearchClient, Logger } from '@kbn/core/server'; import type { ReportSource } from '@kbn/reporting-common/types'; import type { ReportingCore } from '..'; -/** - * @note The Elasticsearch `http.max_content_length` is including the whole POST body. - * But the update/index request also contains JSON-serialized query parameters. - * 1Kb span should be enough for that. - */ -const REQUEST_SPAN_SIZE_IN_BYTES = 1024; +const ONE_MB = 1024 * 1024; type Callback = (error?: Error) => void; type SearchRequest = estypes.SearchRequest; @@ -52,21 +45,6 @@ interface ContentStreamParameters { } export class ContentStream extends Duplex { - /** - * @see https://en.wikipedia.org/wiki/Base64#Output_padding - */ - private static getMaxBase64EncodedSize(max: number) { - return Math.floor(max / 4) * 3; - } - - /** - * @note Raw data might be escaped during JSON serialization. - * In the worst-case, every character is escaped, so the max raw data length is twice less. - */ - private static getMaxJsonEscapedSize(max: number) { - return Math.floor(max / 2); - } - private buffers: Buffer[] = []; private bytesBuffered = 0; @@ -74,7 +52,6 @@ export class ContentStream extends Duplex { private chunksRead = 0; private chunksWritten = 0; private jobSize?: number; - private maxChunkSize?: number; private parameters: Required<ContentStreamParameters>; private primaryTerm?: number; private seqNo?: number; @@ -85,6 +62,14 @@ export class ContentStream extends Duplex { */ bytesWritten = 0; + /** + * The chunking size of reporting files. Larger CSV files will be split into + * multiple documents, where the stream is chunked into pieces of approximately + * this size. The actual document size will be slightly larger due to Base64 + * encoding and JSON metadata. + */ + chunkSize = 4 * ONE_MB; + constructor( private client: ElasticsearchClient, private logger: Logger, @@ -103,30 +88,6 @@ export class ContentStream extends Duplex { return buffer.toString(this.parameters.encoding === 'base64' ? 'base64' : undefined); } - private async getMaxContentSize() { - const body = await this.client.cluster.getSettings({ include_defaults: true }); - const { persistent, transient, defaults: defaultSettings } = body; - const settings = defaults({}, persistent, transient, defaultSettings); - const maxContentSize = get(settings, 'http.max_content_length', '100mb'); - - return ByteSizeValue.parse(maxContentSize).getValueInBytes(); - } - - private async getMaxChunkSize() { - if (!this.maxChunkSize) { - const maxContentSize = (await this.getMaxContentSize()) - REQUEST_SPAN_SIZE_IN_BYTES; - - this.maxChunkSize = - this.parameters.encoding === 'base64' - ? ContentStream.getMaxBase64EncodedSize(maxContentSize) - : ContentStream.getMaxJsonEscapedSize(maxContentSize); - - this.logger.debug(`Chunk size is ${this.maxChunkSize} bytes.`); - } - - return this.maxChunkSize; - } - private async readHead() { const { id, index } = this.document; const body: SearchRequest['body'] = { @@ -306,10 +267,8 @@ export class ContentStream extends Duplex { } private async flushAllFullChunks() { - const maxChunkSize = await this.getMaxChunkSize(); - - while (this.bytesBuffered >= maxChunkSize && this.buffers.length) { - await this.flush(maxChunkSize); + while (this.bytesBuffered >= this.chunkSize && this.buffers.length) { + await this.flush(this.chunkSize); } } From bdac77d3203cc41a89074b32de689050b559da0b Mon Sep 17 00:00:00 2001 From: Julia Rechkunova <julia.rechkunova@elastic.co> Date: Wed, 24 Apr 2024 08:36:45 +0200 Subject: [PATCH 096/183] [Discover] Fix time range filters for CSV when a relative time filter is specified in UI (#181067) - Closes https://github.com/elastic/kibana/issues/181061 ## Summary `searchSource` got polluted during UI rendering and then it was used for CSV generation again. It resulted in the redundant relative time range filter next to the absolute time range filter. Now only absolute time range filter will be present. ### 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 --- .../public/utils/get_sharing_data.test.ts | 109 +++++++++++++++++- .../discover/public/utils/get_sharing_data.ts | 14 ++- 2 files changed, 113 insertions(+), 10 deletions(-) diff --git a/src/plugins/discover/public/utils/get_sharing_data.test.ts b/src/plugins/discover/public/utils/get_sharing_data.test.ts index a0c7581fd9419..473c31ff09453 100644 --- a/src/plugins/discover/public/utils/get_sharing_data.test.ts +++ b/src/plugins/discover/public/utils/get_sharing_data.test.ts @@ -7,9 +7,9 @@ */ import { Capabilities, IUiSettingsClient } from '@kbn/core/public'; +import { FilterStateStore, RangeFilter } from '@kbn/es-query'; import type { DataView } from '@kbn/data-views-plugin/public'; import type { DiscoverServices } from '../build_services'; -import { dataPluginMock } from '@kbn/data-plugin/public/mocks'; import { createSearchSourceMock } from '@kbn/data-plugin/common/search/search_source/mocks'; import { DOC_HIDE_TIME_COLUMN_SETTING, @@ -17,14 +17,16 @@ import { SEARCH_FIELDS_FROM_SOURCE, } from '@kbn/discover-utils'; import { buildDataViewMock, dataViewMock } from '@kbn/discover-utils/src/__mocks__'; +import { createDiscoverServicesMock } from '../__mocks__/services'; import { getSharingData, showPublicUrlSwitch } from './get_sharing_data'; describe('getSharingData', () => { let services: DiscoverServices; beforeEach(() => { + const discoverServiceMock = createDiscoverServicesMock(); services = { - data: dataPluginMock.createStartContract(), + ...discoverServiceMock, uiSettings: { get: (key: string) => { if (key === SEARCH_FIELDS_FROM_SOURCE) { @@ -38,8 +40,8 @@ describe('getSharingData', () => { } return false; }, - }, - } as DiscoverServices; + } as IUiSettingsClient, + }; }); test('returns valid data for sharing', async () => { @@ -303,6 +305,105 @@ describe('getSharingData', () => { } `); }); + + test('getSearchSource works correctly', async () => { + const searchSourceMock = createSearchSourceMock({ index: dataViewMock }); + const appFilter = { + $state: { + store: FilterStateStore.APP_STATE, + }, + meta: { + alias: null, + disabled: false, + index: dataViewMock.id, + key: 'extension.keyword', + negate: false, + params: { + query: 'zip', + }, + type: 'phrase', + }, + query: { + match_phrase: { + 'extension.keyword': 'zip', + }, + }, + }; + const absoluteTimeFilter = { + meta: { + index: dataViewMock.id, + params: {}, + field: 'timestamp', + type: 'range', + }, + query: { + range: { + timestamp: { + format: 'strict_date_optional_time', + gte: '2024-04-18T12:07:56.713Z', + lte: '2024-04-18T12:22:56.713Z', + }, + }, + }, + } as RangeFilter; + const relativeTimeFilter = { + meta: { + index: dataViewMock.id, + params: {}, + field: 'timestamp', + type: 'range', + }, + query: { + range: { + timestamp: { + format: 'strict_date_optional_time', + gte: 'now-15m', + lte: 'now', + }, + }, + }, + } as RangeFilter; + searchSourceMock.setField('filter', [appFilter]); + const servicesMock = createDiscoverServicesMock(); + servicesMock.data.query.timefilter.timefilter.createFilter = jest.fn(() => absoluteTimeFilter); + servicesMock.data.query.timefilter.timefilter.createRelativeFilter = jest.fn( + () => relativeTimeFilter + ); + + // with app filters as an array + const result = await getSharingData( + searchSourceMock, + { + columns: ['cool-field-1'], + }, + servicesMock + ); + expect( + result.getSearchSource({ addGlobalTimeFilter: true, absoluteTime: false }).filter + ).toEqual([relativeTimeFilter, appFilter]); + expect( + result.getSearchSource({ addGlobalTimeFilter: true, absoluteTime: true }).filter + ).toEqual([absoluteTimeFilter, appFilter]); + expect( + result.getSearchSource({ addGlobalTimeFilter: false, absoluteTime: false }).filter + ).toEqual([appFilter]); + expect( + result.getSearchSource({ addGlobalTimeFilter: false, absoluteTime: true }).filter + ).toEqual([appFilter]); + + // with app filter as a single filter and the same as the absolute time filter + searchSourceMock.setField('filter', absoluteTimeFilter); + const result2 = await getSharingData( + searchSourceMock, + { + columns: ['cool-field-1'], + }, + servicesMock + ); + expect( + result2.getSearchSource({ addGlobalTimeFilter: true, absoluteTime: true }).filter + ).toEqual([absoluteTimeFilter]); + }); }); describe('showPublicUrlSwitch', () => { diff --git a/src/plugins/discover/public/utils/get_sharing_data.ts b/src/plugins/discover/public/utils/get_sharing_data.ts index 9e3b2b2369469..9387053698017 100644 --- a/src/plugins/discover/public/utils/get_sharing_data.ts +++ b/src/plugins/discover/public/utils/get_sharing_data.ts @@ -39,7 +39,6 @@ export async function getSharingData( const { uiSettings, data } = services; const searchSource = currentSearchSource.createCopy(); const index = searchSource.getField('index')!; - let existingFilter = searchSource.getField('filter') as Filter[] | Filter | undefined; searchSource.setField( 'sort', @@ -50,7 +49,6 @@ export async function getSharingData( }) ); - searchSource.removeField('filter'); searchSource.removeField('highlight'); searchSource.removeField('highlightAll'); searchSource.removeField('aggs'); @@ -81,6 +79,10 @@ export async function getSharingData( addGlobalTimeFilter?: boolean; absoluteTime?: boolean; }): SerializedSearchSourceFields => { + let existingFilter = searchSource.getField('filter') as Filter[] | Filter | undefined; + const searchSourceUpdated = searchSource.createCopy(); + searchSourceUpdated.removeField('filter'); + const timeFilter = absoluteTime ? absoluteTimeFilter : relativeTimeFilter; if (addGlobalTimeFilter && timeFilter) { // remove timeFilter from existing filter @@ -102,7 +104,7 @@ export async function getSharingData( } if (existingFilter) { - searchSource.setField('filter', existingFilter); + searchSourceUpdated.setField('filter', existingFilter); } /* @@ -112,7 +114,7 @@ export async function getSharingData( */ const useFieldsApi = !uiSettings.get(SEARCH_FIELDS_FROM_SOURCE); if (useFieldsApi) { - searchSource.removeField('fieldsFromSource'); + searchSourceUpdated.removeField('fieldsFromSource'); const fields = columns.length ? columns.map((column) => { let field = column; @@ -127,9 +129,9 @@ export async function getSharingData( }) : [{ field: '*', include_unmapped: 'true' }]; - searchSource.setField('fields', fields); + searchSourceUpdated.setField('fields', fields); } - return searchSource.getSerializedFields(true); + return searchSourceUpdated.getSerializedFields(true); }, columns, }; From 773626f67730e2167f69f9f8c6d2c60d9b834669 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 03:20:56 -0400 Subject: [PATCH 097/183] [api-docs] 2024-04-24 Daily api_docs build (#181516) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/683 --- api_docs/actions.devdocs.json | 90 ++++++-- api_docs/actions.mdx | 4 +- api_docs/advanced_settings.mdx | 2 +- .../ai_assistant_management_selection.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.mdx | 2 +- api_docs/apm.devdocs.json | 26 ++- api_docs/apm.mdx | 2 +- api_docs/apm_data_access.mdx | 2 +- api_docs/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.devdocs.json | 3 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/dataset_quality.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.devdocs.json | 212 ------------------ api_docs/discover.mdx | 4 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/elastic_assistant.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_annotation_listing.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/ingest_pipelines.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_actions_types.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_log_pattern_analysis.mdx | 2 +- api_docs/kbn_aiops_log_rate_analysis.mdx | 2 +- .../kbn_alerting_api_integration_helpers.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerting_types.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_collection_utils.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_data_view.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_bfetch_error.mdx | 2 +- api_docs/kbn_calculate_auto.mdx | 2 +- .../kbn_calculate_width_from_char_count.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mock.mdx | 2 +- api_docs/kbn_code_owners.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- ...tent_management_tabbed_table_list_view.mdx | 2 +- ...kbn_content_management_table_list_view.mdx | 2 +- ...tent_management_table_list_view_common.mdx | 2 +- ...ntent_management_table_list_view_table.mdx | 2 +- api_docs/kbn_content_management_utils.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- .../kbn_core_plugins_contracts_browser.mdx | 2 +- .../kbn_core_plugins_contracts_server.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_security_browser.mdx | 2 +- .../kbn_core_security_browser_internal.mdx | 2 +- api_docs/kbn_core_security_browser_mocks.mdx | 2 +- api_docs/kbn_core_security_common.mdx | 2 +- api_docs/kbn_core_security_server.mdx | 2 +- .../kbn_core_security_server_internal.mdx | 2 +- api_docs/kbn_core_security_server_mocks.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- .../kbn_core_test_helpers_model_versions.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_core_user_settings_server.mdx | 2 +- ...kbn_core_user_settings_server_internal.mdx | 2 +- .../kbn_core_user_settings_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_custom_icons.mdx | 2 +- api_docs/kbn_custom_integrations.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_data_forge.mdx | 2 +- api_docs/kbn_data_service.mdx | 2 +- api_docs/kbn_data_stream_adapter.mdx | 2 +- api_docs/kbn_data_view_utils.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_deeplinks_analytics.mdx | 2 +- api_docs/kbn_deeplinks_devtools.mdx | 2 +- api_docs/kbn_deeplinks_fleet.mdx | 2 +- api_docs/kbn_deeplinks_management.mdx | 2 +- api_docs/kbn_deeplinks_ml.mdx | 2 +- api_docs/kbn_deeplinks_observability.mdx | 2 +- api_docs/kbn_deeplinks_search.mdx | 2 +- api_docs/kbn_deeplinks_security.mdx | 2 +- api_docs/kbn_deeplinks_shared.mdx | 2 +- api_docs/kbn_default_nav_analytics.mdx | 2 +- api_docs/kbn_default_nav_devtools.mdx | 2 +- api_docs/kbn_default_nav_management.mdx | 2 +- api_docs/kbn_default_nav_ml.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_discover_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_elastic_agent_utils.mdx | 2 +- api_docs/kbn_elastic_assistant.mdx | 2 +- api_docs/kbn_elastic_assistant_common.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_esql_ast.mdx | 2 +- api_docs/kbn_esql_utils.devdocs.json | 48 ++++ api_docs/kbn_esql_utils.mdx | 4 +- api_docs/kbn_esql_validation_autocomplete.mdx | 2 +- api_docs/kbn_event_annotation_common.mdx | 2 +- api_docs/kbn_event_annotation_components.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_field_utils.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- api_docs/kbn_formatters.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- .../kbn_ftr_common_functional_ui_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_generate_console_definitions.mdx | 2 +- api_docs/kbn_generate_csv.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_index_management.mdx | 2 +- api_docs/kbn_inference_integration_flyout.mdx | 2 +- api_docs/kbn_infra_forge.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_ipynb.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_lens_embeddable_utils.mdx | 2 +- api_docs/kbn_lens_formula_docs.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_content_badge.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_management_cards_navigation.mdx | 2 +- .../kbn_management_settings_application.mdx | 2 +- ...ent_settings_components_field_category.mdx | 2 +- ...gement_settings_components_field_input.mdx | 2 +- ...nagement_settings_components_field_row.mdx | 2 +- ...bn_management_settings_components_form.mdx | 2 +- ...n_management_settings_field_definition.mdx | 2 +- api_docs/kbn_management_settings_ids.mdx | 2 +- ...n_management_settings_section_registry.mdx | 2 +- api_docs/kbn_management_settings_types.mdx | 2 +- .../kbn_management_settings_utilities.mdx | 2 +- api_docs/kbn_management_storybook_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_maps_vector_tile_utils.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_anomaly_utils.mdx | 2 +- api_docs/kbn_ml_cancellable_search.mdx | 2 +- api_docs/kbn_ml_category_validator.mdx | 2 +- api_docs/kbn_ml_chi2test.mdx | 2 +- .../kbn_ml_data_frame_analytics_utils.mdx | 2 +- api_docs/kbn_ml_data_grid.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_date_utils.mdx | 2 +- api_docs/kbn_ml_error_utils.mdx | 2 +- api_docs/kbn_ml_in_memory_table.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_kibana_theme.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_number_utils.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_random_sampler_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_runtime_field_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_time_buckets.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_ui_actions.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_mock_idp_utils.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- .../kbn_observability_alerting_test_data.mdx | 2 +- ...ility_get_padded_alert_time_range_util.mdx | 2 +- api_docs/kbn_openapi_bundler.mdx | 2 +- api_docs/kbn_openapi_generator.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_panel_loader.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_check.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_presentation_containers.mdx | 2 +- .../kbn_presentation_publishing.devdocs.json | 76 +++++++ api_docs/kbn_presentation_publishing.mdx | 4 +- api_docs/kbn_profiling_utils.mdx | 2 +- api_docs/kbn_random_sampling.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_react_kibana_context_common.mdx | 2 +- api_docs/kbn_react_kibana_context_render.mdx | 2 +- api_docs/kbn_react_kibana_context_root.mdx | 2 +- api_docs/kbn_react_kibana_context_styled.mdx | 2 +- api_docs/kbn_react_kibana_context_theme.mdx | 2 +- api_docs/kbn_react_kibana_mount.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_reporting_common.mdx | 2 +- api_docs/kbn_reporting_csv_share_panel.mdx | 2 +- api_docs/kbn_reporting_export_types_csv.mdx | 2 +- .../kbn_reporting_export_types_csv_common.mdx | 2 +- api_docs/kbn_reporting_export_types_pdf.mdx | 2 +- .../kbn_reporting_export_types_pdf_common.mdx | 2 +- api_docs/kbn_reporting_export_types_png.mdx | 2 +- .../kbn_reporting_export_types_png_common.mdx | 2 +- api_docs/kbn_reporting_mocks_server.mdx | 2 +- api_docs/kbn_reporting_public.mdx | 2 +- api_docs/kbn_reporting_server.mdx | 2 +- api_docs/kbn_resizable_layout.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_router_to_openapispec.mdx | 2 +- api_docs/kbn_router_utils.mdx | 2 +- api_docs/kbn_rrule.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_saved_objects_settings.mdx | 2 +- api_docs/kbn_search_api_panels.mdx | 2 +- api_docs/kbn_search_connectors.mdx | 2 +- api_docs/kbn_search_errors.mdx | 2 +- api_docs/kbn_search_index_documents.mdx | 2 +- api_docs/kbn_search_response_warnings.mdx | 2 +- api_docs/kbn_security_hardening.mdx | 2 +- api_docs/kbn_security_plugin_types_common.mdx | 2 +- api_docs/kbn_security_plugin_types_public.mdx | 2 +- api_docs/kbn_security_plugin_types_server.mdx | 2 +- api_docs/kbn_security_solution_features.mdx | 2 +- api_docs/kbn_security_solution_navigation.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_data_table.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_serverless_common_settings.mdx | 2 +- .../kbn_serverless_observability_settings.mdx | 2 +- api_docs/kbn_serverless_project_switcher.mdx | 2 +- api_docs/kbn_serverless_search_settings.mdx | 2 +- api_docs/kbn_serverless_security_settings.mdx | 2 +- api_docs/kbn_serverless_storybook_config.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +- api_docs/kbn_shared_ux_error_boundary.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_tabbed_modal.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_solution_nav_es.mdx | 2 +- api_docs/kbn_solution_nav_oblt.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_sort_predicates.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_eui_helpers.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_text_based_editor.mdx | 2 +- api_docs/kbn_timerange.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_triggers_actions_ui_types.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_unified_data_table.mdx | 2 +- api_docs/kbn_unified_doc_viewer.mdx | 2 +- api_docs/kbn_unified_field_list.mdx | 2 +- api_docs/kbn_unsaved_changes_badge.mdx | 2 +- api_docs/kbn_use_tracked_promise.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_visualization_ui_components.mdx | 2 +- api_docs/kbn_visualization_utils.mdx | 2 +- api_docs/kbn_xstate_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kbn_zod_helpers.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/links.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/logs_explorer.mdx | 2 +- api_docs/logs_shared.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/metrics_data_access.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/mock_idp_plugin.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/no_data_page.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/observability_a_i_assistant.mdx | 2 +- api_docs/observability_a_i_assistant_app.mdx | 2 +- .../observability_ai_assistant_management.mdx | 2 +- api_docs/observability_logs_explorer.mdx | 2 +- api_docs/observability_onboarding.mdx | 2 +- api_docs/observability_shared.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/painless_lab.mdx | 2 +- api_docs/plugin_directory.mdx | 14 +- api_docs/presentation_panel.mdx | 2 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/profiling_data_access.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/search_connectors.mdx | 2 +- api_docs/search_notebooks.mdx | 2 +- api_docs/search_playground.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.devdocs.json | 24 ++ api_docs/security_solution.mdx | 4 +- api_docs/security_solution_ess.mdx | 2 +- api_docs/security_solution_serverless.mdx | 2 +- api_docs/serverless.mdx | 2 +- api_docs/serverless_observability.mdx | 2 +- api_docs/serverless_search.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/slo.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/text_based_languages.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_doc_viewer.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/uptime.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 686 files changed, 922 insertions(+), 937 deletions(-) diff --git a/api_docs/actions.devdocs.json b/api_docs/actions.devdocs.json index 95740f00086f3..a2d636190c118 100644 --- a/api_docs/actions.devdocs.json +++ b/api_docs/actions.devdocs.json @@ -231,7 +231,7 @@ "section": "def-server.CaseConnector", "text": "CaseConnector" }, - "<Config, Secrets> extends ", + "<Config, Secrets, Incident, GetIncidentResponse> extends ", { "pluginId": "actions", "scope": "server", @@ -240,7 +240,8 @@ "text": "SubActionConnector" }, "<Config, Secrets> implements ", - "CaseConnectorInterface" + "CaseConnectorInterface", + "<Incident, GetIncidentResponse>" ], "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", "deprecated": false, @@ -281,6 +282,29 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "actions", + "id": "def-server.CaseConnector.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "pushToServiceIncidentParamsSchema", + "description": [], + "signature": [ + "Record<string, ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "<unknown>>" + ], + "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -293,7 +317,7 @@ "label": "addComment", "description": [], "signature": [ - "({ incidentId, comment, }: { incidentId: string; comment: string; }) => Promise<unknown>" + "({ incidentId, comment, }: { incidentId: string; comment: string; }) => Promise<void>" ], "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", "deprecated": false, @@ -345,7 +369,7 @@ "label": "createIncident", "description": [], "signature": [ - "(incident: Record<string, unknown>) => Promise<", + "(incident: Incident) => Promise<", "ExternalServiceIncidentResponse", ">" ], @@ -356,12 +380,12 @@ { "parentPluginId": "actions", "id": "def-server.CaseConnector.createIncident.$1", - "type": "Object", + "type": "Uncategorized", "tags": [], "label": "incident", "description": [], "signature": [ - "Record<string, unknown>" + "Incident" ], "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", "deprecated": false, @@ -379,7 +403,7 @@ "label": "updateIncident", "description": [], "signature": [ - "({ incidentId, incident, }: { incidentId: string; incident: Record<string, unknown>; }) => Promise<", + "({ incidentId, incident, }: { incidentId: string; incident: Incident; }) => Promise<", "ExternalServiceIncidentResponse", ">" ], @@ -412,12 +436,12 @@ { "parentPluginId": "actions", "id": "def-server.CaseConnector.updateIncident.$1.incident", - "type": "Object", + "type": "Uncategorized", "tags": [], "label": "incident", "description": [], "signature": [ - "{ [x: string]: unknown; }" + "Incident" ], "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", "deprecated": false, @@ -436,9 +460,7 @@ "label": "getIncident", "description": [], "signature": [ - "({ id }: { id: string; }) => Promise<", - "ExternalServiceIncidentResponse", - ">" + "({ id }: { id: string; }) => Promise<GetIncidentResponse>" ], "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", "deprecated": false, @@ -479,9 +501,7 @@ "label": "pushToService", "description": [], "signature": [ - "(params: ", - "PushToServiceParams", - ") => Promise<", + "(params: { incident: { externalId: string | null; } & Incident; comments: { commentId: string; comment: string; }[]; }) => Promise<", "PushToServiceResponse", ">" ], @@ -496,13 +516,39 @@ "tags": [], "label": "params", "description": [], - "signature": [ - "PushToServiceParams" - ], "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "children": [ + { + "parentPluginId": "actions", + "id": "def-server.CaseConnector.pushToService.$1.incident", + "type": "CompoundType", + "tags": [], + "label": "incident", + "description": [], + "signature": [ + "{ externalId: string | null; } & Incident" + ], + "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "actions", + "id": "def-server.CaseConnector.pushToService.$1.comments", + "type": "Array", + "tags": [], + "label": "comments", + "description": [], + "signature": [ + "{ commentId: string; comment: string; }[]" + ], + "path": "x-pack/plugins/actions/server/sub_action_framework/case.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "returnComment": [] @@ -3724,9 +3770,9 @@ "label": "getCaseConnectorClass", "description": [], "signature": [ - "<Config, Secrets>() => ", - "IServiceAbstract", - "<Config, Secrets>" + "<Config, Secrets, Incident, GetIncidentResponse>() => ", + "ICaseServiceAbstract", + "<Config, Secrets, Incident, GetIncidentResponse>" ], "path": "x-pack/plugins/actions/server/plugin.ts", "deprecated": false, diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 1fd7347b53a07..235eb1266444a 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 298 | 0 | 292 | 32 | +| 301 | 0 | 295 | 32 | ## Client diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 4ad58dc5c0285..9f715de756869 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx index 044214e705094..56c82f528294c 100644 --- a/api_docs/ai_assistant_management_selection.mdx +++ b/api_docs/ai_assistant_management_selection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection title: "aiAssistantManagementSelection" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementSelection plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection'] --- import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index bd5c1d94c367a..36a180e2b4c3f 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 80b5ab08b9fc2..ddaf4a2a4c7f8 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 05fe4879625a3..1eabcac165064 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -273,9 +273,9 @@ "APMPluginSetupDependencies", ") => { config$: ", "Observable", - "<Readonly<{} & { enabled: boolean; autoCreateApmDataView: boolean; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; serviceMapTerminateAfter: number; serviceMapMaxTraces: number; ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; searchAggregatedTransactions: ", + "<Readonly<{} & { enabled: boolean; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; autoCreateApmDataView: boolean; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; serviceMapTerminateAfter: number; serviceMapMaxTraces: number; ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; ruleFormV2Enabled: boolean; }>; }>>; }" + "; telemetryCollectionEnabled: boolean; metricsInterval: number; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; ruleFormV2Enabled: boolean; }>; }>>; }" ], "path": "x-pack/plugins/observability_solution/apm/server/plugin.ts", "deprecated": false, @@ -448,9 +448,9 @@ "label": "APMConfig", "description": [], "signature": [ - "{ readonly enabled: boolean; readonly autoCreateApmDataView: boolean; readonly serviceMapEnabled: boolean; readonly serviceMapFingerprintBucketSize: number; readonly serviceMapFingerprintGlobalBucketSize: number; readonly serviceMapTraceIdBucketSize: number; readonly serviceMapTraceIdGlobalBucketSize: number; readonly serviceMapMaxTracesPerRequest: number; readonly serviceMapTerminateAfter: number; readonly serviceMapMaxTraces: number; readonly ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; readonly searchAggregatedTransactions: ", + "{ readonly enabled: boolean; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly autoCreateApmDataView: boolean; readonly serviceMapEnabled: boolean; readonly serviceMapFingerprintBucketSize: number; readonly serviceMapFingerprintGlobalBucketSize: number; readonly serviceMapTraceIdBucketSize: number; readonly serviceMapTraceIdGlobalBucketSize: number; readonly serviceMapMaxTracesPerRequest: number; readonly serviceMapTerminateAfter: number; readonly serviceMapMaxTraces: number; readonly ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; readonly searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly forceSyntheticSource: boolean; readonly latestAgentVersionsUrl: string; readonly serverless: Readonly<{} & { enabled: true; }>; readonly serverlessOnboarding: boolean; readonly managedServiceUrl: string; readonly featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; ruleFormV2Enabled: boolean; }>; }" + "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly forceSyntheticSource: boolean; readonly latestAgentVersionsUrl: string; readonly serverless: Readonly<{} & { enabled: true; }>; readonly serverlessOnboarding: boolean; readonly managedServiceUrl: string; readonly featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; ruleFormV2Enabled: boolean; }>; }" ], "path": "x-pack/plugins/observability_solution/apm/server/index.ts", "deprecated": false, @@ -917,19 +917,21 @@ "StringC", "; 'container.id': ", "StringC", + "; 'kubernetes.pod.name': ", + "StringC", "; }>]>; }> | undefined; handler: ({}: ", "APMRouteHandlerResources", - " & { params: { query: { alert_started_at: string; } & { 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.name'?: string | undefined; 'host.name'?: string | undefined; 'container.id'?: string | undefined; }; }; }) => Promise<{ serviceSummary?: ", + " & { params: { query: { alert_started_at: string; } & { 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.name'?: string | undefined; 'host.name'?: string | undefined; 'container.id'?: string | undefined; 'kubernetes.pod.name'?: string | undefined; }; }; }) => Promise<{ serviceSummary?: ", "ServiceSummary", " | undefined; downstreamDependencies?: ", "APMDownstreamDependency", - "[] | undefined; logCategories: ", + "[] | undefined; logCategories?: ", "LogCategories", - "; serviceChangePoints: { title: string; changes: ", + "; serviceChangePoints?: { title: string; changes: ", "TimeseriesChangePoint", - "[]; }[]; exitSpanChangePoints: { title: string; changes: ", + "[]; }[] | undefined; exitSpanChangePoints?: { title: string; changes: ", "TimeseriesChangePoint", - "[]; }[]; anomalies: { '@timestamp': string; metricName: string; \"service.name\": string; \"service.environment\": \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", + "[]; }[] | undefined; anomalies?: { '@timestamp': string; metricName: string; \"service.name\": string; \"service.environment\": \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", "Branded", "<string, ", { @@ -939,7 +941,7 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; \"transaction.type\": string; anomalyScore: string | number | null; actualValue: number; expectedBoundsLower: number; expectedBoundsUpper: number; }[]; }>; } & ", + ">; \"transaction.type\": string; anomalyScore: string | number | null; actualValue: number; expectedBoundsLower: number; expectedBoundsUpper: number; }[] | undefined; }>; } & ", "APMRouteCreateOptions", "; \"POST /internal/apm/assistant/get_apm_timeseries\": { endpoint: \"POST /internal/apm/assistant/get_apm_timeseries\"; params?: ", "TypeC", @@ -7926,9 +7928,9 @@ "description": [], "signature": [ "Observable", - "<Readonly<{} & { enabled: boolean; autoCreateApmDataView: boolean; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; serviceMapTerminateAfter: number; serviceMapMaxTraces: number; ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; searchAggregatedTransactions: ", + "<Readonly<{} & { enabled: boolean; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; autoCreateApmDataView: boolean; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; serviceMapTerminateAfter: number; serviceMapMaxTraces: number; ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; ruleFormV2Enabled: boolean; }>; }>>" + "; telemetryCollectionEnabled: boolean; metricsInterval: number; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; ruleFormV2Enabled: boolean; }>; }>>" ], "path": "x-pack/plugins/observability_solution/apm/server/types.ts", "deprecated": false, diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 8665ca630783d..2f87aa59a7751 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index 2e7f9cfde4693..c4c03333823c9 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 43aa7b6842f2e..3f67f06dc42a5 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index e0cb6d6fbf276..b0d31fb29446e 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index cf8b9671663fa..1d53fde562bee 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 87fa606df1ed1..f090926eb8a66 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 2d2970efadfd4..a08ec62044c1f 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 07f13bff0c33e..744434d03b9e3 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 3b886a5aa17d6..50ec3784ee51d 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 27a738e5f29de..5789a1bafec32 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 16dd20cda1b19..a08a47e4542e3 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 00132de728bcd..48ede8336aaa2 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index c876a57c2f8b5..e2c44d0c3b033 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 84efeaa26e25f..7aec6b5f42ff9 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index d2a23746cbd28..a70ac9c2e0eb1 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 306313aaa4df3..bfed4d645626e 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 6b629b09fd8be..fcf993fd83945 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.devdocs.json b/api_docs/dashboard.devdocs.json index a77f98f8ac102..9026c7aaf99f6 100644 --- a/api_docs/dashboard.devdocs.json +++ b/api_docs/dashboard.devdocs.json @@ -1841,6 +1841,7 @@ "label": "executionContext", "description": [], "signature": [ + "{ readonly type?: string | undefined; readonly name?: string | undefined; readonly page?: string | undefined; readonly id?: string | undefined; readonly description?: string | undefined; readonly url?: string | undefined; readonly meta?: { [key: string]: string | number | boolean | undefined; } | undefined; child?: ", { "pluginId": "@kbn/core-execution-context-common", "scope": "common", @@ -1848,7 +1849,7 @@ "section": "def-common.KibanaExecutionContext", "text": "KibanaExecutionContext" }, - " | undefined" + " | undefined; }" ], "path": "src/plugins/dashboard/common/dashboard_container/types.ts", "deprecated": false, diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index ac078e4337b98..7b994dd255d7e 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index e294ac4462ae3..0677e2d4a1017 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 54ae2d29b90cd..b39328966ea9c 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 670b749777582..0e22cdc482aca 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 1aff16458a1aa..c2ff9efe3af71 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 1db1f5fb214f9..b31b991de2530 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index 1ade689c92649..b7dd9d023af35 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index 4b25306777b9b..26b4c6f10ed71 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index dc4c2899f3aba..24c07b0cfbf20 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index 5dd35e53aaad1..fac8c97f8aa7c 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index 039d4d01f504b..43bce00047f50 100644 --- a/api_docs/dataset_quality.mdx +++ b/api_docs/dataset_quality.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality title: "datasetQuality" image: https://source.unsplash.com/400x175/?github description: API docs for the datasetQuality plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality'] --- import datasetQualityObj from './dataset_quality.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 33b126ad89297..051e7415a342f 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index f676745d3a966..aae677be01c4a 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index f2ee962027da4..7b40831d1685f 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 9f0a585fe296c..ade608994ec68 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.devdocs.json b/api_docs/discover.devdocs.json index 621887eb7825d..f0e9fcc18d422 100644 --- a/api_docs/discover.devdocs.json +++ b/api_docs/discover.devdocs.json @@ -662,74 +662,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "discover", - "id": "def-public.DiscoverProfileOptions", - "type": "Interface", - "tags": [], - "label": "DiscoverProfileOptions", - "description": [], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "discover", - "id": "def-public.DiscoverProfileOptions.customize", - "type": "Function", - "tags": [], - "label": "customize", - "description": [], - "signature": [ - "(options: ", - "CustomizationCallbackContext", - ") => void | (() => void) | Promise<void | (() => void)>" - ], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "discover", - "id": "def-public.DiscoverProfileOptions.customize.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "CustomizationCallbackContext" - ], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "discover", - "id": "def-public.DiscoverProfileOptions.deepLinks", - "type": "Array", - "tags": [], - "label": "deepLinks", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.AppDeepLink", - "text": "AppDeepLink" - }, - "<string>[] | undefined" - ], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "discover", "id": "def-public.DiscoverStateContainer", @@ -1568,21 +1500,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "discover", - "id": "def-public.DiscoverProfileId", - "type": "Type", - "tags": [], - "label": "DiscoverProfileId", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "discover", "id": "def-public.ISearchEmbeddable", @@ -1618,63 +1535,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "discover", - "id": "def-public.RegisterCustomizationProfile", - "type": "Type", - "tags": [], - "label": "RegisterCustomizationProfile", - "description": [], - "signature": [ - "(id: string, options: ", - { - "pluginId": "discover", - "scope": "public", - "docId": "kibDiscoverPluginApi", - "section": "def-public.DiscoverProfileOptions", - "text": "DiscoverProfileOptions" - }, - ") => void" - ], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "discover", - "id": "def-public.RegisterCustomizationProfile.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "discover", - "id": "def-public.RegisterCustomizationProfile.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "discover", - "scope": "public", - "docId": "kibDiscoverPluginApi", - "section": "def-public.DiscoverProfileOptions", - "text": "DiscoverProfileOptions" - } - ], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "discover", "id": "def-public.SEARCH_EMBEDDABLE_CELL_ACTIONS_TRIGGER_ID", @@ -1892,62 +1752,6 @@ "path": "src/plugins/discover/public/plugin.tsx", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "discover", - "id": "def-public.DiscoverStart.registerCustomizationProfile", - "type": "Function", - "tags": [], - "label": "registerCustomizationProfile", - "description": [], - "signature": [ - "(id: string, options: ", - { - "pluginId": "discover", - "scope": "public", - "docId": "kibDiscoverPluginApi", - "section": "def-public.DiscoverProfileOptions", - "text": "DiscoverProfileOptions" - }, - ") => void" - ], - "path": "src/plugins/discover/public/plugin.tsx", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "discover", - "id": "def-public.DiscoverStart.registerCustomizationProfile.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "discover", - "id": "def-public.DiscoverStart.registerCustomizationProfile.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "discover", - "scope": "public", - "docId": "kibDiscoverPluginApi", - "section": "def-public.DiscoverProfileOptions", - "text": "DiscoverProfileOptions" - } - ], - "path": "src/plugins/discover/public/customizations/types.ts", - "deprecated": false, - "trackAdoption": false - } - ] } ], "lifecycle": "start", @@ -3050,22 +2854,6 @@ "path": "src/plugins/discover/common/app_locator.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "discover", - "id": "def-common.DiscoverAppLocatorParams.profile", - "type": "string", - "tags": [], - "label": "profile", - "description": [ - "\nThe Discover profile to use" - ], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/discover/common/app_locator.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index df156033e596b..e7cc9c0433189 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 156 | 0 | 108 | 27 | +| 144 | 0 | 97 | 27 | ## Client diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index cfb5492155604..ec2b1653b1ecf 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 2bca37f7d9e54..5073c811f88bd 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index c612bd39cc10c..e69a37548dac6 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index a2a627bc03350..84f5b4da0e481 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index ea9a2c39ad002..145b383759ee9 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 50bccd787a9f0..e890f605ab27f 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index 7fc9120d309ea..be775ba090f11 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 06c02cfa9b605..c01e4b5491890 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 65e4893f9104e..8bbdd258cb71f 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx index 96fde09a46d67..a868685e0aa6c 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index f1a4fa3b57020..a395ebaf5fe8e 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 2f46e78554732..c169985583d61 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 0b7095a0352c3..35d3fb33eb5c0 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index 39ff778c6684e..c1384d0493f0f 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 4460faf1bbfd4..02632d6c70308 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 0b8e2ee9ecb29..34e62baea614d 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index 90d4f7c8a13a1..10989b4d27d3e 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index 83b96e2c972ee..23a28acbab697 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index b24f93a95b7c9..26d4c9bd16d67 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index e07a4ca0512eb..627e5ebb047b0 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index c528fefbb987e..95133924e7040 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 69945a6d00f79..eb5be730a6e94 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index 252ed72ef9892..e40c9570e903f 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index 98280252f47c7..3d273cea5b21a 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 0a98bf0d7f600..af4e24b6d53d4 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index 5c6585756dc31..33736bc6b7646 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 7c42d35af4235..0705c0f61454f 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 79699821c1e1d..65dcc4d14b590 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 17e725046c2f0..d9db257d5f427 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 7bb001c6b9c4e..d52753688099f 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index 3c3e2fc6d9bb8..1b719d00692e4 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index b6e54e1ea3baf..2bc8c2c922f90 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index cff29d529056f..0026b7b14891d 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index f5e75e7882467..9c0abfd9f8503 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 8e59ba4db41bb..c12d2ec33e90c 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index f174c67ed4b5f..a607adb784c31 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 8928a207d60e4..6674010f245f4 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index da50e6d4f7d80..52d72954dce56 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 0223f47e6b2a1..dd0a36d20525f 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx index 0f6265cbc160d..6f88226b93574 100644 --- a/api_docs/ingest_pipelines.mdx +++ b/api_docs/ingest_pipelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines title: "ingestPipelines" image: https://source.unsplash.com/400x175/?github description: API docs for the ingestPipelines plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines'] --- import ingestPipelinesObj from './ingest_pipelines.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index b80e101155e7e..7b2fc2fd7a675 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index e0d0af4c47fb6..01fac0a87fb13 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index df9f795e16fcd..d5b6891424e13 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx index f791c73ed0c4e..301a6a6450b04 100644 --- a/api_docs/kbn_actions_types.mdx +++ b/api_docs/kbn_actions_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types title: "@kbn/actions-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/actions-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types'] --- import kbnActionsTypesObj from './kbn_actions_types.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index 8f46edf664cbf..0c0a617652fab 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx index 9fc50aee2f196..f8c3d59e10f37 100644 --- a/api_docs/kbn_aiops_log_pattern_analysis.mdx +++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis title: "@kbn/aiops-log-pattern-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-pattern-analysis plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis'] --- import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx index 9add71133906e..61c4fe116b14b 100644 --- a/api_docs/kbn_aiops_log_rate_analysis.mdx +++ b/api_docs/kbn_aiops_log_rate_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis title: "@kbn/aiops-log-rate-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-rate-analysis plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis'] --- import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index 072bd4fe4fe0b..5dff30d92a0fb 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index bf6fca7f67d51..939ac46ec08a8 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx index 002efeb7a350f..0c87a9a1bc7fa 100644 --- a/api_docs/kbn_alerting_types.mdx +++ b/api_docs/kbn_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types title: "@kbn/alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types'] --- import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 394ff33e48ab0..d3541c8cc1bd1 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index a2bbfa67c9810..3da465b85eb3a 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 0266206c37a26..690a200240a69 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index ef07914f8fa36..c99246faddff3 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index 20fbda8215e16..dab51002b381d 100644 --- a/api_docs/kbn_analytics_collection_utils.mdx +++ b/api_docs/kbn_analytics_collection_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils title: "@kbn/analytics-collection-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-collection-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 27d4d95554922..568a9973bccb3 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index bee0e2c709105..c70ea896335f6 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index d14361538bf59..d64d158ba540d 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index 68b35b803efac..8c65716765fe0 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 9024a0fdb276a..1545c6d4e7125 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_data_view.mdx b/api_docs/kbn_apm_data_view.mdx index a84d07d07ee11..325909e4480e9 100644 --- a/api_docs/kbn_apm_data_view.mdx +++ b/api_docs/kbn_apm_data_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view title: "@kbn/apm-data-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-data-view plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view'] --- import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index e8298efdf1a43..26ca80ec65f7d 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 35805e4c80791..f76b0993977b2 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index e85d293453fa7..096a975c09a41 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 4ceb8c139a34c..86f1908d62574 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx index b0232819f2275..9e47e776a5f99 100644 --- a/api_docs/kbn_bfetch_error.mdx +++ b/api_docs/kbn_bfetch_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error title: "@kbn/bfetch-error" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/bfetch-error plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error'] --- import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json'; diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx index 4d3a1d37fd775..c9c14a6ef0ab1 100644 --- a/api_docs/kbn_calculate_auto.mdx +++ b/api_docs/kbn_calculate_auto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto title: "@kbn/calculate-auto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-auto plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto'] --- import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json'; diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx index 5dfe19dd3d140..9dc645f34f1f7 100644 --- a/api_docs/kbn_calculate_width_from_char_count.mdx +++ b/api_docs/kbn_calculate_width_from_char_count.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count title: "@kbn/calculate-width-from-char-count" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-width-from-char-count plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count'] --- import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index 78cf30bb57b53..ff6992ca6e152 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 5aa84dc9322e1..ad952476aa655 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index c00de26cb7fdf..260bd120cdbc6 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index db52651adecbd..1a2cf277616c2 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index 1a3cda9a55bdc..cbfbc0654a47e 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 0c9f0f96093bb..9cf43a8bf4e5f 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index 96121f4540681..e2aa5242cba73 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 4d6b5be2fedad..6f54f83359313 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 9506c654076e4..4dee60b0400f2 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx index 866c865b3b593..1d321c53a1fd6 100644 --- a/api_docs/kbn_code_editor_mock.mdx +++ b/api_docs/kbn_code_editor_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock title: "@kbn/code-editor-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mock plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock'] --- import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json'; diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx index 6b529bb6e9c8b..98f5a0893e848 100644 --- a/api_docs/kbn_code_owners.mdx +++ b/api_docs/kbn_code_owners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners title: "@kbn/code-owners" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-owners plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners'] --- import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 6ef0056b50d5f..3dd133a7c9991 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index 8f7e0e8a1815a..92cd886766239 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index fe1bc5a0c7f35..9dd1240a9e63f 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index e08798fbb9c7f..1bcd7b59d822b 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 7d8151d799226..9079b7eaa123d 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index e09776bd510a6..877570dce5a5b 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view'] --- import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx index d2e80260a6ca4..04aa3d5da3b4a 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx index 5c1a03d59984a..68c0ec18e0850 100644 --- a/api_docs/kbn_content_management_table_list_view_common.mdx +++ b/api_docs/kbn_content_management_table_list_view_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common title: "@kbn/content-management-table-list-view-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common'] --- import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index 63ac806e2ecd0..7c5305431f531 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index 240948d3e4a28..da368c084ea0c 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 7ff3adf888e4d..0a204a56afa15 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index 7b177db5f7b11..b6668b3b7b7b3 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index c9047b1e5258c..9662072ce8c4d 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 26c0fddb3db62..8fb068910ef2d 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index f075d189f26db..7a18c0d053f24 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index c6886bd2fdd16..0e98a183afa03 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index f17ec400266c2..12342aabaf769 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index 2f12a8ef907c7..f8d32769b8b15 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index f9b12f3c4734c..54d79bc639ee9 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index ddc8e6544832e..4214aff23ba0d 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index fb055e600fa8c..506ab63b5de4c 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index dea53c00dee8f..59d27fbf6d9d2 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 876268518a70d..c9f1d555786a9 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index cdaa56f8a455b..89f218b480d06 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index ef7b5be3c5b80..2ca2c3d09f42f 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index a46e85e500416..bfb3dfbecc3a1 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index eb220edb9a6e6..0ea99a78ba273 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index 39401285becb6..ddc4ba57f7b1e 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 578ff065b5836..5a443590dbefd 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 55adfd0793fbd..4264623e3c459 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 7d3075c45d248..3f53d58543840 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index dbcb1bb67321f..66a6cea1bd75b 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 3f25cf3801fe1..6b29876c1001b 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index 3877f1998ee0a..8f7a15c981933 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index dbbbd5aec530a..657a771deaf15 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 2590374afdea3..ca5d98231a7e0 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index e2e8051d3e569..efafe81496b5f 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index eb53060cdef80..9b45bc6fb4625 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index f5206bb2ea733..bf39acdeb71d3 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index c1e2058bbde3d..e24ea96e8546f 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 59162f3d7e46a..23c98d99ee4a0 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 5afc3310f73bb..fe9094ca403ac 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 4009621a5ee0f..ad12b70b172d3 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index a7503e761648b..9d7ce31d8f39e 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index b1fde4c717cf2..2850f6b3a8717 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index c769b7cdedb26..ff290c1d60bf9 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index eb89b1f92fd8b..1f60a36b0aa8e 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index c5a0dadf2efaf..093fad53a5eff 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 0662f814f57c4..32d3af2cbc31f 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index cd70bfa6c489c..66cd6ad3871b3 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index 1a0593c6fd866..bd6e61ea6f045 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index fbf7f888383a9..06b4dad10f173 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 9469f4a30e821..5106b0e50183a 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index deebb231252ab..fda28d6de853a 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index cec76e7d6b57d..1d4c321dcf166 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 4d2e8bf270196..1b07f53ce0909 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index 65dd63ea828f2..869ddc51920af 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 627cc2520da4b..1fdf99dd10787 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index 640cc365b6f0d..2282f04fcaf9b 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 51a716da07273..0d7f4bacf65aa 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 218f3ee46e35b..4365762d5bf54 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 832ebdc4f505e..0d2ed14d9224c 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index cdde287062066..7e45f6f5f9b2d 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index 65bad55967eea..cc869e7634e2d 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index 081f510bab1f9..c1d41eb5f5b2d 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index 95926f50176a7..5381f0fdab50c 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index c48495224d547..2dd1638442817 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index f8877417e36a8..99798c93b1b74 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index b558c9312f63f..de404fb3e0c05 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 3d17c5fb6e74f..903b5859325ce 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index 326239d33ecc9..f8a441132bff3 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index 2e48f5da6a139..7fa5824dafb66 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index 978788c30a0b7..2a6c98d76001c 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 2f2cd02edc94e..88dfccd74b6c8 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index f2cc29f33a559..105d07744289a 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index e552deeee03d9..10ba6c5171998 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index 103d963185953..f5d4a42b63a63 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index c0e51954b659b..0b609b0d9fb05 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 1e863f5557bdb..304c25dc83d4c 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 1593bd2c338c6..0ab6d565a670e 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 0fd75d7030f42..75c1d32578974 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index feba59ea87527..4c6417664901a 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index c6acf55d57c15..fd4a198e34fae 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index db72b53d5ac95..07bc8129e321e 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index f5819e791ba57..9a0b73a66d182 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 6a30c8c9f31ae..639b97329653f 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index 2df1befcfc750..32bc2534136c8 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 6206e6dde14a4..f400a2bb8d0d5 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index 03dfea619fb28..723cf32dfd847 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index dfe6e16942527..7441444df9dec 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 6c0478473d5eb..15eb3f157f830 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 32635a2fd2399..c41a43af63c4a 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index 3bbc63bf01679..772708bbd92e2 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index 90241b2897625..a02739a32c80d 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index a3ec7cab2ccb0..6debe13186733 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 6113d2b60d61f..7e6b52528f740 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 6d5b8e09b765d..75185d79a6b72 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 096b85dbfdb88..8d45f15a9dc61 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index 5262603d6478e..9d74924886779 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index aa867cb1b93b7..9bb63720d4519 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index e4e4c8eb2c3cb..99c9ea5429eb1 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 677f15700444a..5c847095613b4 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 845e74808475f..e9a9fbc64a4ed 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index ff6cfbdca6eb5..7ecd0b043606a 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index b89bcebfede68..3a54ebfe39d8a 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index 33a79164503f9..ecd1974e0621e 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index aea0fdf9701a0..6663cb037daf2 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index d806418afd319..0f440625c9090 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index b607a07221395..0067d326438c4 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 419278892e801..4ca72d13812fe 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index b44d18fec7aee..648fa9a59a66f 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 9547089954f6e..2f544dfa0b595 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 81c9332bee482..31b8363631d90 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index 19f7e95299fc3..f869fb78ab434 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index b0a98007ac6a3..4ce6b25dc82f1 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 33cf5715a414e..74e2f1ca5e624 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx index 6a25757aa525f..d98ca06bf612d 100644 --- a/api_docs/kbn_core_plugins_contracts_browser.mdx +++ b/api_docs/kbn_core_plugins_contracts_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser title: "@kbn/core-plugins-contracts-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser'] --- import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx index 325d27316909e..2d06a8b3ff14e 100644 --- a/api_docs/kbn_core_plugins_contracts_server.mdx +++ b/api_docs/kbn_core_plugins_contracts_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server title: "@kbn/core-plugins-contracts-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server'] --- import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 5a91383572762..28db3d9cac474 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index 8468f3196415a..645e0b02764ad 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index c73e535065fbe..25c412ab41489 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index ea93e9e4ad41c..8a2da5d889d01 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index 45c38f78a76f9..76f56aab806d6 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 4dbe0929624e9..febad0a87348b 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index b687493b1908d..b516bd556a7be 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index 2003684fe2fa5..d05993b3ee862 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 520b00bc4683a..e0342c2296a32 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 0440e77befc47..80d5522d09a87 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index cba98a2c44d91..6a45ebe10cb2d 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 56b3f3fcae640..c5cc35c38d536 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 0b5ec1725fc57..9dab18ce0dda3 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 175d3615df9b1..4a617ceca43a3 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index b8f8509b3d085..556c52eb0cf70 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index c0ec7684588bf..d4011ecc8ac09 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index d9f54d516e95d..09bc97c71f389 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index b3ddc7108b63a..1d3e53e5f37d6 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 554388073c9ac..d54c9a06c999f 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 055ff99eecc81..5d253a1fcebfe 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 4457a55cd0b04..bc90bb029a561 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 19d9d6d98a3d6..f0acc463e0d71 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index 1e142b66d2856..d10976e32036d 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index 09099196954c3..c133dd6496f4d 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index 4ae6b60a55606..6189862dde2fe 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx index 12a74fb1f4223..1e0ac27003ed2 100644 --- a/api_docs/kbn_core_security_browser.mdx +++ b/api_docs/kbn_core_security_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser title: "@kbn/core-security-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser'] --- import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx index 1f872d6745c24..c822adadfd52b 100644 --- a/api_docs/kbn_core_security_browser_internal.mdx +++ b/api_docs/kbn_core_security_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal title: "@kbn/core-security-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal'] --- import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx index e119f75f43bdc..74f4494728607 100644 --- a/api_docs/kbn_core_security_browser_mocks.mdx +++ b/api_docs/kbn_core_security_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks title: "@kbn/core-security-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks'] --- import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx index 32d21af09688e..21d7c07863849 100644 --- a/api_docs/kbn_core_security_common.mdx +++ b/api_docs/kbn_core_security_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common title: "@kbn/core-security-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common'] --- import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json'; diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx index 91fb4150abc18..245fb3fe42383 100644 --- a/api_docs/kbn_core_security_server.mdx +++ b/api_docs/kbn_core_security_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server title: "@kbn/core-security-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server'] --- import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx index 01266ac8bf68d..89f3194d4c5b6 100644 --- a/api_docs/kbn_core_security_server_internal.mdx +++ b/api_docs/kbn_core_security_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal title: "@kbn/core-security-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal'] --- import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx index cbe0ee9b0c136..f288e62b8c557 100644 --- a/api_docs/kbn_core_security_server_mocks.mdx +++ b/api_docs/kbn_core_security_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks title: "@kbn/core-security-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks'] --- import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index a571d3881a413..b5129581076d6 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index 65138cfd3613e..30c76329f6cc1 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 1b01a8a6000ac..6c6807dda84ac 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 87a7fc61321ad..88ff212d20753 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index ae4adf1296bb2..be958b13cde01 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 0eef0d401957f..c296da59987c1 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 7cb6ea6631a6b..5eb1532587066 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 72068a5586c23..6d32ea2acd858 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx index aa582a4c54e24..bf5ab83cd3dbd 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions'] --- import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 2a024ac64fa92..ed2c87c8d603a 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 0f7c487a7b131..4f825f001700f 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 8fdc9f9bf0e44..85f4acceadcee 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index a11ae8572b3fa..f85cb113b68f0 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 1abcef2cef0b1..5128e17c1785f 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index 86e92a754753c..d94e517c67b2c 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index dcfc5302cdecd..4120662a38f5d 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 5b655735d154f..d09f1cf33f833 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 86710ab969d19..ca048814e059a 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 717f7c673b00e..4b5ecb14752c7 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 74ee9688828f9..27b16fa43ccea 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 7ce60ee6c70ac..8e6c8a1ff904e 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 3e88ed0884024..cc84cea0f733c 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index 57631e9c886a4..a18a4b9e607a6 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index 6c8b57057b43a..8156723ed27fc 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index de3eb5db57c0b..74c5eaf226c27 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index 275c0194b27a7..0747c4c994a0d 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks'] --- import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index aa13d65f380ff..7e09294109071 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index 1d97580b4a95d..513ee828dc01f 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx index 295836997ef55..285cd9c3de222 100644 --- a/api_docs/kbn_custom_icons.mdx +++ b/api_docs/kbn_custom_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons title: "@kbn/custom-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-icons plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons'] --- import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json'; diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx index d18725804a080..afe508066ac73 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations'] --- import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 3a2b0b82b2f8d..8290aa0680f95 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx index f0bac9ac900f5..8218cdc2b1d03 100644 --- a/api_docs/kbn_data_forge.mdx +++ b/api_docs/kbn_data_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge title: "@kbn/data-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-forge plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge'] --- import kbnDataForgeObj from './kbn_data_forge.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index f2df9d5740657..06051368c6b14 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx index d245d7a25459f..e6113baf753ad 100644 --- a/api_docs/kbn_data_stream_adapter.mdx +++ b/api_docs/kbn_data_stream_adapter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter title: "@kbn/data-stream-adapter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-stream-adapter plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter'] --- import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json'; diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx index 8607aee930157..3d4d3e7658870 100644 --- a/api_docs/kbn_data_view_utils.mdx +++ b/api_docs/kbn_data_view_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils title: "@kbn/data-view-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-view-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils'] --- import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index ce7d9c940c420..70fc182a06204 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx index 309b5f8707d1e..3e7172fd8879c 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics'] --- import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx index 61c6ade944808..66fc3dfa31517 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx index 3c3ed137f2004..e6355a2af33ff 100644 --- a/api_docs/kbn_deeplinks_fleet.mdx +++ b/api_docs/kbn_deeplinks_fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet title: "@kbn/deeplinks-fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-fleet plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet'] --- import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index bb0e586571fb6..b769caf16d7c0 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index 8f4d63c40747a..2f4c2c7aa7fe2 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index 1f076393b34ca..f6c2f902f3976 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index 1c02f87a11674..d00f7ad0a87d9 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx index 0916d8645b244..9837cb248de99 100644 --- a/api_docs/kbn_deeplinks_security.mdx +++ b/api_docs/kbn_deeplinks_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security title: "@kbn/deeplinks-security" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-security plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security'] --- import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx index e6eda43dc1d9d..19484a172a087 100644 --- a/api_docs/kbn_deeplinks_shared.mdx +++ b/api_docs/kbn_deeplinks_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared title: "@kbn/deeplinks-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-shared plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared'] --- import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index 9ec9cc34c98b7..67c104a34037f 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics'] --- import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json'; diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx index 3d49804a57e0e..36d5b2fc5f0c8 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools'] --- import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json'; diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx index 392fb09b15433..6cf1e08f65461 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 8892b12474a4c..876fa9595c288 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml'] --- import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index c6eef0acabbba..2b01a3124dd62 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index d93a907e6f9bb..040e6d5faaa37 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 1986c32f1b154..b19c838382cb2 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index ae20b67a11f1f..02f6932678e50 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index cce6fe3b155e7..ae1f72bd85d71 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index aa00fc60b8bbf..d317ef3710703 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 8e99112b0087a..2d01243368a30 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index e3695ef29c5ff..49721c873cc67 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 0cd988a69ad42..5c4f362c48a12 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index bbb0367472860..2684fd2a92ebe 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx index 9cea7141133ad..843556bb76e86 100644 --- a/api_docs/kbn_elastic_agent_utils.mdx +++ b/api_docs/kbn_elastic_agent_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils title: "@kbn/elastic-agent-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-agent-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils'] --- import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index cd7f0f6d71b09..26ee1604a56f3 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index ba486cabf38f2..7611184bdc72d 100644 --- a/api_docs/kbn_elastic_assistant_common.mdx +++ b/api_docs/kbn_elastic_assistant_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common title: "@kbn/elastic-assistant-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index e5323e9cd85e9..a5926d79cbf35 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 0adec688d527e..3c3a630cfcc40 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index b0c266a62093b..720805bac91d9 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 37595d6249acd..6f2a1acac4a0b 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 9cef5c76ea35d..2e35e13d9fbcc 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 6214dd18df301..0d6be432c7cb4 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx index a7c73595a52a9..93a8bd2af4624 100644 --- a/api_docs/kbn_esql_ast.mdx +++ b/api_docs/kbn_esql_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast title: "@kbn/esql-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-ast plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast'] --- import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json'; diff --git a/api_docs/kbn_esql_utils.devdocs.json b/api_docs/kbn_esql_utils.devdocs.json index 508643d19c733..1e363e4a18013 100644 --- a/api_docs/kbn_esql_utils.devdocs.json +++ b/api_docs/kbn_esql_utils.devdocs.json @@ -19,6 +19,54 @@ "common": { "classes": [], "functions": [ + { + "parentPluginId": "@kbn/esql-utils", + "id": "def-common.appendToESQLQuery", + "type": "Function", + "tags": [], + "label": "appendToESQLQuery", + "description": [], + "signature": [ + "(baseESQLQuery: string, appendedText: string) => string" + ], + "path": "packages/kbn-esql-utils/src/utils/append_to_query.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/esql-utils", + "id": "def-common.appendToESQLQuery.$1", + "type": "string", + "tags": [], + "label": "baseESQLQuery", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-esql-utils/src/utils/append_to_query.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/esql-utils", + "id": "def-common.appendToESQLQuery.$2", + "type": "string", + "tags": [], + "label": "appendedText", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-esql-utils/src/utils/append_to_query.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/esql-utils", "id": "def-common.getESQLAdHocDataview", diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx index ffde42542170b..d71db17d712f0 100644 --- a/api_docs/kbn_esql_utils.mdx +++ b/api_docs/kbn_esql_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils title: "@kbn/esql-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils'] --- import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 21 | 0 | 19 | 0 | +| 24 | 0 | 22 | 0 | ## Common diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx index 56b136a54efee..34a6bc10ec4df 100644 --- a/api_docs/kbn_esql_validation_autocomplete.mdx +++ b/api_docs/kbn_esql_validation_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete title: "@kbn/esql-validation-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-validation-autocomplete plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete'] --- import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index 221f2c30cf6fb..cf0955335a7c4 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index bf27153c4e7c3..94c55c2f567b7 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index 4269967973d1a..dec3de8c3aef6 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 17b46004bf0a9..faabec75c60a6 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx index a03df66b77475..5871762d2f4c5 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils'] --- import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index f92ab3a34c730..ec42cf2864d98 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx index c8ba408daf619..05fb69a9a5359 100644 --- a/api_docs/kbn_formatters.mdx +++ b/api_docs/kbn_formatters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters title: "@kbn/formatters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/formatters plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters'] --- import kbnFormattersObj from './kbn_formatters.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index feb8604fb3646..9726682708ff6 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index 491f6523e9529..7d5ba302d589a 100644 --- a/api_docs/kbn_ftr_common_functional_ui_services.mdx +++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services title: "@kbn/ftr-common-functional-ui-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-ui-services plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services'] --- import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index b12baf073d776..d3ab46fb8243e 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx index 2c790f3da81c3..32f45c5d3e66b 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index f82a92b094589..7ceab50833a33 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index b9af074b2623b..bf635a787b613 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 0c906fb75ec19..a798a6232ac78 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index 618d47ecfc65b..f6476aa85f8c0 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 422683b953552..d64368d90434c 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index cd5168e84cf8a..2ec262bf0a490 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index dc6a117c90263..d874ae0f492d3 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 58510a059dbd6..5034fea39ef50 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index e03a3a95c2af1..fa202acb55e98 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 586ac233fcddd..5be59bf1765fd 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_index_management.mdx b/api_docs/kbn_index_management.mdx index 335feb03d8ce3..2b0bc72b4a78a 100644 --- a/api_docs/kbn_index_management.mdx +++ b/api_docs/kbn_index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management title: "@kbn/index-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/index-management plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management'] --- import kbnIndexManagementObj from './kbn_index_management.devdocs.json'; diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx index 2c2fa671e64b8..4b1cea3faa0a8 100644 --- a/api_docs/kbn_inference_integration_flyout.mdx +++ b/api_docs/kbn_inference_integration_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout title: "@kbn/inference_integration_flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/inference_integration_flyout plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout'] --- import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index be091dc5f9592..58edb77960672 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge'] --- import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index 4bbb15fbab069..30b14ef007e47 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 63aadc04cedef..d8aff44ed92ef 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx index 8ee70f160a430..352fd5a6e7644 100644 --- a/api_docs/kbn_ipynb.mdx +++ b/api_docs/kbn_ipynb.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ipynb title: "@kbn/ipynb" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ipynb plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb'] --- import kbnIpynbObj from './kbn_ipynb.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 9fda234b233b1..5288a84074343 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 87757e0894797..14554bc27be30 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index d224f04cee432..e1b95f33de2d8 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index dbb2f32684b5a..84a1d8c9a047b 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index cbc138f89632a..98d93636a78fa 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index 9e674b89458f5..e87343a8db43d 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx index 5d8d9f7b87355..c0276c761129e 100644 --- a/api_docs/kbn_lens_formula_docs.mdx +++ b/api_docs/kbn_lens_formula_docs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs title: "@kbn/lens-formula-docs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-formula-docs plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs'] --- import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index f5ccfb3a64916..be4e9b44f0ae7 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 943b10511f5f2..a0607f0fea477 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx index d7d3b9f8acd5f..d33b5dac741a9 100644 --- a/api_docs/kbn_managed_content_badge.mdx +++ b/api_docs/kbn_managed_content_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge title: "@kbn/managed-content-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-content-badge plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge'] --- import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index aed24d67d0dd7..54713786ec8ec 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx index 96bc1a86f86f4..7373d134481b2 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation'] --- import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json'; diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx index d04838e4938f2..7551a182374e4 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index 1b87bebc08071..2097976e80ebc 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category'] --- import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx index 4feefc373b08a..5557b445e78c2 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 3c96ca74a3677..1ac6abbe9e8f7 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row'] --- import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx index 8761d42f06fb1..38a3afc3f9c1d 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form'] --- import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json'; diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx index 09be3f7fd6aa2..fa7ef5a6f768f 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index b444474169642..b09de60eb4965 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index 73454f0d95f92..7bc2f941fe5be 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index 212bbd53d98f0..a03b7792a1593 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index e7407446f348e..4972c98eddeb0 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index 416b78095c297..56b17d6e02d16 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 3257f7b33a841..5c4317f3c528b 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx index d153e5180f408..0691ad3aedae9 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index d79b2b25cf817..43f9abb401f27 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx index afdea3fb155b5..c4cc462820932 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx index 3544adf2fd455..5c13873398c4c 100644 --- a/api_docs/kbn_ml_cancellable_search.mdx +++ b/api_docs/kbn_ml_cancellable_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search title: "@kbn/ml-cancellable-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-cancellable-search plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search'] --- import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index a90ce9462477d..bb0c792630f70 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator'] --- import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json'; diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx index f110682ad006c..74e6cb408c3ff 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test'] --- import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json'; diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx index 2fe73be5d159a..40b374b6d736d 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index 4f942927bbef3..6bd5c13aee9de 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 961d114abd911..3102cedb835eb 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx index 33e0bc1be1e9b..2e309236ea36a 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils'] --- import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx index d0a9aaaad49ca..db7fe409c4b42 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index 6ce5cfc9d18e4..a78b5ae2eca0e 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 55324c9a47279..9714f11a62edd 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 3ccdafee6cd1b..c8d5e4036e9fa 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx index b57b0e60c258d..b4bb7127af81f 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme'] --- import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index ea5d63ace1ad0..ffae1a36906ae 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index ceb4129264fb9..92a6490f72083 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx index f85437c7b9603..7015638815bda 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 802f8771d0eca..ca003e0b85e1a 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx index 3cedb6813fc24..e53ca3beff41a 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils'] --- import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 88d561303257c..72ce416d8b2e8 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx index 0ad1e1c9bc595..2be14d0b71b98 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils'] --- import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 1841f3cbd924d..ff1a29dd31816 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx index d41cf9a3754d2..3865dcb911b28 100644 --- a/api_docs/kbn_ml_time_buckets.mdx +++ b/api_docs/kbn_ml_time_buckets.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets title: "@kbn/ml-time-buckets" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-time-buckets plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets'] --- import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index b2190a02d6998..9276ddd60086b 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx index cd8a27e6a13fa..d07dae5fb8c6e 100644 --- a/api_docs/kbn_ml_ui_actions.mdx +++ b/api_docs/kbn_ml_ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions title: "@kbn/ml-ui-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-ui-actions plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions'] --- import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 53daec43d0de5..b9fe78f1115e7 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx index 3ac8724212c4d..11ca210448c19 100644 --- a/api_docs/kbn_mock_idp_utils.mdx +++ b/api_docs/kbn_mock_idp_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils title: "@kbn/mock-idp-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mock-idp-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils'] --- import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index dc526a833aa84..5c1800b933813 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 170ac463081ef..0f994545367db 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index 2252db0c70069..c03a31d3548af 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index 62787b05194fe..f700b0fde7b11 100644 --- a/api_docs/kbn_observability_alerting_test_data.mdx +++ b/api_docs/kbn_observability_alerting_test_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data title: "@kbn/observability-alerting-test-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alerting-test-data plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data'] --- import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json'; diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx index 50aad51ed4c49..d210480b0b993 100644 --- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx +++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util title: "@kbn/observability-get-padded-alert-time-range-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util'] --- import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json'; diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx index 09b41b8b85d85..84cfb8ab20c98 100644 --- a/api_docs/kbn_openapi_bundler.mdx +++ b/api_docs/kbn_openapi_bundler.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler title: "@kbn/openapi-bundler" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-bundler plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler'] --- import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index d50914bb09e8d..0ac5e5ae8dca3 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index ad16f66198712..ccd0d3c971521 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index b63f19fc83981..e423cf0365ec0 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index a2d3d1a3c4895..e72869de4dd24 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx index 22bdea0d5b08f..c7ada3cb9770f 100644 --- a/api_docs/kbn_panel_loader.mdx +++ b/api_docs/kbn_panel_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader title: "@kbn/panel-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/panel-loader plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader'] --- import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index a40273499006c..6960df5039d2b 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx index 7418d6b3bdecf..eb7f1dd33e2b6 100644 --- a/api_docs/kbn_plugin_check.mdx +++ b/api_docs/kbn_plugin_check.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check title: "@kbn/plugin-check" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-check plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check'] --- import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index b2ee69a7bec27..91d7ae0b6041a 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 3514d0f1556ce..b3b961bbcd005 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx index 661b5dcff51e2..9f1ee04d13617 100644 --- a/api_docs/kbn_presentation_containers.mdx +++ b/api_docs/kbn_presentation_containers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers title: "@kbn/presentation-containers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-containers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] --- import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json'; diff --git a/api_docs/kbn_presentation_publishing.devdocs.json b/api_docs/kbn_presentation_publishing.devdocs.json index e290dee7335a8..844fe5ab1dbdc 100644 --- a/api_docs/kbn_presentation_publishing.devdocs.json +++ b/api_docs/kbn_presentation_publishing.devdocs.json @@ -101,6 +101,46 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasExecutionContext", + "type": "Function", + "tags": [], + "label": "apiHasExecutionContext", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasExecutionContext", + "text": "HasExecutionContext" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_execution_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasExecutionContext.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_execution_context.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/presentation-publishing", "id": "def-common.apiHasLegacyLibraryTransforms", @@ -2152,6 +2192,42 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasExecutionContext", + "type": "Interface", + "tags": [], + "label": "HasExecutionContext", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/has_execution_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasExecutionContext.executionContext", + "type": "Object", + "tags": [], + "label": "executionContext", + "description": [], + "signature": [ + "{ readonly type?: string | undefined; readonly name?: string | undefined; readonly page?: string | undefined; readonly id?: string | undefined; readonly description?: string | undefined; readonly url?: string | undefined; readonly meta?: { [key: string]: string | number | boolean | undefined; } | undefined; child?: ", + { + "pluginId": "@kbn/core-execution-context-common", + "scope": "common", + "docId": "kibKbnCoreExecutionContextCommonPluginApi", + "section": "def-common.KibanaExecutionContext", + "text": "KibanaExecutionContext" + }, + " | undefined; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_execution_context.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/presentation-publishing", "id": "def-common.HasLibraryTransforms", diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx index 4f4d4dbc1782f..9a271d82ea631 100644 --- a/api_docs/kbn_presentation_publishing.mdx +++ b/api_docs/kbn_presentation_publishing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing title: "@kbn/presentation-publishing" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-publishing plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing'] --- import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 178 | 0 | 149 | 6 | +| 182 | 0 | 153 | 6 | ## Common diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index e790fc39705fb..176ae441a5edf 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index 7e0d2c0b0c592..42259e5fab175 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling'] --- import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 85130fa423398..c5ec4724fee48 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index bbc78e668fc61..a237c986af4e8 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common'] --- import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx index 6718701b33c9e..654179342abce 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render'] --- import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx index f398ec9013544..55dd8d53280dd 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root'] --- import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx index 31649d75be30b..7df976906cc14 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled'] --- import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx index 04b9664fa445c..c20cd3874afb8 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme'] --- import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx index 24416d7474f13..9efd027979601 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index ebd71ace440bf..05b3bc011bd51 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 8284e418530d5..b93b45518e28a 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index d91c7ba39bff9..ef4974756cd50 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index e52f522aa4955..8594f47dc2611 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx index 21350a2f4ec50..6ce06f7bc01b6 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx index db334115dd640..6d11f2f681bb0 100644 --- a/api_docs/kbn_reporting_csv_share_panel.mdx +++ b/api_docs/kbn_reporting_csv_share_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel title: "@kbn/reporting-csv-share-panel" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-csv-share-panel plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel'] --- import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx index f646136f3d493..cec52373b81fb 100644 --- a/api_docs/kbn_reporting_export_types_csv.mdx +++ b/api_docs/kbn_reporting_export_types_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv title: "@kbn/reporting-export-types-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv'] --- import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx index 6d2b54679edea..0dd7c9d06ec8b 100644 --- a/api_docs/kbn_reporting_export_types_csv_common.mdx +++ b/api_docs/kbn_reporting_export_types_csv_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common title: "@kbn/reporting-export-types-csv-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common'] --- import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx index 280e16ce27497..8a98772e74b41 100644 --- a/api_docs/kbn_reporting_export_types_pdf.mdx +++ b/api_docs/kbn_reporting_export_types_pdf.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf title: "@kbn/reporting-export-types-pdf" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf'] --- import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx index c0dc57141f65e..9a79f72471d74 100644 --- a/api_docs/kbn_reporting_export_types_pdf_common.mdx +++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common title: "@kbn/reporting-export-types-pdf-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common'] --- import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx index b349c8be19966..b78630e85976d 100644 --- a/api_docs/kbn_reporting_export_types_png.mdx +++ b/api_docs/kbn_reporting_export_types_png.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png title: "@kbn/reporting-export-types-png" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png'] --- import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx index 8fa06e7ca4177..3585a1b9c3866 100644 --- a/api_docs/kbn_reporting_export_types_png_common.mdx +++ b/api_docs/kbn_reporting_export_types_png_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common title: "@kbn/reporting-export-types-png-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common'] --- import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx index 5d1f5cf9bbd29..3a583eb67b9a1 100644 --- a/api_docs/kbn_reporting_mocks_server.mdx +++ b/api_docs/kbn_reporting_mocks_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server title: "@kbn/reporting-mocks-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-mocks-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server'] --- import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json'; diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx index 614c8c02953be..33e65b08c6d37 100644 --- a/api_docs/kbn_reporting_public.mdx +++ b/api_docs/kbn_reporting_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public title: "@kbn/reporting-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-public plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public'] --- import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json'; diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx index 6b8173fcfdc6f..3918484f6d533 100644 --- a/api_docs/kbn_reporting_server.mdx +++ b/api_docs/kbn_reporting_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server title: "@kbn/reporting-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server'] --- import kbnReportingServerObj from './kbn_reporting_server.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index e6745d785eb15..dda61e40adaeb 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index f8b1fb95a236a..31da9365a3cc3 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx index 1ac34e2206da1..1bb28995ceb7f 100644 --- a/api_docs/kbn_router_to_openapispec.mdx +++ b/api_docs/kbn_router_to_openapispec.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec title: "@kbn/router-to-openapispec" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-to-openapispec plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec'] --- import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json'; diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx index a2dd584c4bfaf..ef26b3268248d 100644 --- a/api_docs/kbn_router_utils.mdx +++ b/api_docs/kbn_router_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils title: "@kbn/router-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils'] --- import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json'; diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx index 9d781d3881290..89b6ab7a8df5a 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 3d0a282f6369c..cbb11bdc333c1 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx index b48c1ea97dbb9..c261588b1aeb6 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index bdfd4c0518376..1fe032b36768a 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 2bd098cc95d0c..76aee667c55be 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx index 203faba8a4f66..5df18e329fd48 100644 --- a/api_docs/kbn_search_errors.mdx +++ b/api_docs/kbn_search_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors title: "@kbn/search-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-errors plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors'] --- import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json'; diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx index 36070f154c148..ed05ce5a48b6b 100644 --- a/api_docs/kbn_search_index_documents.mdx +++ b/api_docs/kbn_search_index_documents.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents title: "@kbn/search-index-documents" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-index-documents plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents'] --- import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json'; diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index f3d95afeea1f9..247a2701da252 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx index 15ec4e90fd12c..a54edb0b37db8 100644 --- a/api_docs/kbn_security_hardening.mdx +++ b/api_docs/kbn_security_hardening.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening title: "@kbn/security-hardening" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-hardening plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening'] --- import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx index 388ba057ac16b..f6150a52db994 100644 --- a/api_docs/kbn_security_plugin_types_common.mdx +++ b/api_docs/kbn_security_plugin_types_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common title: "@kbn/security-plugin-types-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-common plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common'] --- import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx index 0e7a4ed615c94..6d5116c8ca3be 100644 --- a/api_docs/kbn_security_plugin_types_public.mdx +++ b/api_docs/kbn_security_plugin_types_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public title: "@kbn/security-plugin-types-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-public plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public'] --- import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx index 0f4a4baa9e5c3..57d7eb854e1e6 100644 --- a/api_docs/kbn_security_plugin_types_server.mdx +++ b/api_docs/kbn_security_plugin_types_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server title: "@kbn/security-plugin-types-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-server plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server'] --- import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 826f884424a36..b4470435eddb0 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index ca62f797cc067..0d7d6c7a15dc0 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation'] --- import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 8c363ca19171e..c1fd7387f206f 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index a0bc3eef0123f..dd8ae9c32f66f 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 8690f820548b0..e747b6bf2b90d 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 05be1ac6b4431..1f6b4617741f5 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table'] --- import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index a66b1e398fc4e..0f5e3283f7019 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index b9ce0c7cfb874..c59edda61a904 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 568f8aa841d36..a3cc7636e63ea 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 54d8ce79da466..68e8880b1e09e 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 6ba9ad3d78d96..81094f9434a20 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 5b4ea9e66cfd3..c9519ebe11738 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index fa788c120c1d2..3809da24ae101 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index e50f718991799..d13b1ad3476f2 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 5dc6a8ca5ad6c..3ca421334edd1 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index f4bbaaca6deb7..b1a5a5b1839e8 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 03d33ea6c0576..babfe00912cf2 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 8b741b452ad6a..468847a493614 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index e114208a3cf68..2ffff79453547 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index 9dd927b8e2c55..7d1f1f4f36264 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index a6a6311baac5d..2310a9fa2a4ee 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index 646fc85dcc516..47535eabd4070 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 7de2e8d0bf5d6..4fa2bb77089f1 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index f21bec0400267..f492dd5ef3d84 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index df6867453dfd2..9de480cdff020 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings'] --- import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx index c52f5d08f5d22..ecff937d5b558 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings'] --- import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx index f6165ecf7b45e..5e632b81d7f3b 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher'] --- import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json'; diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx index 92c144e10f0eb..3ce4a5549dbe6 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings'] --- import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx index a6efc395eab0b..a781effb8d010 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings'] --- import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx index 0f80d4c7777f6..9661db2a52079 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config'] --- import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 30eceaf6319fa..2d8f9fcd23373 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 980da6c5b7640..1bd8db5759791 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index 200ffc30a4f8c..acbd1b83db795 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 5b25f0ae1f668..0e21aa851fa47 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index d5f7bfc4c0665..398108101438b 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 4856c9984b94b..7696e073285ce 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index 1d322fe65e72f..4be49cb7dd672 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx index 995525179de5d..8c4918b591f83 100644 --- a/api_docs/kbn_shared_ux_error_boundary.mdx +++ b/api_docs/kbn_shared_ux_error_boundary.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary title: "@kbn/shared-ux-error-boundary" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-error-boundary plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary'] --- import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 80ba71f574725..39f0f6876308f 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 1c61558053801..66e49d756c6f2 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index 187d49dbf558f..4e9a3f17fbb3e 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index 97ae9f724bcb1..81d58b66a4b03 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index a13cb87ed598e..020d14bb2ca08 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 368eecd6285e8..825d923c74a00 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index e60c59f3ad72c..11ab8dc6a23c4 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 519b67c25e4c3..0e4c79987e9a9 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index e083e00adfa74..6492ed4a30d9e 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 12847b693ed15..237b5ab2dba99 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index d4fa3b798924f..1cd5a7ff986d0 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index cb5b61f759cd3..3ad934d65e8d9 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 0bb46278a69be..570a8dda68163 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index 85a943301b7ec..bb3a476cf39c1 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 1d9fab180d78f..8ea7c4aa3c88c 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index f5145d8702291..e3f6dbca49bbf 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index 8d2e8b6f4e2c4..a545dcae9143f 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index db0472879de68..ebc4fd1a8a29b 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 35c2111fc3a93..1cb40772ebbd8 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index 773ab1f17ba30..d74d06b37a12d 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index 1e82b53a37c4b..22f433c30cb2c 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index 4d999f4026ad3..9098a5be60723 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index 997d23cb52f3d..d389de7231bfe 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 53510078c841d..1606123f72d64 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index 70b028078d06f..594a990141f77 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 84fa04865477a..bc2656033df21 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 3217ebd50b66c..d517d414df9e2 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index fef28daed9e7e..6f26619f9cde5 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index 1c85c7df350d1..a16cfb6614548 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index 07aaf3d1c0aaa..92b5a6df17c9f 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx index acc62ad844f10..81b13a095708c 100644 --- a/api_docs/kbn_shared_ux_tabbed_modal.mdx +++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal title: "@kbn/shared-ux-tabbed-modal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-tabbed-modal plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal'] --- import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index e07d03a05a6a2..75941d38b8873 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index db9d8f9c28e6d..0550bae39a231 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_solution_nav_es.mdx b/api_docs/kbn_solution_nav_es.mdx index 7a328f5d4362e..20f9186826419 100644 --- a/api_docs/kbn_solution_nav_es.mdx +++ b/api_docs/kbn_solution_nav_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-es title: "@kbn/solution-nav-es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/solution-nav-es plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-es'] --- import kbnSolutionNavEsObj from './kbn_solution_nav_es.devdocs.json'; diff --git a/api_docs/kbn_solution_nav_oblt.mdx b/api_docs/kbn_solution_nav_oblt.mdx index 4a849649ca053..9e558c3c946ae 100644 --- a/api_docs/kbn_solution_nav_oblt.mdx +++ b/api_docs/kbn_solution_nav_oblt.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-oblt title: "@kbn/solution-nav-oblt" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/solution-nav-oblt plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-oblt'] --- import kbnSolutionNavObltObj from './kbn_solution_nav_oblt.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 3aa7659f95db4..3f8573d9b8e8e 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx index 97039b49e6f21..d9436afb04105 100644 --- a/api_docs/kbn_sort_predicates.mdx +++ b/api_docs/kbn_sort_predicates.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates title: "@kbn/sort-predicates" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-predicates plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates'] --- import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 0150a14b493fb..538923164fc12 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index b392c95f0e0b5..bc958d4b721a0 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index e4172673c1429..a268072eb487d 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index a30b07b4aaae4..23e6322ee8515 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 2628adfd4f610..58498e19f2b43 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx index ed347b9acf915..0907c06b17776 100644 --- a/api_docs/kbn_test_eui_helpers.mdx +++ b/api_docs/kbn_test_eui_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers title: "@kbn/test-eui-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-eui-helpers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers'] --- import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 2e8943ef227cb..3cd1925d40ed4 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index 54d47c38a2be2..dc7ecd0eeeeef 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index ce8a421b147fb..2247924a4a4ea 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx index 16c07b2ef8f54..24fd45c53588c 100644 --- a/api_docs/kbn_timerange.mdx +++ b/api_docs/kbn_timerange.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange title: "@kbn/timerange" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/timerange plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange'] --- import kbnTimerangeObj from './kbn_timerange.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 3f97f465b4de5..f1958ab975ba9 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx index f7acef4bfb9c3..5cc34cd80c44a 100644 --- a/api_docs/kbn_triggers_actions_ui_types.mdx +++ b/api_docs/kbn_triggers_actions_ui_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types title: "@kbn/triggers-actions-ui-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/triggers-actions-ui-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types'] --- import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 2aef99077f008..e9c71b024b783 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 815d2bfa36b62..8d3e4a6016ffe 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index bdde3ed98110a..698447797bf8c 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 826e79e66fd25..78c8a8bb5d26b 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 50d01084281f5..836503275d2ec 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 33160bce799d9..49c4b0c1e5329 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json'; diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index e5d08401e8fea..903c9387e0e3b 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 5fcf1bfbb7db3..16a70fbd21b8f 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx index e7c537ad9d76d..05f0be93f7401 100644 --- a/api_docs/kbn_unsaved_changes_badge.mdx +++ b/api_docs/kbn_unsaved_changes_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge title: "@kbn/unsaved-changes-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unsaved-changes-badge plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 0840d75eefc96..fe863c054b850 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise'] --- import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index ef07b749d9635..2dc526f31abd5 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index ec53c936d3a26..cb9059f84c52b 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index bb0a2dd42b0a0..e81eedce31954 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 854d3ad9a45cf..d00a83c8440f8 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index 3bdf77b3414a8..9c72d1d9b89c9 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx index 6c996d9f087ed..f86381940589b 100644 --- a/api_docs/kbn_visualization_utils.mdx +++ b/api_docs/kbn_visualization_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils title: "@kbn/visualization-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils'] --- import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index 1269823bde005..f30e200ac5380 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index e69c51ef125a9..c6504033681b2 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index 2c8d6a7499eb1..b60cb5e8ce0d2 100644 --- a/api_docs/kbn_zod_helpers.mdx +++ b/api_docs/kbn_zod_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers title: "@kbn/zod-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/zod-helpers plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers'] --- import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index bad93d4b2797e..aebc47458cc62 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index eeb69d3e1a96a..54484886475a1 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 14cb41ffe26ab..f4c35ef29e1e2 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index ea4f6a9d05610..9f83470f9e626 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 83b1038ed65dc..bca03b7837fa4 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index c18d704388da8..5299a9d1710a4 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 2b7f2b915bc68..aba69fa13ceaf 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 0a1d9c1c2b15b..306f78f53cd55 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/links.mdx b/api_docs/links.mdx index 7941d098593c8..fdb50f2ccc2b7 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index ce609a9e6646e..610e4108261bf 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx index 6fee5aa2ad7ad..b080aea2a43bc 100644 --- a/api_docs/logs_explorer.mdx +++ b/api_docs/logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer title: "logsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logsExplorer plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer'] --- import logsExplorerObj from './logs_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index 91a0bb3550bea..f7d4d3600a9d5 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index bd9c15dc16cda..85dd5712ae962 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 66e31ee61b2ba..546e6b97cd3b0 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index b911a0689fa00..ec6443dcad528 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index 727cca5d62fce..478140ca221c0 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 2930e5921f8c6..aa8b3e3de703c 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index 0b07a10ab6dc3..6ca8e7352b9b4 100644 --- a/api_docs/mock_idp_plugin.mdx +++ b/api_docs/mock_idp_plugin.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin title: "mockIdpPlugin" image: https://source.unsplash.com/400x175/?github description: API docs for the mockIdpPlugin plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin'] --- import mockIdpPluginObj from './mock_idp_plugin.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index c3278a566916e..08b65d4c15e60 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 07c354d1e062b..03e013bcfc34d 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index fcdb03dbc3cd2..af46c6ef1d1aa 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index c43b991193244..9aef4e1126466 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx index da6607b897c9f..84a9dc5e2ddc3 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage'] --- import noDataPageObj from './no_data_page.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index 647c5189da88e..be2446528425c 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index e5afa252618a5..06cdfdff0bd8d 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index cfe2dc7c24064..ab4dc9d7ad1d6 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx index 7462476d32e3c..4ab0e3b388c6a 100644 --- a/api_docs/observability_a_i_assistant_app.mdx +++ b/api_docs/observability_a_i_assistant_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistantApp title: "observabilityAIAssistantApp" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistantApp plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistantApp'] --- import observabilityAIAssistantAppObj from './observability_a_i_assistant_app.devdocs.json'; diff --git a/api_docs/observability_ai_assistant_management.mdx b/api_docs/observability_ai_assistant_management.mdx index 4496d3df5cf76..057c5222d61a8 100644 --- a/api_docs/observability_ai_assistant_management.mdx +++ b/api_docs/observability_ai_assistant_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAiAssistantManagement title: "observabilityAiAssistantManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAiAssistantManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAiAssistantManagement'] --- import observabilityAiAssistantManagementObj from './observability_ai_assistant_management.devdocs.json'; diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx index b6377b0711794..2c8f4f2ccd889 100644 --- a/api_docs/observability_logs_explorer.mdx +++ b/api_docs/observability_logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer title: "observabilityLogsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogsExplorer plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer'] --- import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index 5f9e528f77bb2..52a0c702278d0 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index cc118c353a48d..ac5c6fc965ba0 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index c8d5db8dd0fd5..8d4ebf8f35261 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index a916a8d0b3c72..4ba9b1cc4af1f 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab'] --- import painlessLabObj from './painless_lab.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index 41ca99cb5c9fb..ba20360721af3 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,13 +21,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 47428 | 240 | 36084 | 1851 | +| 47427 | 240 | 36084 | 1851 | ## Plugin Directory | Plugin name           | Maintaining team | Description | API Cnt | Any Cnt | Missing<br />comments | Missing<br />exports | |--------------|----------------|-----------|--------------|----------|---------------|--------| -| <DocLink id="kibActionsPluginApi" text="actions"/> | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 298 | 0 | 292 | 32 | +| <DocLink id="kibActionsPluginApi" text="actions"/> | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 301 | 0 | 295 | 32 | | <DocLink id="kibAdvancedSettingsPluginApi" text="advancedSettings"/> | [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 2 | 0 | 2 | 0 | | <DocLink id="kibAiAssistantManagementSelectionPluginApi" text="aiAssistantManagementSelection"/> | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 4 | 0 | 4 | 1 | | <DocLink id="kibAiopsPluginApi" text="aiops"/> | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 67 | 0 | 4 | 1 | @@ -64,7 +64,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibDataVisualizerPluginApi" text="dataVisualizer"/> | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. | 31 | 3 | 25 | 3 | | <DocLink id="kibDatasetQualityPluginApi" text="datasetQuality"/> | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin introduces the concept of dataset quality, where users can easily get an overview on the datasets they have. | 10 | 0 | 10 | 5 | | <DocLink id="kibDevToolsPluginApi" text="devTools"/> | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 15 | 0 | 9 | 2 | -| <DocLink id="kibDiscoverPluginApi" text="discover"/> | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 156 | 0 | 108 | 27 | +| <DocLink id="kibDiscoverPluginApi" text="discover"/> | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 144 | 0 | 97 | 27 | | <DocLink id="kibDiscoverEnhancedPluginApi" text="discoverEnhanced"/> | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 35 | 0 | 33 | 2 | | <DocLink id="kibEcsDataQualityDashboardPluginApi" text="ecsDataQualityDashboard"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | APIs used to assess the quality of data in Elasticsearch indexes | 2 | 0 | 0 | 0 | | <DocLink id="kibElasticAssistantPluginApi" text="elasticAssistant"/> | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | Server APIs for the Elastic AI Assistant | 45 | 0 | 31 | 0 | @@ -170,7 +170,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibSearchPlaygroundPluginApi" text="searchPlayground"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 15 | 0 | 9 | 1 | | searchprofiler | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 0 | 0 | 0 | 0 | | <DocLink id="kibSecurityPluginApi" text="security"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 410 | 0 | 200 | 2 | -| <DocLink id="kibSecuritySolutionPluginApi" text="securitySolution"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 189 | 0 | 119 | 36 | +| <DocLink id="kibSecuritySolutionPluginApi" text="securitySolution"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 190 | 0 | 120 | 36 | | <DocLink id="kibSecuritySolutionEssPluginApi" text="securitySolutionEss"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | ESS customizations for Security Solution. | 6 | 0 | 6 | 0 | | <DocLink id="kibSecuritySolutionServerlessPluginApi" text="securitySolutionServerless"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Serverless customizations for security. | 7 | 0 | 7 | 0 | | <DocLink id="kibServerlessPluginApi" text="serverless"/> | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | The core Serverless plugin, providing APIs to Serverless Project plugins. | 25 | 0 | 24 | 0 | @@ -482,7 +482,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnEsTypesPluginApi" text="@kbn/es-types"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 26 | 0 | 26 | 1 | | <DocLink id="kibKbnEslintPluginImportsPluginApi" text="@kbn/eslint-plugin-imports"/> | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | <DocLink id="kibKbnEsqlAstPluginApi" text="@kbn/esql-ast"/> | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 63 | 1 | 63 | 6 | -| <DocLink id="kibKbnEsqlUtilsPluginApi" text="@kbn/esql-utils"/> | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 21 | 0 | 19 | 0 | +| <DocLink id="kibKbnEsqlUtilsPluginApi" text="@kbn/esql-utils"/> | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 24 | 0 | 22 | 0 | | <DocLink id="kibKbnEsqlValidationAutocompletePluginApi" text="@kbn/esql-validation-autocomplete"/> | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 194 | 0 | 184 | 8 | | <DocLink id="kibKbnEventAnnotationCommonPluginApi" text="@kbn/event-annotation-common"/> | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 39 | 0 | 39 | 0 | | <DocLink id="kibKbnEventAnnotationComponentsPluginApi" text="@kbn/event-annotation-components"/> | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 52 | 0 | 52 | 1 | @@ -579,7 +579,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnPluginGeneratorPluginApi" text="@kbn/plugin-generator"/> | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | | <DocLink id="kibKbnPluginHelpersPluginApi" text="@kbn/plugin-helpers"/> | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | | <DocLink id="kibKbnPresentationContainersPluginApi" text="@kbn/presentation-containers"/> | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 65 | 0 | 61 | 1 | -| <DocLink id="kibKbnPresentationPublishingPluginApi" text="@kbn/presentation-publishing"/> | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 178 | 0 | 149 | 6 | +| <DocLink id="kibKbnPresentationPublishingPluginApi" text="@kbn/presentation-publishing"/> | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 182 | 0 | 153 | 6 | | <DocLink id="kibKbnProfilingUtilsPluginApi" text="@kbn/profiling-utils"/> | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 168 | 0 | 55 | 0 | | <DocLink id="kibKbnRandomSamplingPluginApi" text="@kbn/random-sampling"/> | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 13 | 0 | 7 | 0 | | <DocLink id="kibKbnReactFieldPluginApi" text="@kbn/react-field"/> | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 22 | 0 | 9 | 0 | diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx index e1c347247dc08..e99ee946fdae1 100644 --- a/api_docs/presentation_panel.mdx +++ b/api_docs/presentation_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel title: "presentationPanel" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationPanel plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel'] --- import presentationPanelObj from './presentation_panel.devdocs.json'; diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 5ba47ca3f8b39..e907544ef2d2c 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index 30223b9b8b386..ba21dbf7d65c9 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx index 8a7059447a774..1c623f816637c 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess'] --- import profilingDataAccessObj from './profiling_data_access.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index f33bc9526e01c..bd595ffcc5cfd 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 3bfffcff0a671..bbfcbfed6b5df 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 51359229cd989..40f78d24a8e3a 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 147d1ff4b17e7..84e1e4a0efb9c 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index eeebd13eb952a..6f69d632cdbe6 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 2493f231c4e9e..5c608fb37bf75 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 0ac3b88491fd5..f831d1c3ba4c3 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index 88bd0f315fc72..0f19dc555d805 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 8335c5523c4be..9d65e49015861 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 1dbd2bdd9a822..7982c2fb6264c 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 0a399d7726750..ada34b7a9a651 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index d9d93cf289cbf..1ac4cb4c375ad 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 63a05fadbbc22..292ada3f776b5 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx index 50234bd0158ad..b37a360a7b4b3 100644 --- a/api_docs/search_connectors.mdx +++ b/api_docs/search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchConnectors title: "searchConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the searchConnectors plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors'] --- import searchConnectorsObj from './search_connectors.devdocs.json'; diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx index 8bd1c9928ef70..aa482f475883d 100644 --- a/api_docs/search_notebooks.mdx +++ b/api_docs/search_notebooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchNotebooks title: "searchNotebooks" image: https://source.unsplash.com/400x175/?github description: API docs for the searchNotebooks plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks'] --- import searchNotebooksObj from './search_notebooks.devdocs.json'; diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx index 0734255c6dc3c..e2ddd029a7e6c 100644 --- a/api_docs/search_playground.mdx +++ b/api_docs/search_playground.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchPlayground title: "searchPlayground" image: https://source.unsplash.com/400x175/?github description: API docs for the searchPlayground plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground'] --- import searchPlaygroundObj from './search_playground.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index bc5281fe1c98b..4f0d5fd4388d3 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index 37fb9b4540fe2..1330b20f12171 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -2849,6 +2849,30 @@ ], "returnComment": [] }, + { + "parentPluginId": "securitySolution", + "id": "def-server.SecuritySolutionApiRequestHandlerContext.getAuditLogger", + "type": "Function", + "tags": [], + "label": "getAuditLogger", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/security-plugin-types-server", + "scope": "server", + "docId": "kibKbnSecurityPluginTypesServerPluginApi", + "section": "def-server.AuditLogger", + "text": "AuditLogger" + }, + " | undefined" + ], + "path": "x-pack/plugins/security_solution/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "securitySolution", "id": "def-server.SecuritySolutionApiRequestHandlerContext.getExceptionListClient", diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 3a780bb2b743f..08c4470a54fea 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 189 | 0 | 119 | 36 | +| 190 | 0 | 120 | 36 | ## Client diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index d876284999c3e..061742e193ded 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss'] --- import securitySolutionEssObj from './security_solution_ess.devdocs.json'; diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx index 7f8cd1e9e3c59..f1753ca1300f7 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 858f52ec2679a..7c2f658239003 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.devdocs.json'; diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 9560568496a68..654b23d3903ba 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability'] --- import serverlessObservabilityObj from './serverless_observability.devdocs.json'; diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx index 8b22f7abaca63..3d6d2518ba545 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch'] --- import serverlessSearchObj from './serverless_search.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 7b9f51a9f0f01..f138a283dbdd7 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index b26f1c2a4d8e1..8fa0e1986e4d8 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx index d06e6c8de46c0..1bde8b80968c0 100644 --- a/api_docs/slo.mdx +++ b/api_docs/slo.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/slo title: "slo" image: https://source.unsplash.com/400x175/?github description: API docs for the slo plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo'] --- import sloObj from './slo.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index aec1404302652..6d8845b386af3 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index 8b3d044d92bec..2d560031b8fee 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index aa46073968f11..2e34b1aaec17a 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 033811a9c1e54..ac9c5ce210674 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index d9211312777e2..9f2244b89eaf4 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 53bf5eeac8d6f..1c8662db8adb9 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index a50a79e1ab6ce..a527034afef62 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index df68620da05f8..b7dbada2f98f8 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index 6696916cc1c14..36bd881cdde33 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index cbeeecf23e6fd..8da665e2fab5f 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index bdc10f2952f26..edb2ccb6a752c 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index a3ee52d900b0f..20b5ee70fc0f9 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 5b251f7a1792c..8cd0e82168679 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 933de564fa363..be1ab03249546 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 310432e2fdad5..d32e6b85bc089 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 41759f84631df..507f3a13a40f9 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx index ffdfbbbd4206d..e13592db995f1 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index bf3896d5649cf..12e282b63b639 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 556a490b2b1fd..c8040b51e819e 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index b594e4434d351..e9863492dcab2 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index cdd78c505f3a7..fd740fbc46b9d 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime'] --- import uptimeObj from './uptime.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 1e0957f9243a3..3ff967b9b9761 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index 64cf7a3cd8a17..a3e26e9788d26 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 85aa37d1de037..019cbb76bfe78 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 5911fcbb7e217..715cd40f9871c 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index 0d3d23a280aa1..b3c72708227c6 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index 21f384e2eaa06..f544db74a3b14 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 648776cb3efc1..c6bd7dc9df1af 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index 0e017df6a7007..d8907d1c8fae7 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index ea0f1acc95e5b..91ba8f336060f 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index 8ac3c85233644..37d613a330bc1 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index efd0efbe79b91..fa826b2aba4f4 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index cde653d3b7478..f60dc022cff08 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index f430bda90ad99..1241ee6d1465a 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 046872d18271d..27d359281b6ae 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2024-04-23 +date: 2024-04-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From c91217463713d90ff454b7cb968151e3a2caa533 Mon Sep 17 00:00:00 2001 From: Rudolf Meijering <skaapgif@gmail.com> Date: Wed, 24 Apr 2024 09:34:42 +0200 Subject: [PATCH 098/183] Make readWithPit integration tests less sensitive to ES response size (#180261) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Stateless ES increased their `pit_id` length from 185 to 465 chars. Our tests were quite sensitive to response sizes so these started failing. This PR makes tests less sensitive to the exact response size because I don't think it matters that much, as long as we know that `batchSize: 1` is ✅ while a `batchSize: 1000` is 🔴 . ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../migrations/group3/actions/actions.test.ts | 17 +++++++-------- .../group3/actions/actions_test_suite.ts | 21 ++++++++----------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts index 0b4c885484053..e6938bb7a26bb 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts @@ -1309,11 +1309,15 @@ describe('migration actions', () => { query: { match_all: {} }, batchSize: 1, // small batch size so we don't exceed the maxResponseSize searchAfter: undefined, - maxResponseSizeBytes: 500, // set a small size to force the error + maxResponseSizeBytes: 1000, // set a small size to force the error }); - const rightResponse = (await readWithPitTask()) as Either.Right<ReadWithPit>; + const rightResponse = await readWithPitTask(); - await expect(Either.isRight(rightResponse)).toBe(true); + if (Either.isLeft(rightResponse)) { + throw new Error( + `Expected a successful response but got ${JSON.stringify(rightResponse.left)}` + ); + } readWithPitTask = readWithPit({ client, @@ -1321,17 +1325,12 @@ describe('migration actions', () => { query: { match_all: {} }, batchSize: 10, // a bigger batch will exceed the maxResponseSize searchAfter: undefined, - maxResponseSizeBytes: 500, // set a small size to force the error + maxResponseSizeBytes: 1000, // set a small size to force the error }); const leftResponse = (await readWithPitTask()) as Either.Left<EsResponseTooLargeError>; expect(leftResponse.left.type).toBe('es_response_too_large'); - // ES response contains a field that indicates how long it took ES to get the response, e.g.: "took": 7 - // if ES takes more than 9ms, the payload will be 1 byte bigger. - // see https://github.com/elastic/kibana/issues/160994 - // Thus, the statements below account for response times up to 99ms expect(leftResponse.left.contentLength).toBeGreaterThanOrEqual(3184); - expect(leftResponse.left.contentLength).toBeLessThanOrEqual(3185); }); it('rejects if PIT does not exist', async () => { diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts index b11efed76e529..f89b9891b8b21 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts @@ -1348,9 +1348,7 @@ export const runActionTestSuite = ({ ); }); - // consistently breaking in CI: - // https://github.com/elastic/kibana/issues/167288 - it.skip('returns a left es_response_too_large error when a read batch exceeds the maxResponseSize', async () => { + it('returns a left es_response_too_large error when a read batch exceeds the maxResponseSize', async () => { const openPitTask = openPit({ client, index: 'existing_index_with_docs' }); const pitResponse = (await openPitTask()) as Either.Right<OpenPitResponse>; @@ -1360,11 +1358,15 @@ export const runActionTestSuite = ({ query: { match_all: {} }, batchSize: 1, // small batch size so we don't exceed the maxResponseSize searchAfter: undefined, - maxResponseSizeBytes: 500, // set a small size to force the error + maxResponseSizeBytes: 1000, // set a small size to force the error }); - const rightResponse = (await readWithPitTask()) as Either.Right<ReadWithPit>; + const rightResponse = await readWithPitTask(); - await expect(Either.isRight(rightResponse)).toBe(true); + if (Either.isLeft(rightResponse)) { + throw new Error( + `Expected a successful response but got ${JSON.stringify(rightResponse.left)}` + ); + } readWithPitTask = readWithPit({ client, @@ -1372,17 +1374,12 @@ export const runActionTestSuite = ({ query: { match_all: {} }, batchSize: 10, // a bigger batch will exceed the maxResponseSize searchAfter: undefined, - maxResponseSizeBytes: 500, // set a small size to force the error + maxResponseSizeBytes: 1000, // set a small size to force the error }); const leftResponse = (await readWithPitTask()) as Either.Left<EsResponseTooLargeError>; expect(leftResponse.left.type).toBe('es_response_too_large'); - // ES response contains a field that indicates how long it took ES to get the response, e.g.: "took": 7 - // if ES takes more than 9ms, the payload will be 1 byte bigger. - // see https://github.com/elastic/kibana/issues/160994 - // Thus, the statements below account for response times up to 99ms expect(leftResponse.left.contentLength).toBeGreaterThanOrEqual(3184); - expect(leftResponse.left.contentLength).toBeLessThanOrEqual(3185); }); it('rejects if PIT does not exist', async () => { From b3b665bfc82f7f23b73d4f1a812e3a983a7da899 Mon Sep 17 00:00:00 2001 From: Mykola Harmash <mykola.harmash@gmail.com> Date: Wed, 24 Apr 2024 09:57:35 +0200 Subject: [PATCH 099/183] [Onboarding] Scroll to the featured cards when clicking on the category (#181438) Closes https://github.com/elastic/kibana/issues/180827 Adds the logic to wait for the packages to load and scroll them into view. https://github.com/elastic/kibana/assets/793851/38a36c39-c851-449d-ab31-28dccbfd8825 --- .../onboarding_flow_form.tsx | 27 +++++++++++++++++-- .../application/packages_list/index.tsx | 10 ++++++- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx index 1e10139963a75..dde4e5b1b108d 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/onboarding_flow_form/onboarding_flow_form.tsx @@ -6,7 +6,7 @@ */ import { i18n } from '@kbn/i18n'; -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; import type { FunctionComponent } from 'react'; import { @@ -82,8 +82,29 @@ export const OnboardingFlowForm: FunctionComponent = () => { const [searchParams, setSearchParams] = useSearchParams(); - const packageListRef = React.useRef<HTMLDivElement | null>(null); + const [hasPackageListLoaded, setHasPackageListLoaded] = useState<boolean>(false); + const onPackageListLoaded = useCallback(() => { + setHasPackageListLoaded(true); + }, []); + const packageListRef = useRef<HTMLDivElement | null>(null); + const customCardsRef = useRef<HTMLDivElement | null>(null); const [integrationSearch, setIntegrationSearch] = useState(searchParams.get('search') ?? ''); + const selectedCategory: Category | null = searchParams.get('category') as Category | null; + + useEffect(() => { + if (selectedCategory === null || !hasPackageListLoaded) { + return; + } + + const timeout = setTimeout(() => { + customCardsRef.current?.scrollIntoView({ + behavior: 'smooth', + block: 'end', + }); + }, 10); + + return () => clearTimeout(timeout); + }, [selectedCategory, hasPackageListLoaded]); useEffect(() => { const searchParam = searchParams.get('search') ?? ''; @@ -168,9 +189,11 @@ export const OnboardingFlowForm: FunctionComponent = () => { {Array.isArray(customCards) && ( <OnboardingFlowPackageList + ref={customCardsRef} customCards={customCards} flowSearch={integrationSearch} flowCategory={searchParams.get('category')} + onLoaded={onPackageListLoaded} /> )} diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx index ad02ad7b977cb..967cf1c5834e8 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/packages_list/index.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { EuiButton, EuiCallOut, EuiSearchBar, EuiSkeletonText } from '@elastic/eui'; import { css } from '@emotion/react'; -import React, { useRef, Suspense } from 'react'; +import React, { useRef, Suspense, useEffect } from 'react'; import useAsyncRetry from 'react-use/lib/useAsyncRetry'; import { PackageList, fetchAvailablePackagesHook } from './lazy'; import { useIntegrationCardList } from './use_integration_card_list'; @@ -38,6 +38,7 @@ interface Props { * When enabled, custom and integration cards are joined into a single list. */ joinCardLists?: boolean; + onLoaded?: () => void; } type WrapperProps = Props & { @@ -57,6 +58,7 @@ const PackageListGridWrapper = ({ flowCategory, flowSearch, joinCardLists = false, + onLoaded, }: WrapperProps) => { const customMargin = useCustomMargin(); const { filteredCards, isLoading } = useAvailablePackages({ @@ -72,6 +74,12 @@ const PackageListGridWrapper = ({ joinCardLists ); + useEffect(() => { + if (!isLoading && onLoaded !== undefined) { + onLoaded(); + } + }, [isLoading, onLoaded]); + if (isLoading) return <Loading />; const showPackageList = (showSearchBar && !!searchQuery) || showSearchBar === false; From 0f3ecf739e2040a8831c508f1df92c11bb5028dc Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet <pierre.gayvallet@elastic.co> Date: Wed, 24 Apr 2024 10:20:05 +0200 Subject: [PATCH 100/183] [Security into Core] expose `userProfile` service from Core (#180372) ## Summary Fix https://github.com/elastic/kibana/issues/178932 - Introduce the new `userProfile` core service, both on the browser and server-side. - Have the security plugin register its API to Core for re-exposition --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .github/CODEOWNERS | 7 + package.json | 7 + .../src/core_route_handler_context.test.ts | 29 ++++ .../src/core_route_handler_context.ts | 16 ++ .../core_route_handler_context_params.mock.ts | 2 + .../tsconfig.json | 2 + .../src/request_handler_context.ts | 2 + .../tsconfig.json | 3 +- .../src/internal_core_setup.ts | 7 +- .../src/internal_core_start.ts | 4 +- .../tsconfig.json | 3 +- .../src/core_setup.mock.ts | 2 + .../src/core_start.mock.ts | 2 + .../tsconfig.json | 3 +- .../core-lifecycle-browser/src/core_setup.ts | 3 + .../core-lifecycle-browser/src/core_start.ts | 3 + .../core-lifecycle-browser/tsconfig.json | 3 +- .../src/internal_core_setup.ts | 2 + .../src/internal_core_start.ts | 2 + .../tsconfig.json | 3 +- .../src/core_setup.mock.ts | 2 + .../src/core_start.mock.ts | 2 + .../src/internal_core_setup.mock.ts | 2 + .../src/internal_core_start.mock.ts | 2 + .../core-lifecycle-server-mocks/tsconfig.json | 1 + .../core-lifecycle-server/src/core_setup.ts | 3 + .../core-lifecycle-server/src/core_start.ts | 3 + .../core-lifecycle-server/tsconfig.json | 3 +- .../src/plugin_context.ts | 7 +- .../src/plugins_service.test.ts | 5 + .../tsconfig.json | 1 + .../src/plugin_context.ts | 7 +- .../src/core_system.test.mocks.ts | 9 ++ .../src/core_system.test.ts | 13 ++ .../src/core_system.ts | 8 + .../core-root-browser-internal/tsconfig.json | 2 + .../src/server.test.mocks.ts | 6 + .../src/server.test.ts | 8 + .../core-root-server-internal/src/server.ts | 8 + .../core-root-server-internal/tsconfig.json | 2 + .../src/security_service.test.ts | 18 +-- .../src/security_service.ts | 6 +- .../src/utils/convert_security_api.test.ts | 4 +- .../src/utils/convert_security_api.ts | 4 +- .../src/utils/default_implementation.test.ts | 4 +- .../src/utils/default_implementation.ts | 4 +- .../src/security_service.mock.ts | 4 +- .../security/core-security-browser/index.ts | 5 +- .../core-security-browser/src/api_provider.ts | 2 +- .../core-security-browser/src/contracts.ts | 4 +- .../src/security_service.test.ts | 18 +-- .../src/security_service.ts | 6 +- .../src/utils/convert_security_api.test.ts | 4 +- .../src/utils/convert_security_api.ts | 4 +- .../src/utils/default_implementation.test.ts | 4 +- .../src/utils/default_implementation.ts | 4 +- .../src/security_service.mock.ts | 4 +- .../security/core-security-server/index.ts | 5 +- .../core-security-server/src/api_provider.ts | 2 +- .../core-security-server/src/contracts.ts | 4 +- .../README.md | 3 + .../index.ts | 12 ++ .../jest.config.js | 13 ++ .../kibana.jsonc | 5 + .../package.json | 6 + .../src/internal_contracts.ts | 15 ++ .../src/user_profile_service.test.mocks.ts | 19 +++ .../src/user_profile_service.test.ts | 97 ++++++++++++ .../src/user_profile_service.ts | 48 ++++++ .../src/utils/convert_api.test.ts | 76 ++++++++++ .../src/utils/convert_api.ts | 23 +++ .../src/utils/default_implementation.test.ts | 34 +++++ .../src/utils/default_implementation.ts | 26 ++++ .../src/utils/index.ts | 10 ++ .../tsconfig.json | 26 ++++ .../core-user-profile-browser-mocks/README.md | 3 + .../core-user-profile-browser-mocks/index.ts | 9 ++ .../jest.config.js | 13 ++ .../kibana.jsonc | 5 + .../package.json | 6 + .../src/user_profile_service.mock.ts | 76 ++++++++++ .../tsconfig.json | 22 +++ .../core-user-profile-browser/README.md | 3 + .../core-user-profile-browser/index.ts | 17 +++ .../core-user-profile-browser/jest.config.js | 13 ++ .../core-user-profile-browser/kibana.jsonc | 5 + .../core-user-profile-browser/package.json | 6 + .../src/api_provider.ts | 14 ++ .../src/contracts.ts | 31 ++++ .../core-user-profile-browser/src/service.ts | 135 +++++++++++++++++ .../core-user-profile-browser/tsconfig.json | 22 +++ .../core-user-profile-common/README.md | 3 + .../core-user-profile-common/index.ts | 16 ++ .../core-user-profile-common/jest.config.js | 13 ++ .../core-user-profile-common/kibana.jsonc | 5 + .../core-user-profile-common/package.json | 6 + .../src}/user_profile.ts | 5 +- .../core-user-profile-common/tsconfig.json | 19 +++ .../README.md | 3 + .../index.ts | 14 ++ .../jest.config.js | 13 ++ .../kibana.jsonc | 5 + .../package.json | 6 + .../src/internal_contracts.ts | 17 +++ .../src/user_profile_route_handler_context.ts | 31 ++++ .../src/user_profile_service.test.mocks.ts | 19 +++ .../src/user_profile_service.test.ts | 97 ++++++++++++ .../src/user_profile_service.ts | 48 ++++++ .../src/utils/convert_api.test.ts | 28 ++++ .../src/utils/convert_api.ts | 16 ++ .../src/utils/default_implementation.test.ts | 36 +++++ .../src/utils/default_implementation.ts | 18 +++ .../src/utils/index.ts | 10 ++ .../tsconfig.json | 25 ++++ .../core-user-profile-server-mocks/README.md | 3 + .../core-user-profile-server-mocks/index.ts | 9 ++ .../jest.config.js | 13 ++ .../kibana.jsonc | 5 + .../package.json | 6 + .../src/user_profile_service.mock.ts | 81 ++++++++++ .../tsconfig.json | 20 +++ .../core-user-profile-server/README.md | 3 + .../core-user-profile-server/index.ts | 18 +++ .../core-user-profile-server/jest.config.js | 13 ++ .../core-user-profile-server/kibana.jsonc | 5 + .../core-user-profile-server/package.json | 6 + .../src/api_provider.ts | 19 +++ .../core-user-profile-server/src/contracts.ts | 31 ++++ .../src/request_handler_context.ts | 19 +++ .../core-user-profile-server/src/service.ts | 17 ++- .../core-user-profile-server/tsconfig.json | 20 +++ src/core/public/index.ts | 16 ++ src/core/server/index.ts | 14 ++ src/core/server/mocks.ts | 3 + src/core/tsconfig.json | 4 + tsconfig.base.json | 14 ++ .../src/user_profile/index.ts | 2 +- .../plugin_types_common/tsconfig.json | 3 +- .../user_profile/user_profile_api_client.ts | 130 ++-------------- .../plugin_types_public/tsconfig.json | 4 +- .../src/user_profile/index.ts | 2 +- .../plugin_types_server/tsconfig.json | 1 + .../fleet/.storybook/context/index.tsx | 7 +- .../public/build_delegate_api.test.ts | 141 ++++++++++++++++++ .../security/public/build_delegate_api.ts | 33 ++++ .../public/build_security_api.test.ts | 40 ----- .../security/public/build_security_api.ts | 21 --- .../plugins/security/public/plugin.test.tsx | 16 +- x-pack/plugins/security/public/plugin.tsx | 7 +- .../server/build_delegate_apis.test.ts | 121 +++++++++++++++ .../security/server/build_delegate_apis.ts | 39 +++++ .../server/build_security_api.test.ts | 44 ------ .../security/server/build_security_api.ts | 24 --- x-pack/plugins/security/server/plugin.test.ts | 10 +- x-pack/plugins/security/server/plugin.ts | 9 +- .../routes/user_profile/get_current.test.ts | 51 ++++--- .../server/routes/user_profile/get_current.ts | 7 +- x-pack/plugins/security/tsconfig.json | 2 + yarn.lock | 28 ++++ 159 files changed, 2279 insertions(+), 357 deletions(-) create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/README.md create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/index.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/jest.config.js create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/kibana.jsonc create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/package.json create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/internal_contracts.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.mocks.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.test.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.test.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/src/utils/index.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-internal/tsconfig.json create mode 100644 packages/core/user-profile/core-user-profile-browser-mocks/README.md create mode 100644 packages/core/user-profile/core-user-profile-browser-mocks/index.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-mocks/jest.config.js create mode 100644 packages/core/user-profile/core-user-profile-browser-mocks/kibana.jsonc create mode 100644 packages/core/user-profile/core-user-profile-browser-mocks/package.json create mode 100644 packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts create mode 100644 packages/core/user-profile/core-user-profile-browser-mocks/tsconfig.json create mode 100644 packages/core/user-profile/core-user-profile-browser/README.md create mode 100644 packages/core/user-profile/core-user-profile-browser/index.ts create mode 100644 packages/core/user-profile/core-user-profile-browser/jest.config.js create mode 100644 packages/core/user-profile/core-user-profile-browser/kibana.jsonc create mode 100644 packages/core/user-profile/core-user-profile-browser/package.json create mode 100644 packages/core/user-profile/core-user-profile-browser/src/api_provider.ts create mode 100644 packages/core/user-profile/core-user-profile-browser/src/contracts.ts create mode 100644 packages/core/user-profile/core-user-profile-browser/src/service.ts create mode 100644 packages/core/user-profile/core-user-profile-browser/tsconfig.json create mode 100644 packages/core/user-profile/core-user-profile-common/README.md create mode 100644 packages/core/user-profile/core-user-profile-common/index.ts create mode 100644 packages/core/user-profile/core-user-profile-common/jest.config.js create mode 100644 packages/core/user-profile/core-user-profile-common/kibana.jsonc create mode 100644 packages/core/user-profile/core-user-profile-common/package.json rename {x-pack/packages/security/plugin_types_common/src/user_profile => packages/core/user-profile/core-user-profile-common/src}/user_profile.ts (92%) create mode 100644 packages/core/user-profile/core-user-profile-common/tsconfig.json create mode 100644 packages/core/user-profile/core-user-profile-server-internal/README.md create mode 100644 packages/core/user-profile/core-user-profile-server-internal/index.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/jest.config.js create mode 100644 packages/core/user-profile/core-user-profile-server-internal/kibana.jsonc create mode 100644 packages/core/user-profile/core-user-profile-server-internal/package.json create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/internal_contracts.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.mocks.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.test.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.test.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/src/utils/index.ts create mode 100644 packages/core/user-profile/core-user-profile-server-internal/tsconfig.json create mode 100644 packages/core/user-profile/core-user-profile-server-mocks/README.md create mode 100644 packages/core/user-profile/core-user-profile-server-mocks/index.ts create mode 100644 packages/core/user-profile/core-user-profile-server-mocks/jest.config.js create mode 100644 packages/core/user-profile/core-user-profile-server-mocks/kibana.jsonc create mode 100644 packages/core/user-profile/core-user-profile-server-mocks/package.json create mode 100644 packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts create mode 100644 packages/core/user-profile/core-user-profile-server-mocks/tsconfig.json create mode 100644 packages/core/user-profile/core-user-profile-server/README.md create mode 100644 packages/core/user-profile/core-user-profile-server/index.ts create mode 100644 packages/core/user-profile/core-user-profile-server/jest.config.js create mode 100644 packages/core/user-profile/core-user-profile-server/kibana.jsonc create mode 100644 packages/core/user-profile/core-user-profile-server/package.json create mode 100644 packages/core/user-profile/core-user-profile-server/src/api_provider.ts create mode 100644 packages/core/user-profile/core-user-profile-server/src/contracts.ts create mode 100644 packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts rename x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts => packages/core/user-profile/core-user-profile-server/src/service.ts (91%) create mode 100644 packages/core/user-profile/core-user-profile-server/tsconfig.json create mode 100644 x-pack/plugins/security/public/build_delegate_api.test.ts create mode 100644 x-pack/plugins/security/public/build_delegate_api.ts delete mode 100644 x-pack/plugins/security/public/build_security_api.test.ts delete mode 100644 x-pack/plugins/security/public/build_security_api.ts create mode 100644 x-pack/plugins/security/server/build_delegate_apis.test.ts create mode 100644 x-pack/plugins/security/server/build_delegate_apis.ts delete mode 100644 x-pack/plugins/security/server/build_security_api.test.ts delete mode 100644 x-pack/plugins/security/server/build_security_api.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ae22f91bb038d..4a6c4b24a6800 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -313,6 +313,13 @@ packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-co packages/core/usage-data/core-usage-data-server @elastic/kibana-core packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-server-mocks @elastic/kibana-core +packages/core/user-profile/core-user-profile-browser @elastic/kibana-core +packages/core/user-profile/core-user-profile-browser-internal @elastic/kibana-core +packages/core/user-profile/core-user-profile-browser-mocks @elastic/kibana-core +packages/core/user-profile/core-user-profile-common @elastic/kibana-core +packages/core/user-profile/core-user-profile-server @elastic/kibana-core +packages/core/user-profile/core-user-profile-server-internal @elastic/kibana-core +packages/core/user-profile/core-user-profile-server-mocks @elastic/kibana-core packages/core/user-settings/core-user-settings-server @elastic/kibana-security packages/core/user-settings/core-user-settings-server-internal @elastic/kibana-security packages/core/user-settings/core-user-settings-server-mocks @elastic/kibana-security diff --git a/package.json b/package.json index fd15d8a4ce34a..5a1689beb3de3 100644 --- a/package.json +++ b/package.json @@ -368,6 +368,13 @@ "@kbn/core-usage-data-base-server-internal": "link:packages/core/usage-data/core-usage-data-base-server-internal", "@kbn/core-usage-data-server": "link:packages/core/usage-data/core-usage-data-server", "@kbn/core-usage-data-server-internal": "link:packages/core/usage-data/core-usage-data-server-internal", + "@kbn/core-user-profile-browser": "link:packages/core/user-profile/core-user-profile-browser", + "@kbn/core-user-profile-browser-internal": "link:packages/core/user-profile/core-user-profile-browser-internal", + "@kbn/core-user-profile-browser-mocks": "link:packages/core/user-profile/core-user-profile-browser-mocks", + "@kbn/core-user-profile-common": "link:packages/core/user-profile/core-user-profile-common", + "@kbn/core-user-profile-server": "link:packages/core/user-profile/core-user-profile-server", + "@kbn/core-user-profile-server-internal": "link:packages/core/user-profile/core-user-profile-server-internal", + "@kbn/core-user-profile-server-mocks": "link:packages/core/user-profile/core-user-profile-server-mocks", "@kbn/core-user-settings-server": "link:packages/core/user-settings/core-user-settings-server", "@kbn/core-user-settings-server-internal": "link:packages/core/user-settings/core-user-settings-server-internal", "@kbn/core-user-settings-server-mocks": "link:packages/core/user-settings/core-user-settings-server-mocks", diff --git a/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.test.ts b/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.test.ts index 63aa61c3eced1..1125c7da5f403 100644 --- a/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.test.ts +++ b/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.test.ts @@ -232,3 +232,32 @@ describe('#security', () => { }); }); }); + +describe('#userProfile', () => { + describe('getCurrent', () => { + test('calls coreStart.userProfile.getCurrent with the correct parameters', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = createCoreRouteHandlerContextParamsMock(); + const context = new CoreRouteHandlerContext(coreStart, request); + + context.userProfile?.getCurrent({ dataPath: '/data-path' }); + expect(coreStart.userProfile.getCurrent).toHaveBeenCalledTimes(1); + expect(coreStart.userProfile.getCurrent).toHaveBeenCalledWith({ + request, + dataPath: '/data-path', + }); + }); + + test('returns the result of coreStart.userProfile.getCurrent', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = createCoreRouteHandlerContextParamsMock(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const stubProfile: any = Symbol.for('stubProfile'); + coreStart.userProfile.getCurrent.mockReturnValue(stubProfile); + + const profile = context.userProfile?.getCurrent(); + expect(profile).toBe(stubProfile); + }); + }); +}); diff --git a/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.ts b/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.ts index f8e428f45ed76..85290fc62698c 100644 --- a/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.ts +++ b/packages/core/http/core-http-request-handler-context-server-internal/src/core_route_handler_context.ts @@ -28,6 +28,10 @@ import { CoreSecurityRouteHandlerContext, type InternalSecurityServiceStart, } from '@kbn/core-security-server-internal'; +import { + CoreUserProfileRouteHandlerContext, + type InternalUserProfileServiceStart, +} from '@kbn/core-user-profile-server-internal'; /** * Subset of `InternalCoreStart` used by {@link CoreRouteHandlerContext} @@ -39,6 +43,7 @@ export interface CoreRouteHandlerContextParams { uiSettings: InternalUiSettingsServiceStart; deprecations: InternalDeprecationsServiceStart; security: InternalSecurityServiceStart; + userProfile: InternalUserProfileServiceStart; } /** @@ -52,6 +57,7 @@ export class CoreRouteHandlerContext implements CoreRequestHandlerContext { #uiSettings?: CoreUiSettingsRouteHandlerContext; #deprecations?: CoreDeprecationsRouteHandlerContext; #security?: CoreSecurityRouteHandlerContext; + #userProfile?: CoreUserProfileRouteHandlerContext; constructor( private readonly coreStart: CoreRouteHandlerContextParams, @@ -105,4 +111,14 @@ export class CoreRouteHandlerContext implements CoreRequestHandlerContext { } return this.#security; } + + public get userProfile() { + if (!this.#userProfile) { + this.#userProfile = new CoreUserProfileRouteHandlerContext( + this.coreStart.userProfile, + this.request + ); + } + return this.#userProfile; + } } diff --git a/packages/core/http/core-http-request-handler-context-server-internal/src/test_helpers/core_route_handler_context_params.mock.ts b/packages/core/http/core-http-request-handler-context-server-internal/src/test_helpers/core_route_handler_context_params.mock.ts index 5e9f30c93e523..735b9e504b3a3 100644 --- a/packages/core/http/core-http-request-handler-context-server-internal/src/test_helpers/core_route_handler_context_params.mock.ts +++ b/packages/core/http/core-http-request-handler-context-server-internal/src/test_helpers/core_route_handler_context_params.mock.ts @@ -11,6 +11,7 @@ import { savedObjectsServiceMock } from '@kbn/core-saved-objects-server-mocks'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import { deprecationsServiceMock } from '@kbn/core-deprecations-server-mocks'; import { securityServiceMock } from '@kbn/core-security-server-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; export const createCoreRouteHandlerContextParamsMock = () => { return { @@ -19,5 +20,6 @@ export const createCoreRouteHandlerContextParamsMock = () => { uiSettings: uiSettingsServiceMock.createStartContract(), deprecations: deprecationsServiceMock.createInternalStartContract(), security: securityServiceMock.createInternalStart(), + userProfile: userProfileServiceMock.createInternalStart(), }; }; diff --git a/packages/core/http/core-http-request-handler-context-server-internal/tsconfig.json b/packages/core/http/core-http-request-handler-context-server-internal/tsconfig.json index 607c0cf7cea7f..9e5ab96901e86 100644 --- a/packages/core/http/core-http-request-handler-context-server-internal/tsconfig.json +++ b/packages/core/http/core-http-request-handler-context-server-internal/tsconfig.json @@ -25,6 +25,8 @@ "@kbn/core-deprecations-server-mocks", "@kbn/core-security-server-internal", "@kbn/core-security-server-mocks", + "@kbn/core-user-profile-server-internal", + "@kbn/core-user-profile-server-mocks", ], "exclude": [ "target/**/*", diff --git a/packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts b/packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts index 6513775395911..735b30abc3b76 100644 --- a/packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts +++ b/packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts @@ -12,6 +12,7 @@ import type { SavedObjectsRequestHandlerContext } from '@kbn/core-saved-objects- import type { DeprecationsRequestHandlerContext } from '@kbn/core-deprecations-server'; import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server'; import type { SecurityRequestHandlerContext } from '@kbn/core-security-server'; +import type { UserProfileRequestHandlerContext } from '@kbn/core-user-profile-server'; /** * The `core` context provided to route handler. @@ -33,6 +34,7 @@ export interface CoreRequestHandlerContext { uiSettings: UiSettingsRequestHandlerContext; deprecations: DeprecationsRequestHandlerContext; security: SecurityRequestHandlerContext; + userProfile: UserProfileRequestHandlerContext; } /** diff --git a/packages/core/http/core-http-request-handler-context-server/tsconfig.json b/packages/core/http/core-http-request-handler-context-server/tsconfig.json index 5b20b03ce5918..4606770c753d7 100644 --- a/packages/core/http/core-http-request-handler-context-server/tsconfig.json +++ b/packages/core/http/core-http-request-handler-context-server/tsconfig.json @@ -16,7 +16,8 @@ "@kbn/core-saved-objects-server", "@kbn/core-deprecations-server", "@kbn/core-ui-settings-server", - "@kbn/core-security-server" + "@kbn/core-security-server", + "@kbn/core-user-profile-server" ], "exclude": [ "target/**/*", diff --git a/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_setup.ts b/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_setup.ts index cc2404071ecd5..31116e7060b6d 100644 --- a/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_setup.ts +++ b/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_setup.ts @@ -11,12 +11,17 @@ import type { InternalApplicationSetup } from '@kbn/core-application-browser-int import type { InternalInjectedMetadataSetup } from '@kbn/core-injected-metadata-browser-internal'; import type { InternalHttpSetup } from '@kbn/core-http-browser-internal'; import type { InternalSecurityServiceSetup } from '@kbn/core-security-browser-internal'; +import type { InternalUserProfileServiceSetup } from '@kbn/core-user-profile-browser-internal'; /** @internal */ export interface InternalCoreSetup - extends Omit<CoreSetup, 'application' | 'plugins' | 'getStartServices' | 'http' | 'security'> { + extends Omit< + CoreSetup, + 'application' | 'plugins' | 'getStartServices' | 'http' | 'security' | 'userProfile' + > { application: InternalApplicationSetup; injectedMetadata: InternalInjectedMetadataSetup; http: InternalHttpSetup; security: InternalSecurityServiceSetup; + userProfile: InternalUserProfileServiceSetup; } diff --git a/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_start.ts b/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_start.ts index 2bfdeaf1da584..7ac2b4e34f102 100644 --- a/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_start.ts +++ b/packages/core/lifecycle/core-lifecycle-browser-internal/src/internal_core_start.ts @@ -11,12 +11,14 @@ import type { InternalApplicationStart } from '@kbn/core-application-browser-int import type { InternalInjectedMetadataStart } from '@kbn/core-injected-metadata-browser-internal'; import type { InternalHttpStart } from '@kbn/core-http-browser-internal'; import type { InternalSecurityServiceStart } from '@kbn/core-security-browser-internal'; +import type { InternalUserProfileServiceStart } from '@kbn/core-user-profile-browser-internal'; /** @internal */ export interface InternalCoreStart - extends Omit<CoreStart, 'application' | 'plugins' | 'http' | 'security'> { + extends Omit<CoreStart, 'application' | 'plugins' | 'http' | 'security' | 'userProfile'> { application: InternalApplicationStart; injectedMetadata: InternalInjectedMetadataStart; http: InternalHttpStart; security: InternalSecurityServiceStart; + userProfile: InternalUserProfileServiceStart; } diff --git a/packages/core/lifecycle/core-lifecycle-browser-internal/tsconfig.json b/packages/core/lifecycle/core-lifecycle-browser-internal/tsconfig.json index ae9e07fa47a54..4fd531018418d 100644 --- a/packages/core/lifecycle/core-lifecycle-browser-internal/tsconfig.json +++ b/packages/core/lifecycle/core-lifecycle-browser-internal/tsconfig.json @@ -16,7 +16,8 @@ "@kbn/core-application-browser-internal", "@kbn/core-injected-metadata-browser-internal", "@kbn/core-http-browser-internal", - "@kbn/core-security-browser-internal" + "@kbn/core-security-browser-internal", + "@kbn/core-user-profile-browser-internal" ], "exclude": [ "target/**/*", diff --git a/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_setup.mock.ts b/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_setup.mock.ts index 8d6f1daddc8e2..1ce30deb63782 100644 --- a/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_setup.mock.ts +++ b/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_setup.mock.ts @@ -18,6 +18,7 @@ import { notificationServiceMock } from '@kbn/core-notifications-browser-mocks'; import { applicationServiceMock } from '@kbn/core-application-browser-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-browser-mocks'; import { securityServiceMock } from '@kbn/core-security-browser-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-browser-mocks'; import { createCoreStartMock } from './core_start.mock'; export function createCoreSetupMock({ @@ -46,6 +47,7 @@ export function createCoreSetupMock({ deprecations: deprecationsServiceMock.createSetupContract(), theme: themeServiceMock.createSetupContract(), security: securityServiceMock.createSetup(), + userProfile: userProfileServiceMock.createSetup(), plugins: { onSetup: jest.fn(), onStart: jest.fn(), diff --git a/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_start.mock.ts b/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_start.mock.ts index 8451778dbe62e..b33b22c12f9c8 100644 --- a/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_start.mock.ts +++ b/packages/core/lifecycle/core-lifecycle-browser-mocks/src/core_start.mock.ts @@ -22,6 +22,7 @@ import { applicationServiceMock } from '@kbn/core-application-browser-mocks'; import { chromeServiceMock } from '@kbn/core-chrome-browser-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-browser-mocks'; import { securityServiceMock } from '@kbn/core-security-browser-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-browser-mocks'; export function createCoreStartMock({ basePath = '' } = {}) { const mock = { @@ -42,6 +43,7 @@ export function createCoreStartMock({ basePath = '' } = {}) { theme: themeServiceMock.createStartContract(), fatalErrors: fatalErrorsServiceMock.createStartContract(), security: securityServiceMock.createStart(), + userProfile: userProfileServiceMock.createStart(), plugins: { onStart: jest.fn(), }, diff --git a/packages/core/lifecycle/core-lifecycle-browser-mocks/tsconfig.json b/packages/core/lifecycle/core-lifecycle-browser-mocks/tsconfig.json index ba02ede1a594e..b6df8220f8603 100644 --- a/packages/core/lifecycle/core-lifecycle-browser-mocks/tsconfig.json +++ b/packages/core/lifecycle/core-lifecycle-browser-mocks/tsconfig.json @@ -27,7 +27,8 @@ "@kbn/core-application-browser-mocks", "@kbn/core-chrome-browser-mocks", "@kbn/core-custom-branding-browser-mocks", - "@kbn/core-security-browser-mocks" + "@kbn/core-security-browser-mocks", + "@kbn/core-user-profile-browser-mocks" ], "exclude": [ "target/**/*", diff --git a/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts b/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts index ac5861cf5667b..fa276f375414b 100644 --- a/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts +++ b/packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts @@ -17,6 +17,7 @@ import type { ApplicationSetup } from '@kbn/core-application-browser'; import type { CustomBrandingSetup } from '@kbn/core-custom-branding-browser'; import type { PluginsServiceSetup } from '@kbn/core-plugins-contracts-browser'; import type { SecurityServiceSetup } from '@kbn/core-security-browser'; +import type { UserProfileServiceSetup } from '@kbn/core-user-profile-browser'; import type { CoreStart } from './core_start'; /** @@ -59,6 +60,8 @@ export interface CoreSetup<TPluginsStart extends object = object, TStart = unkno plugins: PluginsServiceSetup; /** {@link SecurityServiceSetup} */ security: SecurityServiceSetup; + /** {@link UserProfileServiceSetup} */ + userProfile: UserProfileServiceSetup; /** {@link StartServicesAccessor} */ getStartServices: StartServicesAccessor<TPluginsStart, TStart>; } diff --git a/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts b/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts index 5d1f590b75058..2ea7d3b63d151 100644 --- a/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts +++ b/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts @@ -23,6 +23,7 @@ import type { ChromeStart } from '@kbn/core-chrome-browser'; import type { CustomBrandingStart } from '@kbn/core-custom-branding-browser'; import type { PluginsServiceStart } from '@kbn/core-plugins-contracts-browser'; import type { SecurityServiceStart } from '@kbn/core-security-browser'; +import type { UserProfileServiceStart } from '@kbn/core-user-profile-browser'; /** * Core services exposed to the `Plugin` start lifecycle @@ -74,4 +75,6 @@ export interface CoreStart { plugins: PluginsServiceStart; /** {@link SecurityServiceStart} */ security: SecurityServiceStart; + /** {@link UserProfileServiceStart} */ + userProfile: UserProfileServiceStart; } diff --git a/packages/core/lifecycle/core-lifecycle-browser/tsconfig.json b/packages/core/lifecycle/core-lifecycle-browser/tsconfig.json index 7bfe8720f403b..558694c2c1c91 100644 --- a/packages/core/lifecycle/core-lifecycle-browser/tsconfig.json +++ b/packages/core/lifecycle/core-lifecycle-browser/tsconfig.json @@ -28,7 +28,8 @@ "@kbn/core-chrome-browser", "@kbn/core-custom-branding-browser", "@kbn/core-plugins-contracts-browser", - "@kbn/core-security-browser" + "@kbn/core-security-browser", + "@kbn/core-user-profile-browser" ], "exclude": [ "target/**/*", diff --git a/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_setup.ts b/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_setup.ts index 29f07032df027..43a8287e51919 100644 --- a/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_setup.ts +++ b/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_setup.ts @@ -27,6 +27,7 @@ import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-serve import type { InternalCustomBrandingSetup } from '@kbn/core-custom-branding-server-internal'; import type { InternalUserSettingsServiceSetup } from '@kbn/core-user-settings-server-internal'; import type { InternalSecurityServiceSetup } from '@kbn/core-security-server-internal'; +import type { InternalUserProfileServiceSetup } from '@kbn/core-user-profile-server-internal'; /** @internal */ export interface InternalCoreSetup { @@ -51,4 +52,5 @@ export interface InternalCoreSetup { customBranding: InternalCustomBrandingSetup; userSettings: InternalUserSettingsServiceSetup; security: InternalSecurityServiceSetup; + userProfile: InternalUserProfileServiceSetup; } diff --git a/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_start.ts b/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_start.ts index 353b35f92f365..b2c9da09003d2 100644 --- a/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_start.ts +++ b/packages/core/lifecycle/core-lifecycle-server-internal/src/internal_core_start.ts @@ -19,6 +19,7 @@ import type { InternalUiSettingsServiceStart } from '@kbn/core-ui-settings-serve import type { CoreUsageDataStart } from '@kbn/core-usage-data-server'; import type { CustomBrandingStart } from '@kbn/core-custom-branding-server'; import type { InternalSecurityServiceStart } from '@kbn/core-security-server-internal'; +import type { InternalUserProfileServiceStart } from '@kbn/core-user-profile-server-internal'; /** * @internal @@ -37,4 +38,5 @@ export interface InternalCoreStart { deprecations: InternalDeprecationsServiceStart; customBranding: CustomBrandingStart; security: InternalSecurityServiceStart; + userProfile: InternalUserProfileServiceStart; } diff --git a/packages/core/lifecycle/core-lifecycle-server-internal/tsconfig.json b/packages/core/lifecycle/core-lifecycle-server-internal/tsconfig.json index dc5f481833ad4..1e5c8cb22233a 100644 --- a/packages/core/lifecycle/core-lifecycle-server-internal/tsconfig.json +++ b/packages/core/lifecycle/core-lifecycle-server-internal/tsconfig.json @@ -34,7 +34,8 @@ "@kbn/core-custom-branding-server-internal", "@kbn/core-custom-branding-server", "@kbn/core-user-settings-server-internal", - "@kbn/core-security-server-internal" + "@kbn/core-security-server-internal", + "@kbn/core-user-profile-server-internal" ], "exclude": [ "target/**/*", diff --git a/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_setup.mock.ts b/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_setup.mock.ts index 3acd1ff2fb6b0..4f0f8cd7a66dd 100644 --- a/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_setup.mock.ts +++ b/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_setup.mock.ts @@ -27,6 +27,7 @@ import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-server-mocks'; import { userSettingsServiceMock } from '@kbn/core-user-settings-server-mocks'; import { securityServiceMock } from '@kbn/core-security-server-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; import { createCoreStartMock } from './core_start.mock'; type CoreSetupMockType = MockedKeys<CoreSetup> & { @@ -69,6 +70,7 @@ export function createCoreSetupMock({ deprecations: deprecationsServiceMock.createSetupContract(), executionContext: executionContextServiceMock.createInternalSetupContract(), security: securityServiceMock.createSetup(), + userProfile: userProfileServiceMock.createSetup(), coreUsageData: { registerUsageCounter: coreUsageDataServiceMock.createSetupContract().registerUsageCounter, }, diff --git a/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_start.mock.ts b/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_start.mock.ts index c01c3c4ec616a..1ca7b1a096e39 100644 --- a/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_start.mock.ts +++ b/packages/core/lifecycle/core-lifecycle-server-mocks/src/core_start.mock.ts @@ -20,6 +20,7 @@ import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-server-mocks'; import { securityServiceMock } from '@kbn/core-security-server-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; export function createCoreStartMock() { const mock: MockedKeys<CoreStart> = { @@ -35,6 +36,7 @@ export function createCoreStartMock() { executionContext: executionContextServiceMock.createInternalStartContract(), customBranding: customBrandingServiceMock.createStartContract(), security: securityServiceMock.createStart(), + userProfile: userProfileServiceMock.createStart(), plugins: { onStart: jest.fn(), }, diff --git a/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_setup.mock.ts b/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_setup.mock.ts index 066ae6633fff8..fe998ddf721b1 100644 --- a/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_setup.mock.ts +++ b/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_setup.mock.ts @@ -27,6 +27,7 @@ import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-server-mocks'; import { userSettingsServiceMock } from '@kbn/core-user-settings-server-mocks'; import { securityServiceMock } from '@kbn/core-security-server-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; export function createInternalCoreSetupMock() { const setupDeps = { @@ -51,6 +52,7 @@ export function createInternalCoreSetupMock() { customBranding: customBrandingServiceMock.createSetupContract(), userSettings: userSettingsServiceMock.createSetupContract(), security: securityServiceMock.createInternalSetup(), + userProfile: userProfileServiceMock.createInternalSetup(), }; return setupDeps; } diff --git a/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_start.mock.ts b/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_start.mock.ts index 8831435dfbeff..5230ce25a0ead 100644 --- a/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_start.mock.ts +++ b/packages/core/lifecycle/core-lifecycle-server-mocks/src/internal_core_start.mock.ts @@ -19,6 +19,7 @@ import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-server-mocks'; import { securityServiceMock } from '@kbn/core-security-server-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; export function createInternalCoreStartMock() { const startDeps = { @@ -35,6 +36,7 @@ export function createInternalCoreStartMock() { deprecations: deprecationsServiceMock.createInternalStartContract(), customBranding: customBrandingServiceMock.createStartContract(), security: securityServiceMock.createInternalStart(), + userProfile: userProfileServiceMock.createInternalStart(), }; return startDeps; } diff --git a/packages/core/lifecycle/core-lifecycle-server-mocks/tsconfig.json b/packages/core/lifecycle/core-lifecycle-server-mocks/tsconfig.json index dfeb7485e9f9c..bacda3278557b 100644 --- a/packages/core/lifecycle/core-lifecycle-server-mocks/tsconfig.json +++ b/packages/core/lifecycle/core-lifecycle-server-mocks/tsconfig.json @@ -36,6 +36,7 @@ "@kbn/core-custom-branding-server-mocks", "@kbn/core-user-settings-server-mocks", "@kbn/core-security-server-mocks", + "@kbn/core-user-profile-server-mocks", ], "exclude": [ "target/**/*", diff --git a/packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts b/packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts index eca43897e554f..c590d562a433c 100644 --- a/packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts +++ b/packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts @@ -26,6 +26,7 @@ import type { CustomBrandingSetup } from '@kbn/core-custom-branding-server'; import type { UserSettingsServiceSetup } from '@kbn/core-user-settings-server'; import type { PluginsServiceSetup } from '@kbn/core-plugins-contracts-server'; import type { SecurityServiceSetup } from '@kbn/core-security-server'; +import type { UserProfileServiceSetup } from '@kbn/core-user-profile-server'; import type { CoreStart } from './core_start'; /** @@ -79,6 +80,8 @@ export interface CoreSetup<TPluginsStart extends object = object, TStart = unkno plugins: PluginsServiceSetup; /** {@link SecurityServiceSetup} */ security: SecurityServiceSetup; + /** {@link UserProfileServiceSetup} */ + userProfile: UserProfileServiceSetup; } /** diff --git a/packages/core/lifecycle/core-lifecycle-server/src/core_start.ts b/packages/core/lifecycle/core-lifecycle-server/src/core_start.ts index 368786955ba52..96564d733c672 100644 --- a/packages/core/lifecycle/core-lifecycle-server/src/core_start.ts +++ b/packages/core/lifecycle/core-lifecycle-server/src/core_start.ts @@ -19,6 +19,7 @@ import type { CoreUsageDataStart } from '@kbn/core-usage-data-server'; import type { CustomBrandingStart } from '@kbn/core-custom-branding-server'; import type { PluginsServiceStart } from '@kbn/core-plugins-contracts-server'; import type { SecurityServiceStart } from '@kbn/core-security-server'; +import type { UserProfileServiceStart } from '@kbn/core-user-profile-server'; /** * Context passed to the plugins `start` method. @@ -52,4 +53,6 @@ export interface CoreStart { plugins: PluginsServiceStart; /** {@link SecurityServiceStart} */ security: SecurityServiceStart; + /** {@link UserProfileServiceStart} */ + userProfile: UserProfileServiceStart; } diff --git a/packages/core/lifecycle/core-lifecycle-server/tsconfig.json b/packages/core/lifecycle/core-lifecycle-server/tsconfig.json index aef01eebedc6c..ed35724914dec 100644 --- a/packages/core/lifecycle/core-lifecycle-server/tsconfig.json +++ b/packages/core/lifecycle/core-lifecycle-server/tsconfig.json @@ -31,7 +31,8 @@ "@kbn/core-custom-branding-server", "@kbn/core-user-settings-server", "@kbn/core-plugins-contracts-server", - "@kbn/core-security-server" + "@kbn/core-security-server", + "@kbn/core-user-profile-server" ], "exclude": [ "target/**/*", diff --git a/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts b/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts index ed055da554312..1edbaa517e3a0 100644 --- a/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts +++ b/packages/core/plugins/core-plugins-browser-internal/src/plugin_context.ts @@ -94,7 +94,11 @@ export function createPluginSetupContext< settings: deps.settings, theme: deps.theme, security: { - registerSecurityApi: (api) => deps.security.registerSecurityApi(api), + registerSecurityDelegate: (api) => deps.security.registerSecurityDelegate(api), + }, + userProfile: { + registerUserProfileDelegate: (delegate) => + deps.userProfile.registerUserProfileDelegate(delegate), }, plugins: { onSetup: (...dependencyNames) => runtimeResolver.onSetup(plugin.name, dependencyNames), @@ -162,6 +166,7 @@ export function createPluginStartContext< security: { authc: deps.security.authc, }, + userProfile: deps.userProfile, plugins: { onStart: (...dependencyNames) => runtimeResolver.onStart(plugin.name, dependencyNames), }, diff --git a/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts b/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts index 72ba2b6312316..d4f693fff25d0 100644 --- a/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts +++ b/packages/core/plugins/core-plugins-browser-internal/src/plugins_service.test.ts @@ -42,6 +42,7 @@ import type { CoreSetup, CoreStart } from '@kbn/core-lifecycle-browser'; import { savedObjectsServiceMock } from '@kbn/core-saved-objects-browser-mocks'; import { deprecationsServiceMock } from '@kbn/core-deprecations-browser-mocks'; import { securityServiceMock } from '@kbn/core-security-browser-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-browser-mocks'; export let mockPluginInitializers: Map<PluginName, MockedPluginInitializer>; @@ -100,6 +101,7 @@ describe('PluginsService', () => { uiSettings: uiSettingsServiceMock.createSetupContract(), theme: themeServiceMock.createSetupContract(), security: securityServiceMock.createInternalSetup(), + userProfile: userProfileServiceMock.createInternalSetup(), }; mockSetupContext = { ...omit(mockSetupDeps, 'injectedMetadata'), @@ -107,6 +109,7 @@ describe('PluginsService', () => { plugins: expect.any(Object), getStartServices: expect.any(Function), security: expect.any(Object), + userProfile: expect.any(Object), http: { ...mockSetupDeps.http, staticAssets: expect.any(Object), @@ -130,6 +133,7 @@ describe('PluginsService', () => { deprecations: deprecationsServiceMock.createStartContract(), theme: themeServiceMock.createStartContract(), security: securityServiceMock.createInternalStart(), + userProfile: userProfileServiceMock.createInternalStart(), }; mockStartContext = { ...omit(mockStartDeps, 'injectedMetadata'), @@ -137,6 +141,7 @@ describe('PluginsService', () => { plugins: expect.any(Object), chrome: omit(mockStartDeps.chrome, 'getComponent'), security: expect.any(Object), + userProfile: expect.any(Object), http: { ...mockStartDeps.http, staticAssets: expect.any(Object), diff --git a/packages/core/plugins/core-plugins-browser-internal/tsconfig.json b/packages/core/plugins/core-plugins-browser-internal/tsconfig.json index 1df9acab0451e..e2e502e821362 100644 --- a/packages/core/plugins/core-plugins-browser-internal/tsconfig.json +++ b/packages/core/plugins/core-plugins-browser-internal/tsconfig.json @@ -38,6 +38,7 @@ "@kbn/utility-types", "@kbn/core-plugins-contracts-browser", "@kbn/core-security-browser-mocks", + "@kbn/core-user-profile-browser-mocks", ], "exclude": [ "target/**/*", diff --git a/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts b/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts index 6928c5791c0a8..830df5c94e008 100644 --- a/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts +++ b/packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts @@ -285,7 +285,11 @@ export function createPluginSetupContext<TPlugin, TPluginDependencies>({ onStart: (...dependencyNames) => runtimeResolver.onStart(plugin.name, dependencyNames), }, security: { - registerSecurityApi: (api) => deps.security.registerSecurityApi(api), + registerSecurityDelegate: (api) => deps.security.registerSecurityDelegate(api), + }, + userProfile: { + registerUserProfileDelegate: (delegate) => + deps.userProfile.registerUserProfileDelegate(delegate), }, }; } @@ -366,5 +370,6 @@ export function createPluginStartContext<TPlugin, TPluginDependencies>({ security: { authc: deps.security.authc, }, + userProfile: deps.userProfile, }; } diff --git a/packages/core/root/core-root-browser-internal/src/core_system.test.mocks.ts b/packages/core/root/core-root-browser-internal/src/core_system.test.mocks.ts index 638024a2eb8ed..e3c4aa171fa93 100644 --- a/packages/core/root/core-root-browser-internal/src/core_system.test.mocks.ts +++ b/packages/core/root/core-root-browser-internal/src/core_system.test.mocks.ts @@ -26,6 +26,7 @@ import { coreAppsMock } from '@kbn/core-apps-browser-mocks'; import { loggingSystemMock } from '@kbn/core-logging-browser-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-browser-mocks'; import { securityServiceMock } from '@kbn/core-security-browser-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-browser-mocks'; export const analyticsServiceStartMock = analyticsServiceMock.createAnalyticsServiceStart(); export const MockAnalyticsService = analyticsServiceMock.create(); @@ -163,3 +164,11 @@ export const SecurityServiceConstructor = jest.fn().mockImplementation(() => Moc jest.doMock('@kbn/core-security-browser-internal', () => ({ SecurityService: SecurityServiceConstructor, })); + +export const MockUserProfileService = userProfileServiceMock.create(); +export const UserProfileServiceConstructor = jest + .fn() + .mockImplementation(() => MockUserProfileService); +jest.doMock('@kbn/core-user-profile-browser-internal', () => ({ + UserProfileService: UserProfileServiceConstructor, +})); diff --git a/packages/core/root/core-root-browser-internal/src/core_system.test.ts b/packages/core/root/core-root-browser-internal/src/core_system.test.ts index bfe995114b842..e2f3a98ee8e03 100644 --- a/packages/core/root/core-root-browser-internal/src/core_system.test.ts +++ b/packages/core/root/core-root-browser-internal/src/core_system.test.ts @@ -46,6 +46,8 @@ import { CustomBrandingServiceConstructor, MockSecurityService, SecurityServiceConstructor, + MockUserProfileService, + UserProfileServiceConstructor, } from './core_system.test.mocks'; import type { EnvironmentMode } from '@kbn/config'; import { CoreSystem } from './core_system'; @@ -153,6 +155,7 @@ describe('constructor', () => { expect(LoggingSystemConstructor).toHaveBeenCalledTimes(1); expect(CustomBrandingServiceConstructor).toHaveBeenCalledTimes(1); expect(SecurityServiceConstructor).toHaveBeenCalledTimes(1); + expect(UserProfileServiceConstructor).toHaveBeenCalledTimes(1); }); it('passes injectedMetadata param to InjectedMetadataService', () => { @@ -317,6 +320,11 @@ describe('#setup()', () => { await setupCore(); expect(MockSecurityService.setup).toHaveBeenCalledTimes(1); }); + + it('calls userProfile#setup()', async () => { + await setupCore(); + expect(MockUserProfileService.setup).toHaveBeenCalledTimes(1); + }); }); describe('#start()', () => { @@ -508,6 +516,11 @@ describe('#start()', () => { await startCore(); expect(MockSecurityService.start).toHaveBeenCalledTimes(1); }); + + it('calls userProfile#start()', async () => { + await startCore(); + expect(MockUserProfileService.start).toHaveBeenCalledTimes(1); + }); }); describe('#stop()', () => { diff --git a/packages/core/root/core-root-browser-internal/src/core_system.ts b/packages/core/root/core-root-browser-internal/src/core_system.ts index 1bd06082d0a5e..c9dcbf064823a 100644 --- a/packages/core/root/core-root-browser-internal/src/core_system.ts +++ b/packages/core/root/core-root-browser-internal/src/core_system.ts @@ -37,6 +37,7 @@ import type { InternalCoreSetup, InternalCoreStart } from '@kbn/core-lifecycle-b import { PluginsService } from '@kbn/core-plugins-browser-internal'; import { CustomBrandingService } from '@kbn/core-custom-branding-browser-internal'; import { SecurityService } from '@kbn/core-security-browser-internal'; +import { UserProfileService } from '@kbn/core-user-profile-browser-internal'; import { KBN_LOAD_MARKS } from './events'; import { fetchOptionalMemoryInfo } from './fetch_optional_memory_info'; import { @@ -105,6 +106,7 @@ export class CoreSystem { private readonly executionContext: ExecutionContextService; private readonly customBranding: CustomBrandingService; private readonly security: SecurityService; + private readonly userProfile: UserProfileService; private fatalErrorsSetup: FatalErrorsSetup | null = null; constructor(params: CoreSystemParams) { @@ -130,6 +132,7 @@ export class CoreSystem { this.stop(); }); this.security = new SecurityService(this.coreContext); + this.userProfile = new UserProfileService(this.coreContext); this.theme = new ThemeService(); this.notifications = new NotificationsService(); this.http = new HttpService(); @@ -238,6 +241,7 @@ export class CoreSystem { executionContext, }); const security = this.security.setup(); + const userProfile = this.userProfile.setup(); this.chrome.setup({ analytics }); const uiSettings = this.uiSettings.setup({ http, injectedMetadata }); const settings = this.settings.setup({ http, injectedMetadata }); @@ -260,6 +264,7 @@ export class CoreSystem { executionContext, customBranding, security, + userProfile, }; // Services that do not expose contracts at setup @@ -285,6 +290,7 @@ export class CoreSystem { try { const analytics = this.analytics.start(); const security = this.security.start(); + const userProfile = this.userProfile.start(); const injectedMetadata = await this.injectedMetadata.start(); const uiSettings = await this.uiSettings.start(); const settings = await this.settings.start(); @@ -360,6 +366,7 @@ export class CoreSystem { deprecations, customBranding, security, + userProfile, }; await this.plugins.start(core); @@ -423,6 +430,7 @@ export class CoreSystem { this.theme.stop(); this.analytics.stop(); this.security.stop(); + this.userProfile.stop(); this.rootDomElement.textContent = ''; } diff --git a/packages/core/root/core-root-browser-internal/tsconfig.json b/packages/core/root/core-root-browser-internal/tsconfig.json index 8029235949a53..152c7d3683e38 100644 --- a/packages/core/root/core-root-browser-internal/tsconfig.json +++ b/packages/core/root/core-root-browser-internal/tsconfig.json @@ -64,6 +64,8 @@ "@kbn/core-custom-branding-browser-mocks", "@kbn/core-security-browser-mocks", "@kbn/core-security-browser-internal", + "@kbn/core-user-profile-browser-mocks", + "@kbn/core-user-profile-browser-internal", ], "exclude": [ "target/**/*", diff --git a/packages/core/root/core-root-server-internal/src/server.test.mocks.ts b/packages/core/root/core-root-server-internal/src/server.test.mocks.ts index 6e4f18637ab15..dd44faeb97bd6 100644 --- a/packages/core/root/core-root-server-internal/src/server.test.mocks.ts +++ b/packages/core/root/core-root-server-internal/src/server.test.mocks.ts @@ -23,6 +23,7 @@ import { deprecationsServiceMock } from '@kbn/core-deprecations-server-mocks'; import { docLinksServiceMock } from '@kbn/core-doc-links-server-mocks'; import { userSettingsServiceMock } from '@kbn/core-user-settings-server-mocks'; import { securityServiceMock } from '@kbn/core-security-server-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; export const mockHttpService = httpServiceMock.create(); jest.doMock('@kbn/core-http-server-internal', () => ({ @@ -140,6 +141,11 @@ jest.doMock('@kbn/core-security-server-internal', () => ({ SecurityService: jest.fn(() => mockSecurityService), })); +export const mockUserProfileService = userProfileServiceMock.create(); +jest.doMock('@kbn/core-user-profile-server-internal', () => ({ + UserProfileService: jest.fn(() => mockUserProfileService), +})); + export const mockUsageDataService = coreUsageDataServiceMock.create(); jest.doMock('@kbn/core-usage-data-server-internal', () => ({ CoreUsageDataService: jest.fn(() => mockUsageDataService), diff --git a/packages/core/root/core-root-server-internal/src/server.test.ts b/packages/core/root/core-root-server-internal/src/server.test.ts index e226e670d5e31..60073cc5fcfd4 100644 --- a/packages/core/root/core-root-server-internal/src/server.test.ts +++ b/packages/core/root/core-root-server-internal/src/server.test.ts @@ -28,6 +28,7 @@ import { mockCustomBrandingService, mockUserSettingsService, mockSecurityService, + mockUserProfileService, } from './server.test.mocks'; import { BehaviorSubject } from 'rxjs'; @@ -129,6 +130,8 @@ test('sets up services on "setup"', async () => { expect(mockCustomBrandingService.setup).not.toHaveBeenCalled(); expect(mockUserSettingsService.setup).not.toHaveBeenCalled(); expect(mockSecurityService.setup).not.toHaveBeenCalled(); + expect(mockSecurityService.setup).not.toHaveBeenCalled(); + expect(mockUserProfileService.setup).not.toHaveBeenCalled(); await server.setup(); @@ -148,6 +151,7 @@ test('sets up services on "setup"', async () => { expect(mockCustomBrandingService.setup).toHaveBeenCalledTimes(1); expect(mockUserSettingsService.setup).toHaveBeenCalledTimes(1); expect(mockSecurityService.setup).toHaveBeenCalledTimes(1); + expect(mockUserProfileService.setup).toHaveBeenCalledTimes(1); }); test('injects legacy dependency to context#setup()', async () => { @@ -201,6 +205,7 @@ test('runs services on "start"', async () => { expect(mockDocLinksService.start).not.toHaveBeenCalled(); expect(mockCustomBrandingService.start).not.toHaveBeenCalled(); expect(mockSecurityService.start).not.toHaveBeenCalled(); + expect(mockUserProfileService.start).not.toHaveBeenCalled(); await server.start(); @@ -213,6 +218,7 @@ test('runs services on "start"', async () => { expect(mockDocLinksService.start).toHaveBeenCalledTimes(1); expect(mockCustomBrandingService.start).toHaveBeenCalledTimes(1); expect(mockSecurityService.start).toHaveBeenCalledTimes(1); + expect(mockUserProfileService.start).toHaveBeenCalledTimes(1); }); test('does not fail on "setup" if there are unused paths detected', async () => { @@ -241,6 +247,7 @@ test('stops services on "stop"', async () => { expect(mockLoggingService.stop).not.toHaveBeenCalled(); expect(mockCustomBrandingService.stop).not.toHaveBeenCalled(); expect(mockSecurityService.stop).not.toHaveBeenCalled(); + expect(mockUserProfileService.stop).not.toHaveBeenCalled(); await server.stop(); @@ -255,6 +262,7 @@ test('stops services on "stop"', async () => { expect(mockLoggingService.stop).toHaveBeenCalledTimes(1); expect(mockCustomBrandingService.stop).toHaveBeenCalledTimes(1); expect(mockSecurityService.stop).toHaveBeenCalledTimes(1); + expect(mockUserProfileService.stop).toHaveBeenCalledTimes(1); }); test(`doesn't preboot core services if config validation fails`, async () => { diff --git a/packages/core/root/core-root-server-internal/src/server.ts b/packages/core/root/core-root-server-internal/src/server.ts index b26fcb1dce9bf..1439fa19cb64d 100644 --- a/packages/core/root/core-root-server-internal/src/server.ts +++ b/packages/core/root/core-root-server-internal/src/server.ts @@ -52,6 +52,7 @@ import type { import { DiscoveredPlugins, PluginsService } from '@kbn/core-plugins-server-internal'; import { CoreAppsService } from '@kbn/core-apps-server-internal'; import { SecurityService } from '@kbn/core-security-server-internal'; +import { UserProfileService } from '@kbn/core-user-profile-server-internal'; import { registerServiceConfig } from './register_service_config'; import { MIGRATION_EXCEPTION_CODE } from './constants'; import { coreConfig, type CoreConfigType } from './core_config'; @@ -89,6 +90,7 @@ export class Server { private readonly customBranding: CustomBrandingService; private readonly userSettingsService: UserSettingsService; private readonly security: SecurityService; + private readonly userProfile: UserProfileService; private readonly savedObjectsStartPromise: Promise<SavedObjectsServiceStart>; private resolveSavedObjectsStartPromise?: (value: SavedObjectsServiceStart) => void; @@ -138,6 +140,7 @@ export class Server { this.customBranding = new CustomBrandingService(core); this.userSettingsService = new UserSettingsService(core); this.security = new SecurityService(core); + this.userProfile = new UserProfileService(core); this.savedObjectsStartPromise = new Promise((resolve) => { this.resolveSavedObjectsStartPromise = resolve; @@ -258,6 +261,7 @@ export class Server { const executionContextSetup = this.executionContext.setup(); const docLinksSetup = this.docLinks.setup(); const securitySetup = this.security.setup(); + const userProfileSetup = this.userProfile.setup(); const httpSetup = await this.http.setup({ context: contextServiceSetup, @@ -355,6 +359,7 @@ export class Server { coreUsageData: coreUsageDataSetup, userSettings: userSettingsServiceSetup, security: securitySetup, + userProfile: userProfileSetup, }; const pluginsSetup = await this.plugins.setup(coreSetup); @@ -375,6 +380,7 @@ export class Server { const analyticsStart = this.analytics.start(); const securityStart = this.security.start(); + const userProfileStart = this.userProfile.start(); const executionContextStart = this.executionContext.start(); const docLinkStart = this.docLinks.start(); @@ -435,6 +441,7 @@ export class Server { coreUsageData: coreUsageDataStart, deprecations: deprecationsStart, security: securityStart, + userProfile: userProfileStart, }; await this.plugins.start(this.coreStart); @@ -470,6 +477,7 @@ export class Server { this.node.stop(); this.deprecations.stop(); this.security.stop(); + this.userProfile.stop(); } private registerCoreContext(coreSetup: InternalCoreSetup) { diff --git a/packages/core/root/core-root-server-internal/tsconfig.json b/packages/core/root/core-root-server-internal/tsconfig.json index 6eed4c2e59413..528e1aacc0a93 100644 --- a/packages/core/root/core-root-server-internal/tsconfig.json +++ b/packages/core/root/core-root-server-internal/tsconfig.json @@ -74,6 +74,8 @@ "@kbn/core-security-server-mocks", "@kbn/core-security-server-internal", "@kbn/core-usage-data-server-mocks", + "@kbn/core-user-profile-server-mocks", + "@kbn/core-user-profile-server-internal", ], "exclude": [ "target/**/*", diff --git a/packages/core/security/core-security-browser-internal/src/security_service.test.ts b/packages/core/security/core-security-browser-internal/src/security_service.test.ts index e848742586785..4362a80532ff7 100644 --- a/packages/core/security/core-security-browser-internal/src/security_service.test.ts +++ b/packages/core/security/core-security-browser-internal/src/security_service.test.ts @@ -13,11 +13,11 @@ import { import { loggerMock } from '@kbn/logging-mocks'; import { coreContextMock } from '@kbn/core-base-browser-mocks'; -import type { CoreSecurityContract } from '@kbn/core-security-browser'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; import { SecurityService } from './security_service'; -const createStubInternalContract = (): CoreSecurityContract => { - return Symbol('stubContract') as unknown as CoreSecurityContract; +const createStubInternalContract = (): CoreSecurityDelegateContract => { + return Symbol('stubContract') as unknown as CoreSecurityDelegateContract; }; describe('SecurityService', () => { @@ -33,14 +33,14 @@ describe('SecurityService', () => { }); describe('#setup', () => { - describe('#registerSecurityApi', () => { + describe('#registerSecurityDelegate', () => { it('throws if called more than once', () => { - const { registerSecurityApi } = service.setup(); + const { registerSecurityDelegate } = service.setup(); const contract = createStubInternalContract(); - registerSecurityApi(contract); + registerSecurityDelegate(contract); - expect(() => registerSecurityApi(contract)).toThrowErrorMatchingInlineSnapshot( + expect(() => registerSecurityDelegate(contract)).toThrowErrorMatchingInlineSnapshot( `"security API can only be registered once"` ); }); @@ -62,10 +62,10 @@ describe('SecurityService', () => { }); it('calls convertSecurityApi with the registered API', () => { - const { registerSecurityApi } = service.setup(); + const { registerSecurityDelegate } = service.setup(); const contract = createStubInternalContract(); - registerSecurityApi(contract); + registerSecurityDelegate(contract); service.start(); diff --git a/packages/core/security/core-security-browser-internal/src/security_service.ts b/packages/core/security/core-security-browser-internal/src/security_service.ts index e3981ab9d8499..fa249c8868ed6 100644 --- a/packages/core/security/core-security-browser-internal/src/security_service.ts +++ b/packages/core/security/core-security-browser-internal/src/security_service.ts @@ -8,7 +8,7 @@ import type { Logger } from '@kbn/logging'; import type { CoreContext, CoreService } from '@kbn/core-base-browser-internal'; -import type { CoreSecurityContract } from '@kbn/core-security-browser'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; import type { InternalSecurityServiceSetup, InternalSecurityServiceStart, @@ -19,7 +19,7 @@ export class SecurityService implements CoreService<InternalSecurityServiceSetup, InternalSecurityServiceStart> { private readonly log: Logger; - private securityApi?: CoreSecurityContract; + private securityApi?: CoreSecurityDelegateContract; constructor(coreContext: CoreContext) { this.log = coreContext.logger.get('security-service'); @@ -27,7 +27,7 @@ export class SecurityService public setup(): InternalSecurityServiceSetup { return { - registerSecurityApi: (api) => { + registerSecurityDelegate: (api) => { if (this.securityApi) { throw new Error('security API can only be registered once'); } diff --git a/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.test.ts b/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.test.ts index 11841c5cd25bf..80be695e244e6 100644 --- a/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.test.ts +++ b/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.test.ts @@ -6,12 +6,12 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-browser'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; import { convertSecurityApi } from './convert_security_api'; describe('convertSecurityApi', () => { it('returns the API from the source', () => { - const source: CoreSecurityContract = { authc: { getCurrentUser: jest.fn() } }; + const source: CoreSecurityDelegateContract = { authc: { getCurrentUser: jest.fn() } }; const output = convertSecurityApi(source); expect(output.authc.getCurrentUser).toBe(source.authc.getCurrentUser); }); diff --git a/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.ts b/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.ts index 2b8dfcfb5e849..a916258c1a773 100644 --- a/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.ts +++ b/packages/core/security/core-security-browser-internal/src/utils/convert_security_api.ts @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-browser'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; import type { InternalSecurityServiceStart } from '../internal_contracts'; export const convertSecurityApi = ( - privateApi: CoreSecurityContract + privateApi: CoreSecurityDelegateContract ): InternalSecurityServiceStart => { // shapes are the same for now given we only have one API exposed. return privateApi; diff --git a/packages/core/security/core-security-browser-internal/src/utils/default_implementation.test.ts b/packages/core/security/core-security-browser-internal/src/utils/default_implementation.test.ts index 0ea1a7e158e9b..45416820919dc 100644 --- a/packages/core/security/core-security-browser-internal/src/utils/default_implementation.test.ts +++ b/packages/core/security/core-security-browser-internal/src/utils/default_implementation.test.ts @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-browser'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; import { getDefaultSecurityImplementation } from './default_implementation'; describe('getDefaultSecurityImplementation', () => { - let implementation: CoreSecurityContract; + let implementation: CoreSecurityDelegateContract; beforeEach(() => { implementation = getDefaultSecurityImplementation(); diff --git a/packages/core/security/core-security-browser-internal/src/utils/default_implementation.ts b/packages/core/security/core-security-browser-internal/src/utils/default_implementation.ts index 2d55d05a1ce9f..636be1c2eb618 100644 --- a/packages/core/security/core-security-browser-internal/src/utils/default_implementation.ts +++ b/packages/core/security/core-security-browser-internal/src/utils/default_implementation.ts @@ -6,9 +6,9 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-browser'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; -export const getDefaultSecurityImplementation = (): CoreSecurityContract => { +export const getDefaultSecurityImplementation = (): CoreSecurityDelegateContract => { return { authc: { getCurrentUser: () => { diff --git a/packages/core/security/core-security-browser-mocks/src/security_service.mock.ts b/packages/core/security/core-security-browser-mocks/src/security_service.mock.ts index 46cf384f35816..9fea0a6808170 100644 --- a/packages/core/security/core-security-browser-mocks/src/security_service.mock.ts +++ b/packages/core/security/core-security-browser-mocks/src/security_service.mock.ts @@ -14,7 +14,7 @@ import type { const createSetupMock = () => { const mock: jest.Mocked<SecurityServiceSetup> = { - registerSecurityApi: jest.fn(), + registerSecurityDelegate: jest.fn(), }; return mock; @@ -32,7 +32,7 @@ const createStartMock = () => { const createInternalSetupMock = () => { const mock: jest.Mocked<InternalSecurityServiceSetup> = { - registerSecurityApi: jest.fn(), + registerSecurityDelegate: jest.fn(), }; return mock; diff --git a/packages/core/security/core-security-browser/index.ts b/packages/core/security/core-security-browser/index.ts index be698afdb1bd9..531e84dbd84d3 100644 --- a/packages/core/security/core-security-browser/index.ts +++ b/packages/core/security/core-security-browser/index.ts @@ -8,4 +8,7 @@ export type { SecurityServiceSetup, SecurityServiceStart } from './src/contracts'; export type { CoreAuthenticationService } from './src/authc'; -export type { CoreSecurityContract, AuthenticationServiceContract } from './src/api_provider'; +export type { + CoreSecurityDelegateContract, + AuthenticationServiceContract, +} from './src/api_provider'; diff --git a/packages/core/security/core-security-browser/src/api_provider.ts b/packages/core/security/core-security-browser/src/api_provider.ts index 846c9295e1c6d..2bcd9bd9b2b97 100644 --- a/packages/core/security/core-security-browser/src/api_provider.ts +++ b/packages/core/security/core-security-browser/src/api_provider.ts @@ -14,7 +14,7 @@ import type { CoreAuthenticationService } from './authc'; * * @public */ -export interface CoreSecurityContract { +export interface CoreSecurityDelegateContract { authc: AuthenticationServiceContract; } diff --git a/packages/core/security/core-security-browser/src/contracts.ts b/packages/core/security/core-security-browser/src/contracts.ts index b5dfa1b45ec72..8c75b352c5556 100644 --- a/packages/core/security/core-security-browser/src/contracts.ts +++ b/packages/core/security/core-security-browser/src/contracts.ts @@ -7,7 +7,7 @@ */ import type { CoreAuthenticationService } from './authc'; -import type { CoreSecurityContract } from './api_provider'; +import type { CoreSecurityDelegateContract } from './api_provider'; /** * Setup contract for Core's security service. @@ -20,7 +20,7 @@ export interface SecurityServiceSetup { * * @remark this should **exclusively** be used by the security plugin. */ - registerSecurityApi(api: CoreSecurityContract): void; + registerSecurityDelegate(api: CoreSecurityDelegateContract): void; } /** diff --git a/packages/core/security/core-security-server-internal/src/security_service.test.ts b/packages/core/security/core-security-server-internal/src/security_service.test.ts index 4448f4840136b..4f5ae5e86cbab 100644 --- a/packages/core/security/core-security-server-internal/src/security_service.test.ts +++ b/packages/core/security/core-security-server-internal/src/security_service.test.ts @@ -13,11 +13,11 @@ import { import { loggerMock, MockedLogger } from '@kbn/logging-mocks'; import { mockCoreContext } from '@kbn/core-base-server-mocks'; -import type { CoreSecurityContract } from '@kbn/core-security-server'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; import { SecurityService } from './security_service'; -const createStubInternalContract = (): CoreSecurityContract => { - return Symbol('stubContract') as unknown as CoreSecurityContract; +const createStubInternalContract = (): CoreSecurityDelegateContract => { + return Symbol('stubContract') as unknown as CoreSecurityDelegateContract; }; describe('SecurityService', () => { @@ -33,14 +33,14 @@ describe('SecurityService', () => { }); describe('#setup', () => { - describe('#registerSecurityApi', () => { + describe('#registerSecurityDelegate', () => { it('throws if called more than once', () => { - const { registerSecurityApi } = service.setup(); + const { registerSecurityDelegate } = service.setup(); const contract = createStubInternalContract(); - registerSecurityApi(contract); + registerSecurityDelegate(contract); - expect(() => registerSecurityApi(contract)).toThrowErrorMatchingInlineSnapshot( + expect(() => registerSecurityDelegate(contract)).toThrowErrorMatchingInlineSnapshot( `"security API can only be registered once"` ); }); @@ -62,10 +62,10 @@ describe('SecurityService', () => { }); it('calls convertSecurityApi with the registered API', () => { - const { registerSecurityApi } = service.setup(); + const { registerSecurityDelegate } = service.setup(); const contract = createStubInternalContract(); - registerSecurityApi(contract); + registerSecurityDelegate(contract); service.start(); diff --git a/packages/core/security/core-security-server-internal/src/security_service.ts b/packages/core/security/core-security-server-internal/src/security_service.ts index eb9830b6b98e1..826019f773b93 100644 --- a/packages/core/security/core-security-server-internal/src/security_service.ts +++ b/packages/core/security/core-security-server-internal/src/security_service.ts @@ -8,7 +8,7 @@ import type { Logger } from '@kbn/logging'; import type { CoreContext, CoreService } from '@kbn/core-base-server-internal'; -import type { CoreSecurityContract } from '@kbn/core-security-server'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; import type { InternalSecurityServiceSetup, InternalSecurityServiceStart, @@ -19,7 +19,7 @@ export class SecurityService implements CoreService<InternalSecurityServiceSetup, InternalSecurityServiceStart> { private readonly log: Logger; - private securityApi?: CoreSecurityContract; + private securityApi?: CoreSecurityDelegateContract; constructor(coreContext: CoreContext) { this.log = coreContext.logger.get('security-service'); @@ -27,7 +27,7 @@ export class SecurityService public setup(): InternalSecurityServiceSetup { return { - registerSecurityApi: (api) => { + registerSecurityDelegate: (api) => { if (this.securityApi) { throw new Error('security API can only be registered once'); } diff --git a/packages/core/security/core-security-server-internal/src/utils/convert_security_api.test.ts b/packages/core/security/core-security-server-internal/src/utils/convert_security_api.test.ts index 19ec68cc5cba6..6fe51b6873862 100644 --- a/packages/core/security/core-security-server-internal/src/utils/convert_security_api.test.ts +++ b/packages/core/security/core-security-server-internal/src/utils/convert_security_api.test.ts @@ -6,12 +6,12 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-server'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; import { convertSecurityApi } from './convert_security_api'; describe('convertSecurityApi', () => { it('returns the API from the source', () => { - const source: CoreSecurityContract = { authc: { getCurrentUser: jest.fn() } }; + const source: CoreSecurityDelegateContract = { authc: { getCurrentUser: jest.fn() } }; const output = convertSecurityApi(source); expect(output.authc.getCurrentUser).toBe(source.authc.getCurrentUser); }); diff --git a/packages/core/security/core-security-server-internal/src/utils/convert_security_api.ts b/packages/core/security/core-security-server-internal/src/utils/convert_security_api.ts index 2d8e985d4b523..31056bf337ff9 100644 --- a/packages/core/security/core-security-server-internal/src/utils/convert_security_api.ts +++ b/packages/core/security/core-security-server-internal/src/utils/convert_security_api.ts @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-server'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; import type { InternalSecurityServiceStart } from '../internal_contracts'; export const convertSecurityApi = ( - privateApi: CoreSecurityContract + privateApi: CoreSecurityDelegateContract ): InternalSecurityServiceStart => { // shapes are the same for now given we only have one API exposed. return privateApi; diff --git a/packages/core/security/core-security-server-internal/src/utils/default_implementation.test.ts b/packages/core/security/core-security-server-internal/src/utils/default_implementation.test.ts index 06a48ef34ab9d..17393d5994bf1 100644 --- a/packages/core/security/core-security-server-internal/src/utils/default_implementation.test.ts +++ b/packages/core/security/core-security-server-internal/src/utils/default_implementation.test.ts @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-server'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; import { getDefaultSecurityImplementation } from './default_implementation'; describe('getDefaultSecurityImplementation', () => { - let implementation: CoreSecurityContract; + let implementation: CoreSecurityDelegateContract; beforeEach(() => { implementation = getDefaultSecurityImplementation(); diff --git a/packages/core/security/core-security-server-internal/src/utils/default_implementation.ts b/packages/core/security/core-security-server-internal/src/utils/default_implementation.ts index ebf19119989c1..bd4ce287fd498 100644 --- a/packages/core/security/core-security-server-internal/src/utils/default_implementation.ts +++ b/packages/core/security/core-security-server-internal/src/utils/default_implementation.ts @@ -6,9 +6,9 @@ * Side Public License, v 1. */ -import type { CoreSecurityContract } from '@kbn/core-security-server'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; -export const getDefaultSecurityImplementation = (): CoreSecurityContract => { +export const getDefaultSecurityImplementation = (): CoreSecurityDelegateContract => { return { authc: { getCurrentUser: () => null, diff --git a/packages/core/security/core-security-server-mocks/src/security_service.mock.ts b/packages/core/security/core-security-server-mocks/src/security_service.mock.ts index 54dd9718471c3..99f86c84461f3 100644 --- a/packages/core/security/core-security-server-mocks/src/security_service.mock.ts +++ b/packages/core/security/core-security-server-mocks/src/security_service.mock.ts @@ -18,7 +18,7 @@ import type { const createSetupMock = () => { const mock: jest.Mocked<SecurityServiceSetup> = { - registerSecurityApi: jest.fn(), + registerSecurityDelegate: jest.fn(), }; return mock; @@ -36,7 +36,7 @@ const createStartMock = () => { const createInternalSetupMock = () => { const mock: jest.Mocked<InternalSecurityServiceSetup> = { - registerSecurityApi: jest.fn(), + registerSecurityDelegate: jest.fn(), }; return mock; diff --git a/packages/core/security/core-security-server/index.ts b/packages/core/security/core-security-server/index.ts index e9507cfee04f4..c8dd3efda695c 100644 --- a/packages/core/security/core-security-server/index.ts +++ b/packages/core/security/core-security-server/index.ts @@ -8,7 +8,10 @@ export type { SecurityServiceSetup, SecurityServiceStart } from './src/contracts'; export type { CoreAuthenticationService } from './src/authc'; -export type { CoreSecurityContract, AuthenticationServiceContract } from './src/api_provider'; +export type { + CoreSecurityDelegateContract, + AuthenticationServiceContract, +} from './src/api_provider'; export type { SecurityRequestHandlerContext, AuthcRequestHandlerContext, diff --git a/packages/core/security/core-security-server/src/api_provider.ts b/packages/core/security/core-security-server/src/api_provider.ts index 846c9295e1c6d..2bcd9bd9b2b97 100644 --- a/packages/core/security/core-security-server/src/api_provider.ts +++ b/packages/core/security/core-security-server/src/api_provider.ts @@ -14,7 +14,7 @@ import type { CoreAuthenticationService } from './authc'; * * @public */ -export interface CoreSecurityContract { +export interface CoreSecurityDelegateContract { authc: AuthenticationServiceContract; } diff --git a/packages/core/security/core-security-server/src/contracts.ts b/packages/core/security/core-security-server/src/contracts.ts index b5dfa1b45ec72..8c75b352c5556 100644 --- a/packages/core/security/core-security-server/src/contracts.ts +++ b/packages/core/security/core-security-server/src/contracts.ts @@ -7,7 +7,7 @@ */ import type { CoreAuthenticationService } from './authc'; -import type { CoreSecurityContract } from './api_provider'; +import type { CoreSecurityDelegateContract } from './api_provider'; /** * Setup contract for Core's security service. @@ -20,7 +20,7 @@ export interface SecurityServiceSetup { * * @remark this should **exclusively** be used by the security plugin. */ - registerSecurityApi(api: CoreSecurityContract): void; + registerSecurityDelegate(api: CoreSecurityDelegateContract): void; } /** diff --git a/packages/core/user-profile/core-user-profile-browser-internal/README.md b/packages/core/user-profile/core-user-profile-browser-internal/README.md new file mode 100644 index 0000000000000..51f91f0a7c38f --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/README.md @@ -0,0 +1,3 @@ +# @kbn/core-user-profile-browser-internal + +This package contains the internal types and implementation for Core's browser-side `userProfile` service. diff --git a/packages/core/user-profile/core-user-profile-browser-internal/index.ts b/packages/core/user-profile/core-user-profile-browser-internal/index.ts new file mode 100644 index 0000000000000..f4c8a9ff31eec --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/index.ts @@ -0,0 +1,12 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +export { UserProfileService } from './src/user_profile_service'; +export type { + InternalUserProfileServiceSetup, + InternalUserProfileServiceStart, +} from './src/internal_contracts'; diff --git a/packages/core/user-profile/core-user-profile-browser-internal/jest.config.js b/packages/core/user-profile/core-user-profile-browser-internal/jest.config.js new file mode 100644 index 0000000000000..599ca1dfee688 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['<rootDir>/packages/core/user-profile/core-user-profile-browser-internal'], +}; diff --git a/packages/core/user-profile/core-user-profile-browser-internal/kibana.jsonc b/packages/core/user-profile/core-user-profile-browser-internal/kibana.jsonc new file mode 100644 index 0000000000000..00e00c831988e --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-user-profile-browser-internal", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/user-profile/core-user-profile-browser-internal/package.json b/packages/core/user-profile/core-user-profile-browser-internal/package.json new file mode 100644 index 0000000000000..71325aba3a547 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/core-user-profile-browser-internal", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/internal_contracts.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/internal_contracts.ts new file mode 100644 index 0000000000000..3b2bca4c39b55 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/internal_contracts.ts @@ -0,0 +1,15 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { + UserProfileServiceSetup, + UserProfileServiceStart, +} from '@kbn/core-user-profile-browser'; + +export type InternalUserProfileServiceSetup = UserProfileServiceSetup; +export type InternalUserProfileServiceStart = UserProfileServiceStart; diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.mocks.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.mocks.ts new file mode 100644 index 0000000000000..81c954d2f0869 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.mocks.ts @@ -0,0 +1,19 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const getDefaultUserProfileImplementationMock = jest.fn(); +export const convertUserProfileAPIMock = jest.fn(); + +jest.doMock('./utils', () => { + const actual = jest.requireActual('./utils'); + return { + ...actual, + getDefaultUserProfileImplementation: getDefaultUserProfileImplementationMock, + convertUserProfileAPI: convertUserProfileAPIMock, + }; +}); diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.ts new file mode 100644 index 0000000000000..ec89fa1a7fb02 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.test.ts @@ -0,0 +1,97 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + convertUserProfileAPIMock, + getDefaultUserProfileImplementationMock, +} from './user_profile_service.test.mocks'; + +import { loggerMock, MockedLogger } from '@kbn/logging-mocks'; +import { mockCoreContext } from '@kbn/core-base-server-mocks'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import { UserProfileService } from './user_profile_service'; + +const createStubContract = (): CoreUserProfileDelegateContract => { + return Symbol('stubContract') as unknown as CoreUserProfileDelegateContract; +}; + +describe('UserProfileService', () => { + let coreContext: ReturnType<typeof mockCoreContext.create>; + let service: UserProfileService; + + beforeEach(() => { + coreContext = mockCoreContext.create(); + service = new UserProfileService(coreContext); + + convertUserProfileAPIMock.mockReset(); + getDefaultUserProfileImplementationMock.mockReset(); + }); + + describe('#setup', () => { + describe('#registerUserProfileDelegate', () => { + it('throws if called more than once', () => { + const { registerUserProfileDelegate } = service.setup(); + + const contract = createStubContract(); + registerUserProfileDelegate(contract); + + expect(() => registerUserProfileDelegate(contract)).toThrowErrorMatchingInlineSnapshot( + `"userProfile API can only be registered once"` + ); + }); + }); + }); + + describe('#start', () => { + it('logs a warning if the userProfile API was not registered', () => { + service.setup(); + service.start(); + + expect(loggerMock.collect(coreContext.logger as MockedLogger).warn).toMatchInlineSnapshot(` + Array [ + Array [ + "userProfile API was not registered, using default implementation", + ], + ] + `); + }); + + it('calls convertUserProfileAPI with the registered API', () => { + const { registerUserProfileDelegate } = service.setup(); + + const contract = createStubContract(); + registerUserProfileDelegate(contract); + + service.start(); + + expect(convertUserProfileAPIMock).toHaveBeenCalledTimes(1); + expect(convertUserProfileAPIMock).toHaveBeenCalledWith(contract); + }); + + it('calls convertUserProfileAPI with the default implementation when no API was registered', () => { + const contract = createStubContract(); + getDefaultUserProfileImplementationMock.mockReturnValue(contract); + + service.setup(); + service.start(); + + expect(convertUserProfileAPIMock).toHaveBeenCalledTimes(1); + expect(convertUserProfileAPIMock).toHaveBeenCalledWith(contract); + }); + + it('returns the result of convertUserProfileAPI as contract', () => { + const convertedContract = { stub: true }; + convertUserProfileAPIMock.mockReturnValue(convertedContract); + + service.setup(); + const startContract = service.start(); + + expect(startContract).toEqual(convertedContract); + }); + }); +}); diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts new file mode 100644 index 0000000000000..92dc01d92f603 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Logger } from '@kbn/logging'; +import type { CoreContext, CoreService } from '@kbn/core-base-browser-internal'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import type { + InternalUserProfileServiceSetup, + InternalUserProfileServiceStart, +} from './internal_contracts'; +import { getDefaultUserProfileImplementation, convertUserProfileAPI } from './utils'; + +export class UserProfileService + implements CoreService<InternalUserProfileServiceSetup, InternalUserProfileServiceStart> +{ + private readonly log: Logger; + private delegate?: CoreUserProfileDelegateContract; + + constructor(coreContext: CoreContext) { + this.log = coreContext.logger.get('user-profile-service'); + } + + public setup(): InternalUserProfileServiceSetup { + return { + registerUserProfileDelegate: (delegate) => { + if (this.delegate) { + throw new Error('userProfile API can only be registered once'); + } + this.delegate = delegate; + }, + }; + } + + public start(): InternalUserProfileServiceStart { + if (!this.delegate) { + this.log.warn('userProfile API was not registered, using default implementation'); + } + const apiContract = this.delegate ?? getDefaultUserProfileImplementation(); + return convertUserProfileAPI(apiContract); + } + + public stop() {} +} diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.test.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.test.ts new file mode 100644 index 0000000000000..123e1357bdcc4 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.test.ts @@ -0,0 +1,76 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { of } from 'rxjs'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import type { InternalUserProfileServiceStart } from '../internal_contracts'; +import { convertUserProfileAPI } from './convert_api'; + +describe('convertUserProfileAPI', () => { + let source: jest.Mocked<CoreUserProfileDelegateContract>; + let output: InternalUserProfileServiceStart; + + beforeEach(() => { + source = { + userProfile$: of(null), + getCurrent: jest.fn(), + bulkGet: jest.fn(), + suggest: jest.fn(), + update: jest.fn(), + partialUpdate: jest.fn(), + }; + output = convertUserProfileAPI(source); + }); + + describe('getUserProfile$', () => { + it('returns the observable from the source', () => { + expect(output.getUserProfile$()).toBe(source.userProfile$); + }); + }); + + describe('getCurrent', () => { + it('calls the API from the source with the correct parameters', () => { + output.getCurrent(); + expect(source.getCurrent).toHaveBeenCalledTimes(1); + expect(source.getCurrent).toHaveBeenCalledWith(); + }); + }); + + describe('bulkGet', () => { + it('calls the API from the source with the correct parameters', () => { + const params = { uids: new Set<string>(['fake-uid-1', 'fake-uid-2', 'fake-uid-3']) }; + output.bulkGet(params); + expect(source.bulkGet).toHaveBeenCalledTimes(1); + expect(source.bulkGet).toHaveBeenCalledWith(params); + }); + }); + + describe('suggest', () => { + it('calls the API from the source with the correct parameters', () => { + output.suggest('path', { name: 'foo' }); + expect(source.suggest).toHaveBeenCalledTimes(1); + expect(source.suggest).toHaveBeenCalledWith('path', { name: 'foo' }); + }); + }); + + describe('update', () => { + it('calls the API from the source with the correct parameters', () => { + output.update({ foo: 'dolly' }); + expect(source.update).toHaveBeenCalledTimes(1); + expect(source.update).toHaveBeenCalledWith({ foo: 'dolly' }); + }); + }); + + describe('partialUpdate', () => { + it('calls the API from the source with the correct parameters', () => { + output.partialUpdate({ foo: 'dolly' }); + expect(source.partialUpdate).toHaveBeenCalledTimes(1); + expect(source.partialUpdate).toHaveBeenCalledWith({ foo: 'dolly' }); + }); + }); +}); diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.ts new file mode 100644 index 0000000000000..0ef054683bf17 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/convert_api.ts @@ -0,0 +1,23 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import type { InternalUserProfileServiceStart } from '../internal_contracts'; + +export const convertUserProfileAPI = ( + delegate: CoreUserProfileDelegateContract +): InternalUserProfileServiceStart => { + return { + getUserProfile$: () => delegate.userProfile$, + getCurrent: delegate.getCurrent.bind(delegate), + bulkGet: delegate.bulkGet.bind(delegate), + suggest: delegate.suggest.bind(delegate), + update: delegate.update.bind(delegate), + partialUpdate: delegate.partialUpdate.bind(delegate), + }; +}; diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.test.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.test.ts new file mode 100644 index 0000000000000..717fb3e24ef3d --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.test.ts @@ -0,0 +1,34 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import { getDefaultUserProfileImplementation } from './default_implementation'; + +describe('getDefaultUserProfileImplementation', () => { + let implementation: CoreUserProfileDelegateContract; + + beforeEach(() => { + implementation = getDefaultUserProfileImplementation(); + }); + + it('getCurrent resolves to null', async () => { + expect(await implementation.getCurrent({ dataPath: '/data-path' })).toBeNull(); + }); + it('bulkGet resolves to empty list', async () => { + expect(await implementation.bulkGet({ uids: new Set() })).toEqual([]); + }); + it('suggest resolves to empty list', async () => { + expect(await implementation.suggest('/suggest', { name: 'foo' })).toEqual([]); + }); + it('update resolves to undefined', async () => { + expect(await implementation.update({})).toBeUndefined(); + }); + it('partialUpdate resolves to undefined', async () => { + expect(await implementation.update({})).toBeUndefined(); + }); +}); diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.ts new file mode 100644 index 0000000000000..c4bcfa1f29b48 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/default_implementation.ts @@ -0,0 +1,26 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { of } from 'rxjs'; +import type { + CoreUserProfileDelegateContract, + GetUserProfileResponse, +} from '@kbn/core-user-profile-browser'; +import { UserProfileData } from '@kbn/core-user-profile-common'; + +export const getDefaultUserProfileImplementation = (): CoreUserProfileDelegateContract => { + return { + userProfile$: of(null), + getCurrent: <D extends UserProfileData>() => + Promise.resolve(null as unknown as GetUserProfileResponse<D>), + bulkGet: () => Promise.resolve([]), + suggest: () => Promise.resolve([]), + update: () => Promise.resolve(), + partialUpdate: () => Promise.resolve(), + }; +}; diff --git a/packages/core/user-profile/core-user-profile-browser-internal/src/utils/index.ts b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/index.ts new file mode 100644 index 0000000000000..e7e39fbf3e6f7 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/src/utils/index.ts @@ -0,0 +1,10 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { convertUserProfileAPI } from './convert_api'; +export { getDefaultUserProfileImplementation } from './default_implementation'; diff --git a/packages/core/user-profile/core-user-profile-browser-internal/tsconfig.json b/packages/core/user-profile/core-user-profile-browser-internal/tsconfig.json new file mode 100644 index 0000000000000..ab75fcaab6575 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-internal/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core-user-profile-browser", + "@kbn/logging-mocks", + "@kbn/core-base-server-mocks", + "@kbn/logging", + "@kbn/core-base-browser-internal", + "@kbn/core-user-profile-common", + ] +} diff --git a/packages/core/user-profile/core-user-profile-browser-mocks/README.md b/packages/core/user-profile/core-user-profile-browser-mocks/README.md new file mode 100644 index 0000000000000..fde320e84e63d --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-mocks/README.md @@ -0,0 +1,3 @@ +# @kbn/core-user-profile-browser-mocks + +This package contains mocks types for Core's browser-side `userProfile` service. diff --git a/packages/core/user-profile/core-user-profile-browser-mocks/index.ts b/packages/core/user-profile/core-user-profile-browser-mocks/index.ts new file mode 100644 index 0000000000000..b114ce1d93d2a --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-mocks/index.ts @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { userProfileServiceMock } from './src/user_profile_service.mock'; diff --git a/packages/core/user-profile/core-user-profile-browser-mocks/jest.config.js b/packages/core/user-profile/core-user-profile-browser-mocks/jest.config.js new file mode 100644 index 0000000000000..62a2799bab8b4 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-mocks/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['<rootDir>/packages/core/user-profile/core-user-profile-browser-mocks'], +}; diff --git a/packages/core/user-profile/core-user-profile-browser-mocks/kibana.jsonc b/packages/core/user-profile/core-user-profile-browser-mocks/kibana.jsonc new file mode 100644 index 0000000000000..49e11fd3d169d --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-mocks/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-user-profile-browser-mocks", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/user-profile/core-user-profile-browser-mocks/package.json b/packages/core/user-profile/core-user-profile-browser-mocks/package.json new file mode 100644 index 0000000000000..3fb503ad8c242 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-mocks/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/core-user-profile-browser-mocks", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts b/packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts new file mode 100644 index 0000000000000..c43dfa6b915c7 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts @@ -0,0 +1,76 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { + UserProfileServiceSetup, + UserProfileServiceStart, +} from '@kbn/core-user-profile-browser'; +import type { + InternalUserProfileServiceSetup, + InternalUserProfileServiceStart, +} from '@kbn/core-user-profile-browser-internal'; + +const createSetupMock = () => { + const mock: jest.Mocked<UserProfileServiceSetup> = { + registerUserProfileDelegate: jest.fn(), + }; + + return mock; +}; + +const createStartMock = () => { + const mock: jest.Mocked<UserProfileServiceStart> = { + getUserProfile$: jest.fn(), + getCurrent: jest.fn(), + bulkGet: jest.fn(), + suggest: jest.fn(), + update: jest.fn(), + partialUpdate: jest.fn(), + }; + + return mock; +}; + +const createInternalSetupMock = () => { + const mock: jest.Mocked<InternalUserProfileServiceSetup> = { + registerUserProfileDelegate: jest.fn(), + }; + + return mock; +}; + +const createInternalStartMock = () => { + const mock: jest.Mocked<InternalUserProfileServiceStart> = { + getUserProfile$: jest.fn(), + getCurrent: jest.fn(), + bulkGet: jest.fn(), + suggest: jest.fn(), + update: jest.fn(), + partialUpdate: jest.fn(), + }; + + return mock; +}; + +const createServiceMock = () => { + const mock = { + setup: jest.fn().mockReturnValue(createSetupMock()), + start: jest.fn().mockReturnValue(createStartMock()), + stop: jest.fn(), + }; + + return mock; +}; + +export const userProfileServiceMock = { + create: createServiceMock, + createSetup: createSetupMock, + createStart: createStartMock, + createInternalSetup: createInternalSetupMock, + createInternalStart: createInternalStartMock, +}; diff --git a/packages/core/user-profile/core-user-profile-browser-mocks/tsconfig.json b/packages/core/user-profile/core-user-profile-browser-mocks/tsconfig.json new file mode 100644 index 0000000000000..b4f4683993884 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser-mocks/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core-user-profile-browser", + "@kbn/core-user-profile-browser-internal", + ] +} diff --git a/packages/core/user-profile/core-user-profile-browser/README.md b/packages/core/user-profile/core-user-profile-browser/README.md new file mode 100644 index 0000000000000..fc68cd364872d --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/README.md @@ -0,0 +1,3 @@ +# @kbn/core-user-profile-browser + +This package contains the public types for Core's browser-side `userProfile` service. diff --git a/packages/core/user-profile/core-user-profile-browser/index.ts b/packages/core/user-profile/core-user-profile-browser/index.ts new file mode 100644 index 0000000000000..d98d1fa1437c2 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/index.ts @@ -0,0 +1,17 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { UserProfileServiceSetup, UserProfileServiceStart } from './src/contracts'; +export type { CoreUserProfileDelegateContract } from './src/api_provider'; +export type { + UserProfileService, + UserProfileSuggestParams, + UserProfileBulkGetParams, + GetUserProfileResponse, + UserProfileGetCurrentParams, +} from './src/service'; diff --git a/packages/core/user-profile/core-user-profile-browser/jest.config.js b/packages/core/user-profile/core-user-profile-browser/jest.config.js new file mode 100644 index 0000000000000..4fac3199bb1f3 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['<rootDir>/packages/core/user-profile/core-user-profile-browser'], +}; diff --git a/packages/core/user-profile/core-user-profile-browser/kibana.jsonc b/packages/core/user-profile/core-user-profile-browser/kibana.jsonc new file mode 100644 index 0000000000000..376ee21cdb901 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-user-profile-browser", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/user-profile/core-user-profile-browser/package.json b/packages/core/user-profile/core-user-profile-browser/package.json new file mode 100644 index 0000000000000..7598349094a73 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/core-user-profile-browser", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/user-profile/core-user-profile-browser/src/api_provider.ts b/packages/core/user-profile/core-user-profile-browser/src/api_provider.ts new file mode 100644 index 0000000000000..6e21886009063 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/src/api_provider.ts @@ -0,0 +1,14 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import type { Observable } from 'rxjs'; +import type { UserProfileData } from '@kbn/core-user-profile-common'; +import type { UserProfileService } from './service'; + +export type CoreUserProfileDelegateContract = Omit<UserProfileService, 'getUserProfile$'> & { + userProfile$: Observable<UserProfileData | null>; +}; diff --git a/packages/core/user-profile/core-user-profile-browser/src/contracts.ts b/packages/core/user-profile/core-user-profile-browser/src/contracts.ts new file mode 100644 index 0000000000000..dc7b50e9cd171 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/src/contracts.ts @@ -0,0 +1,31 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { UserProfileService } from './service'; +import type { CoreUserProfileDelegateContract } from './api_provider'; + +/** + * Setup contract for Core's userProfile service. + * + * @public + */ +export interface UserProfileServiceSetup { + /** + * Register the userProfile implementation that will be used and re-exposed by Core. + * + * @remark this should **exclusively** be used by the security plugin. + */ + registerUserProfileDelegate(delegate: CoreUserProfileDelegateContract): void; +} + +/** + * Start contract for Core's userProfile service. + * + * @public + */ +export type UserProfileServiceStart = UserProfileService; diff --git a/packages/core/user-profile/core-user-profile-browser/src/service.ts b/packages/core/user-profile/core-user-profile-browser/src/service.ts new file mode 100644 index 0000000000000..98db65991c9ef --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/src/service.ts @@ -0,0 +1,135 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Observable } from 'rxjs'; +import type { AuthenticatedUser } from '@kbn/core-security-common'; +import type { + UserProfileData, + UserProfileWithSecurity, + UserProfile, +} from '@kbn/core-user-profile-common'; + +export interface UserProfileService { + /** + * Retrieve an observable emitting when the user profile is loaded. + */ + getUserProfile$(): Observable<UserProfileData | null>; + + /** + * Retrieves the user profile of the current user. If the profile isn't available, e.g. for the anonymous users or + * users authenticated via authenticating proxies, the `null` value is returned. + * @param [params] Get current user profile operation parameters. + * @param params.dataPath By default `getCurrent()` returns user information, but does not return any user data. The + * optional "dataPath" parameter can be used to return personal data for this user (within `kibana` namespace only). + */ + getCurrent<D extends UserProfileData>( + params?: UserProfileGetCurrentParams + ): Promise<GetUserProfileResponse<D>>; + + /** + * Retrieves multiple user profiles by their identifiers. + * @param params Bulk get operation parameters. + * @param params.uids List of user profile identifiers. + * @param params.dataPath By default Elasticsearch returns user information, but does not return any user data. The + * optional "dataPath" parameter can be used to return personal data for the requested user + * profiles (within `kibana` namespace only). + */ + bulkGet<D extends UserProfileData>( + params: UserProfileBulkGetParams + ): Promise<Array<UserProfile<D>>>; + + /** + * Suggests multiple user profiles by search criteria. + * + * Note: This endpoint is not provided out-of-the-box by the platform. You need to expose your own + * version within your app. An example of how to do this can be found in: + * `examples/user_profile_examples/server/plugin.ts` + * + * @param path Path to your app's suggest endpoint. + * @param params Suggest operation parameters. + * @param params.name Query string used to match name-related fields in user profiles. The + * following fields are treated as name-related: username, full_name and email. + * @param params.size Desired number of suggestions to return. The default value is 10. + * @param params.dataPath By default, suggest API returns user information, but does not return + * any user data. The optional "dataPath" parameter can be used to return personal data for this + * user (within `kibana` namespace only). + */ + suggest<D extends UserProfileData>( + path: string, + params: UserProfileSuggestParams + ): Promise<Array<UserProfile<D>>>; + + /** + * Updates user profile data of the current user. + * @param data Application data to be written (merged with existing data). + */ + update<D extends UserProfileData>(data: D): Promise<void>; + + /** + * Partially updates user profile data of the current user, merging the previous data with the provided data. + * @param data Application data to be merged with existing data. + */ + partialUpdate<D extends Partial<UserProfileData>>(data: D): Promise<void>; +} + +/** + * Parameters for the get user profile for the current user API. + */ +export interface UserProfileGetCurrentParams { + /** + * By default, get API returns user information, but does not return any user data. The optional "dataPath" + * parameter can be used to return personal data for this user (within `kibana` namespace only). + */ + dataPath: string; +} + +export interface GetUserProfileResponse<D extends UserProfileData = UserProfileData> + extends UserProfileWithSecurity<D> { + /** + * Information about the currently authenticated user that owns the profile. + */ + user: UserProfileWithSecurity['user'] & Pick<AuthenticatedUser, 'authentication_provider'>; +} + +/** + * Parameters for the bulk get API. + */ +export interface UserProfileBulkGetParams { + /** + * List of user profile identifiers. + */ + uids: Set<string>; + + /** + * By default, suggest API returns user information, but does not return any user data. The optional "dataPath" + * parameter can be used to return personal data for this user (within `kibana` namespace only). + */ + dataPath?: string; +} + +/** + * Parameters for the suggest API. + */ +export interface UserProfileSuggestParams { + /** + * Query string used to match name-related fields in user profiles. The following fields are treated as + * name-related: username, full_name and email. + */ + name: string; + + /** + * Desired number of suggestions to return. The default value is 10. + */ + size?: number; + + /** + * By default, suggest API returns user information, but does not return any user data. The optional "dataPath" + * parameter can be used to return personal data for this user (within `kibana` namespace only). + */ + dataPath?: string; +} diff --git a/packages/core/user-profile/core-user-profile-browser/tsconfig.json b/packages/core/user-profile/core-user-profile-browser/tsconfig.json new file mode 100644 index 0000000000000..47b7d8c2017fe --- /dev/null +++ b/packages/core/user-profile/core-user-profile-browser/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core-user-profile-common", + "@kbn/core-security-common", + ] +} diff --git a/packages/core/user-profile/core-user-profile-common/README.md b/packages/core/user-profile/core-user-profile-common/README.md new file mode 100644 index 0000000000000..c3d7a6784bf70 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-common/README.md @@ -0,0 +1,3 @@ +# @kbn/core-user-profile-common + +This package contains the common public types for Core's `userProfile` domain. diff --git a/packages/core/user-profile/core-user-profile-common/index.ts b/packages/core/user-profile/core-user-profile-common/index.ts new file mode 100644 index 0000000000000..89341d28c117c --- /dev/null +++ b/packages/core/user-profile/core-user-profile-common/index.ts @@ -0,0 +1,16 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { + UserProfileData, + UserProfileLabels, + UserProfileWithSecurity, + UserProfile, + UserProfileUserInfoWithSecurity, + UserProfileUserInfo, +} from './src/user_profile'; diff --git a/packages/core/user-profile/core-user-profile-common/jest.config.js b/packages/core/user-profile/core-user-profile-common/jest.config.js new file mode 100644 index 0000000000000..1911410ec00a4 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-common/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['<rootDir>/packages/core/user-profile/core-user-profile-common'], +}; diff --git a/packages/core/user-profile/core-user-profile-common/kibana.jsonc b/packages/core/user-profile/core-user-profile-common/kibana.jsonc new file mode 100644 index 0000000000000..1cc049fd41717 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-common/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-user-profile-common", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/user-profile/core-user-profile-common/package.json b/packages/core/user-profile/core-user-profile-common/package.json new file mode 100644 index 0000000000000..fcc5b79e1256b --- /dev/null +++ b/packages/core/user-profile/core-user-profile-common/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/core-user-profile-common", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts b/packages/core/user-profile/core-user-profile-common/src/user_profile.ts similarity index 92% rename from x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts rename to packages/core/user-profile/core-user-profile-common/src/user_profile.ts index 13743974afea1..91e7b82217cba 100644 --- a/x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts +++ b/packages/core/user-profile/core-user-profile-common/src/user_profile.ts @@ -1,8 +1,9 @@ /* * 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. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ /** diff --git a/packages/core/user-profile/core-user-profile-common/tsconfig.json b/packages/core/user-profile/core-user-profile-common/tsconfig.json new file mode 100644 index 0000000000000..b05325b824a67 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-common/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [] +} diff --git a/packages/core/user-profile/core-user-profile-server-internal/README.md b/packages/core/user-profile/core-user-profile-server-internal/README.md new file mode 100644 index 0000000000000..7e089c466f903 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/README.md @@ -0,0 +1,3 @@ +# @kbn/core-user-profile-server-internal + +This package contains the internal types and implementation for Core's server-side `userProfile` service. diff --git a/packages/core/user-profile/core-user-profile-server-internal/index.ts b/packages/core/user-profile/core-user-profile-server-internal/index.ts new file mode 100644 index 0000000000000..fc8fb9848883c --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/index.ts @@ -0,0 +1,14 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { UserProfileService } from './src/user_profile_service'; +export { CoreUserProfileRouteHandlerContext } from './src/user_profile_route_handler_context'; +export type { + InternalUserProfileServiceSetup, + InternalUserProfileServiceStart, +} from './src/internal_contracts'; diff --git a/packages/core/user-profile/core-user-profile-server-internal/jest.config.js b/packages/core/user-profile/core-user-profile-server-internal/jest.config.js new file mode 100644 index 0000000000000..6bf5e351dbb95 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['<rootDir>/packages/core/user-profile/core-user-profile-server-internal'], +}; diff --git a/packages/core/user-profile/core-user-profile-server-internal/kibana.jsonc b/packages/core/user-profile/core-user-profile-server-internal/kibana.jsonc new file mode 100644 index 0000000000000..dc23dd4450d28 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-user-profile-server-internal", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/user-profile/core-user-profile-server-internal/package.json b/packages/core/user-profile/core-user-profile-server-internal/package.json new file mode 100644 index 0000000000000..0f37653649bf9 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/core-user-profile-server-internal", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/internal_contracts.ts b/packages/core/user-profile/core-user-profile-server-internal/src/internal_contracts.ts new file mode 100644 index 0000000000000..b1220eb9adf97 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/internal_contracts.ts @@ -0,0 +1,17 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { + UserProfileServiceSetup, + UserProfileServiceStart, + CoreUserProfileDelegateContract, +} from '@kbn/core-user-profile-server'; + +export type InternalUserProfileServiceSetup = UserProfileServiceSetup; +export type InternalUserProfileServiceStart = UserProfileServiceStart & + Pick<CoreUserProfileDelegateContract, 'update'>; diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts new file mode 100644 index 0000000000000..3fe3652872a93 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts @@ -0,0 +1,31 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { KibanaRequest } from '@kbn/core-http-server'; +import type { UserProfileRequestHandlerContext } from '@kbn/core-user-profile-server'; +import type { + UserProfileData, + UserProfileLabels, + UserProfileWithSecurity, +} from '@kbn/core-user-profile-common'; +import type { InternalUserProfileServiceStart } from './internal_contracts'; + +export class CoreUserProfileRouteHandlerContext implements UserProfileRequestHandlerContext { + constructor( + private readonly userProfileStart: InternalUserProfileServiceStart, + private readonly request: KibanaRequest + ) {} + + getCurrent<D extends UserProfileData, L extends UserProfileLabels>({ + dataPath, + }: { + dataPath?: string; + } = {}): Promise<UserProfileWithSecurity<D, L> | null> { + return this.userProfileStart.getCurrent({ request: this.request, dataPath }); + } +} diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.mocks.ts b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.mocks.ts new file mode 100644 index 0000000000000..81c954d2f0869 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.mocks.ts @@ -0,0 +1,19 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const getDefaultUserProfileImplementationMock = jest.fn(); +export const convertUserProfileAPIMock = jest.fn(); + +jest.doMock('./utils', () => { + const actual = jest.requireActual('./utils'); + return { + ...actual, + getDefaultUserProfileImplementation: getDefaultUserProfileImplementationMock, + convertUserProfileAPI: convertUserProfileAPIMock, + }; +}); diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.ts b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.ts new file mode 100644 index 0000000000000..0fdbc5572109e --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.test.ts @@ -0,0 +1,97 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + convertUserProfileAPIMock, + getDefaultUserProfileImplementationMock, +} from './user_profile_service.test.mocks'; + +import { loggerMock, MockedLogger } from '@kbn/logging-mocks'; +import { mockCoreContext } from '@kbn/core-base-server-mocks'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; +import { UserProfileService } from './user_profile_service'; + +const createStubContract = (): CoreUserProfileDelegateContract => { + return Symbol('stubContract') as unknown as CoreUserProfileDelegateContract; +}; + +describe('UserProfileService', () => { + let coreContext: ReturnType<typeof mockCoreContext.create>; + let service: UserProfileService; + + beforeEach(() => { + coreContext = mockCoreContext.create(); + service = new UserProfileService(coreContext); + + convertUserProfileAPIMock.mockReset(); + getDefaultUserProfileImplementationMock.mockReset(); + }); + + describe('#setup', () => { + describe('#registerUserProfileDelegate', () => { + it('throws if called more than once', () => { + const { registerUserProfileDelegate } = service.setup(); + + const contract = createStubContract(); + registerUserProfileDelegate(contract); + + expect(() => registerUserProfileDelegate(contract)).toThrowErrorMatchingInlineSnapshot( + `"userProfile API can only be registered once"` + ); + }); + }); + }); + + describe('#start', () => { + it('logs a warning if the userProfile API was not registered', () => { + service.setup(); + service.start(); + + expect(loggerMock.collect(coreContext.logger as MockedLogger).warn).toMatchInlineSnapshot(` + Array [ + Array [ + "userProfile API was not registered, using default implementation", + ], + ] + `); + }); + + it('calls convertUserProfileAPI with the registered API', () => { + const { registerUserProfileDelegate } = service.setup(); + + const contract = createStubContract(); + registerUserProfileDelegate(contract); + + service.start(); + + expect(convertUserProfileAPIMock).toHaveBeenCalledTimes(1); + expect(convertUserProfileAPIMock).toHaveBeenCalledWith(contract); + }); + + it('calls convertUserProfileAPI with the default implementation when no API was registered', () => { + const contract = createStubContract(); + getDefaultUserProfileImplementationMock.mockReturnValue(contract); + + service.setup(); + service.start(); + + expect(convertUserProfileAPIMock).toHaveBeenCalledTimes(1); + expect(convertUserProfileAPIMock).toHaveBeenCalledWith(contract); + }); + + it('returns the result of convertUserProfileAPI as contract', () => { + const convertedContract = { stub: true }; + convertUserProfileAPIMock.mockReturnValue(convertedContract); + + service.setup(); + const startContract = service.start(); + + expect(startContract).toEqual(convertedContract); + }); + }); +}); diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts new file mode 100644 index 0000000000000..3c876c7d807a4 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Logger } from '@kbn/logging'; +import type { CoreContext, CoreService } from '@kbn/core-base-server-internal'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; +import type { + InternalUserProfileServiceSetup, + InternalUserProfileServiceStart, +} from './internal_contracts'; +import { getDefaultUserProfileImplementation, convertUserProfileAPI } from './utils'; + +export class UserProfileService + implements CoreService<InternalUserProfileServiceSetup, InternalUserProfileServiceStart> +{ + private readonly log: Logger; + private delegate?: CoreUserProfileDelegateContract; + + constructor(coreContext: CoreContext) { + this.log = coreContext.logger.get('user-profile-service'); + } + + public setup(): InternalUserProfileServiceSetup { + return { + registerUserProfileDelegate: (delegate) => { + if (this.delegate) { + throw new Error('userProfile API can only be registered once'); + } + this.delegate = delegate; + }, + }; + } + + public start(): InternalUserProfileServiceStart { + if (!this.delegate) { + this.log.warn('userProfile API was not registered, using default implementation'); + } + const apiContract = this.delegate ?? getDefaultUserProfileImplementation(); + return convertUserProfileAPI(apiContract); + } + + public stop() {} +} diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.test.ts b/packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.test.ts new file mode 100644 index 0000000000000..74822aeea603b --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.test.ts @@ -0,0 +1,28 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; +import { convertUserProfileAPI } from './convert_api'; + +describe('convertUserProfileAPI', () => { + it('returns the API from the source', () => { + const source: CoreUserProfileDelegateContract = { + getCurrent: jest.fn(), + bulkGet: jest.fn(), + suggest: jest.fn(), + update: jest.fn(), + }; + + const output = convertUserProfileAPI(source); + + expect(output.getCurrent).toBe(source.getCurrent); + expect(output.bulkGet).toBe(source.bulkGet); + expect(output.suggest).toBe(source.suggest); + expect(output.update).toBe(source.update); + }); +}); diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.ts b/packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.ts new file mode 100644 index 0000000000000..5cd6edbfa920f --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/utils/convert_api.ts @@ -0,0 +1,16 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; +import type { InternalUserProfileServiceStart } from '../internal_contracts'; + +export const convertUserProfileAPI = ( + delegate: CoreUserProfileDelegateContract +): InternalUserProfileServiceStart => { + return delegate; +}; diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.test.ts b/packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.test.ts new file mode 100644 index 0000000000000..31811dcadb48b --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.test.ts @@ -0,0 +1,36 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { KibanaRequest } from '@kbn/core-http-server'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; +import { getDefaultUserProfileImplementation } from './default_implementation'; + +describe('getDefaultUserProfileImplementation', () => { + let implementation: CoreUserProfileDelegateContract; + + const mockRequest = () => { + return {} as unknown as KibanaRequest; + }; + + beforeEach(() => { + implementation = getDefaultUserProfileImplementation(); + }); + + it('getCurrent resolves to null', async () => { + expect(await implementation.getCurrent({ request: mockRequest() })).toBeNull(); + }); + it('bulkGet resolves to empty list', async () => { + expect(await implementation.bulkGet({ uids: new Set() })).toEqual([]); + }); + it('suggest resolves to empty list', async () => { + expect(await implementation.suggest({})).toEqual([]); + }); + it('update resolves to undefined', async () => { + expect(await implementation.update('foo', {})).toBeUndefined(); + }); +}); diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.ts b/packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.ts new file mode 100644 index 0000000000000..c837696c0158c --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/utils/default_implementation.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; + +export const getDefaultUserProfileImplementation = (): CoreUserProfileDelegateContract => { + return { + getCurrent: () => Promise.resolve(null), + bulkGet: () => Promise.resolve([]), + suggest: () => Promise.resolve([]), + update: () => Promise.resolve(), + }; +}; diff --git a/packages/core/user-profile/core-user-profile-server-internal/src/utils/index.ts b/packages/core/user-profile/core-user-profile-server-internal/src/utils/index.ts new file mode 100644 index 0000000000000..e7e39fbf3e6f7 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/src/utils/index.ts @@ -0,0 +1,10 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { convertUserProfileAPI } from './convert_api'; +export { getDefaultUserProfileImplementation } from './default_implementation'; diff --git a/packages/core/user-profile/core-user-profile-server-internal/tsconfig.json b/packages/core/user-profile/core-user-profile-server-internal/tsconfig.json new file mode 100644 index 0000000000000..db09577dded94 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-internal/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core-user-profile-server", + "@kbn/core-http-server", + "@kbn/core-user-profile-common", + "@kbn/logging", + "@kbn/core-base-server-internal", + "@kbn/logging-mocks", + "@kbn/core-base-server-mocks", + ] +} diff --git a/packages/core/user-profile/core-user-profile-server-mocks/README.md b/packages/core/user-profile/core-user-profile-server-mocks/README.md new file mode 100644 index 0000000000000..f1dc294a4198f --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-mocks/README.md @@ -0,0 +1,3 @@ +# @kbn/core-user-profile-server-mocks + +This package contains mocks types for Core's server-side `userProfile` service. diff --git a/packages/core/user-profile/core-user-profile-server-mocks/index.ts b/packages/core/user-profile/core-user-profile-server-mocks/index.ts new file mode 100644 index 0000000000000..b114ce1d93d2a --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-mocks/index.ts @@ -0,0 +1,9 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { userProfileServiceMock } from './src/user_profile_service.mock'; diff --git a/packages/core/user-profile/core-user-profile-server-mocks/jest.config.js b/packages/core/user-profile/core-user-profile-server-mocks/jest.config.js new file mode 100644 index 0000000000000..746236502cafc --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-mocks/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['<rootDir>/packages/core/user-profile/core-user-profile-server-mocks'], +}; diff --git a/packages/core/user-profile/core-user-profile-server-mocks/kibana.jsonc b/packages/core/user-profile/core-user-profile-server-mocks/kibana.jsonc new file mode 100644 index 0000000000000..bd62cf371dbc3 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-mocks/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-user-profile-server-mocks", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/user-profile/core-user-profile-server-mocks/package.json b/packages/core/user-profile/core-user-profile-server-mocks/package.json new file mode 100644 index 0000000000000..a77996ce9f5e8 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-mocks/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/core-user-profile-server-mocks", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts b/packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts new file mode 100644 index 0000000000000..193428b32a21c --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts @@ -0,0 +1,81 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { + UserProfileServiceSetup, + UserProfileServiceStart, + UserProfileRequestHandlerContext, +} from '@kbn/core-user-profile-server'; +import type { + InternalUserProfileServiceSetup, + InternalUserProfileServiceStart, +} from '@kbn/core-user-profile-server-internal'; + +const createSetupMock = () => { + const mock: jest.Mocked<UserProfileServiceSetup> = { + registerUserProfileDelegate: jest.fn(), + }; + + return mock; +}; + +const createStartMock = () => { + const mock: jest.Mocked<UserProfileServiceStart> = { + getCurrent: jest.fn(), + bulkGet: jest.fn(), + suggest: jest.fn(), + }; + + return mock; +}; + +const createInternalSetupMock = () => { + const mock: jest.Mocked<InternalUserProfileServiceSetup> = { + registerUserProfileDelegate: jest.fn(), + }; + + return mock; +}; + +const createInternalStartMock = () => { + const mock: jest.Mocked<InternalUserProfileServiceStart> = { + getCurrent: jest.fn(), + bulkGet: jest.fn(), + suggest: jest.fn(), + update: jest.fn(), + }; + + return mock; +}; + +const createServiceMock = () => { + const mock = { + setup: jest.fn().mockReturnValue(createSetupMock()), + start: jest.fn().mockReturnValue(createStartMock()), + stop: jest.fn(), + }; + + return mock; +}; + +const createRequestHandlerContextMock = () => { + const mock: jest.Mocked<UserProfileRequestHandlerContext> = { + getCurrent: jest.fn(), + }; + + return mock; +}; + +export const userProfileServiceMock = { + create: createServiceMock, + createSetup: createSetupMock, + createStart: createStartMock, + createInternalSetup: createInternalSetupMock, + createInternalStart: createInternalStartMock, + createRequestHandlerContext: createRequestHandlerContextMock, +}; diff --git a/packages/core/user-profile/core-user-profile-server-mocks/tsconfig.json b/packages/core/user-profile/core-user-profile-server-mocks/tsconfig.json new file mode 100644 index 0000000000000..a2f13d1e160c7 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server-mocks/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core-user-profile-server", + "@kbn/core-user-profile-server-internal", + ] +} diff --git a/packages/core/user-profile/core-user-profile-server/README.md b/packages/core/user-profile/core-user-profile-server/README.md new file mode 100644 index 0000000000000..18dd654962b89 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/README.md @@ -0,0 +1,3 @@ +# @kbn/core-user-profile-server + +This package contains the public types for Core's server-side `userProfile` service. diff --git a/packages/core/user-profile/core-user-profile-server/index.ts b/packages/core/user-profile/core-user-profile-server/index.ts new file mode 100644 index 0000000000000..a6056a5eb5f0b --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/index.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { UserProfileServiceSetup, UserProfileServiceStart } from './src/contracts'; +export type { CoreUserProfileDelegateContract } from './src/api_provider'; +export type { + UserProfileService, + UserProfileSuggestParams, + UserProfileBulkGetParams, + UserProfileRequiredPrivileges, + UserProfileGetCurrentParams, +} from './src/service'; +export type { UserProfileRequestHandlerContext } from './src/request_handler_context'; diff --git a/packages/core/user-profile/core-user-profile-server/jest.config.js b/packages/core/user-profile/core-user-profile-server/jest.config.js new file mode 100644 index 0000000000000..6b79add0b553d --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/jest.config.js @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['<rootDir>/packages/core/user-profile/core-user-profile-server'], +}; diff --git a/packages/core/user-profile/core-user-profile-server/kibana.jsonc b/packages/core/user-profile/core-user-profile-server/kibana.jsonc new file mode 100644 index 0000000000000..8d47dde6b5a6f --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-user-profile-server", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/user-profile/core-user-profile-server/package.json b/packages/core/user-profile/core-user-profile-server/package.json new file mode 100644 index 0000000000000..0bc1664de8163 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/core-user-profile-server", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/user-profile/core-user-profile-server/src/api_provider.ts b/packages/core/user-profile/core-user-profile-server/src/api_provider.ts new file mode 100644 index 0000000000000..d65140536dfbf --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/src/api_provider.ts @@ -0,0 +1,19 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { UserProfileData } from '@kbn/core-user-profile-common'; +import type { UserProfileService } from './service'; + +export type CoreUserProfileDelegateContract = UserProfileService & { + /** + * Updates user preferences by identifier. + * @param uid User ID + * @param data Application data to be written (merged with existing data). + */ + update<D extends UserProfileData>(uid: string, data: D): Promise<void>; +}; diff --git a/packages/core/user-profile/core-user-profile-server/src/contracts.ts b/packages/core/user-profile/core-user-profile-server/src/contracts.ts new file mode 100644 index 0000000000000..dc7b50e9cd171 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/src/contracts.ts @@ -0,0 +1,31 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { UserProfileService } from './service'; +import type { CoreUserProfileDelegateContract } from './api_provider'; + +/** + * Setup contract for Core's userProfile service. + * + * @public + */ +export interface UserProfileServiceSetup { + /** + * Register the userProfile implementation that will be used and re-exposed by Core. + * + * @remark this should **exclusively** be used by the security plugin. + */ + registerUserProfileDelegate(delegate: CoreUserProfileDelegateContract): void; +} + +/** + * Start contract for Core's userProfile service. + * + * @public + */ +export type UserProfileServiceStart = UserProfileService; diff --git a/packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts b/packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts new file mode 100644 index 0000000000000..c6e4914dada19 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts @@ -0,0 +1,19 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + UserProfileData, + UserProfileLabels, + UserProfileWithSecurity, +} from '@kbn/core-user-profile-common'; + +export interface UserProfileRequestHandlerContext { + getCurrent<D extends UserProfileData, L extends UserProfileLabels>(options?: { + dataPath?: string; + }): Promise<UserProfileWithSecurity<D, L> | null>; +} diff --git a/x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts b/packages/core/user-profile/core-user-profile-server/src/service.ts similarity index 91% rename from x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts rename to packages/core/user-profile/core-user-profile-server/src/service.ts index ab68b973139ed..40b422c6d939e 100644 --- a/x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts +++ b/packages/core/user-profile/core-user-profile-server/src/service.ts @@ -1,29 +1,31 @@ /* * 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. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ -import type { KibanaRequest } from '@kbn/core/server'; +import type { KibanaRequest } from '@kbn/core-http-server'; import type { UserProfileData, UserProfileLabels, UserProfileWithSecurity, UserProfile, -} from '@kbn/security-plugin-types-common'; +} from '@kbn/core-user-profile-common'; /** * A set of methods to work with Kibana user profiles. */ -export interface UserProfileServiceStart { +export interface UserProfileService { /** * Retrieves a user profile for the current user extracted from the specified request. If the profile isn't available, * e.g. for the anonymous users or users authenticated via authenticating proxies, the `null` value is returned. * @param params Get current user profile operation parameters. * @param params.request User request instance to get user profile for. * @param params.dataPath By default Elasticsearch returns user information, but does not return any user data. The - * optional "dataPath" parameter can be used to return personal data for the requested user profiles. + * optional "dataPath" parameter can be used to return personal data for the requested user + * profiles (within `kibana` namespace only). */ getCurrent<D extends UserProfileData, L extends UserProfileLabels>( params: UserProfileGetCurrentParams @@ -34,7 +36,8 @@ export interface UserProfileServiceStart { * @param params Bulk get operation parameters. * @param params.uids List of user profile identifiers. * @param params.dataPath By default Elasticsearch returns user information, but does not return any user data. The - * optional "dataPath" parameter can be used to return personal data for the requested user profiles. + * optional "dataPath" parameter can be used to return personal data for the requested user + * profiles (within `kibana` namespace only). */ bulkGet<D extends UserProfileData>( params: UserProfileBulkGetParams diff --git a/packages/core/user-profile/core-user-profile-server/tsconfig.json b/packages/core/user-profile/core-user-profile-server/tsconfig.json new file mode 100644 index 0000000000000..85f418a0eb6c9 --- /dev/null +++ b/packages/core/user-profile/core-user-profile-server/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core-user-profile-common", + "@kbn/core-http-server", + ] +} diff --git a/src/core/public/index.ts b/src/core/public/index.ts index b5e08a1c81818..2260b78f90d9a 100644 --- a/src/core/public/index.ts +++ b/src/core/public/index.ts @@ -210,8 +210,24 @@ export type { SecurityServiceSetup, SecurityServiceStart, CoreAuthenticationService, + CoreSecurityDelegateContract, } from '@kbn/core-security-browser'; +export type { + UserProfile, + UserProfileLabels, + UserProfileWithSecurity, + UserProfileUserInfoWithSecurity, + UserProfileUserInfo, + UserProfileData, +} from '@kbn/core-user-profile-common'; +export type { + UserProfileServiceSetup, + UserProfileServiceStart, + UserProfileService, + CoreUserProfileDelegateContract, +} from '@kbn/core-user-profile-browser'; + export type { OverlayStart, OverlayBannersStart, diff --git a/src/core/server/index.ts b/src/core/server/index.ts index c011a6f98be01..47f5da8bad226 100644 --- a/src/core/server/index.ts +++ b/src/core/server/index.ts @@ -130,6 +130,20 @@ export type { AuthenticationProvider, } from '@kbn/core-security-common'; +export type { + UserProfileUserInfo, + UserProfile, + UserProfileUserInfoWithSecurity, + UserProfileWithSecurity, + UserProfileLabels, + UserProfileData, +} from '@kbn/core-user-profile-common'; +export type { + UserProfileRequestHandlerContext, + UserProfileServiceSetup, + UserProfileServiceStart, +} from '@kbn/core-user-profile-server'; + export { CspConfig } from '@kbn/core-http-server-internal'; export { CoreKibanaRequest, kibanaResponseFactory } from '@kbn/core-http-router-server-internal'; diff --git a/src/core/server/mocks.ts b/src/core/server/mocks.ts index 89fbd1a560758..826ac703d40c6 100644 --- a/src/core/server/mocks.ts +++ b/src/core/server/mocks.ts @@ -20,6 +20,7 @@ import { deprecationsServiceMock } from '@kbn/core-deprecations-server-mocks'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import { coreLifecycleMock, coreInternalLifecycleMock } from '@kbn/core-lifecycle-server-mocks'; import { securityServiceMock } from '@kbn/core-security-server-mocks'; +import { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; import type { SharedGlobalConfig, PluginInitializerContext } from '@kbn/core-plugins-server'; export { configServiceMock, configDeprecationsMock } from '@kbn/config-mocks'; @@ -47,6 +48,7 @@ export { executionContextServiceMock } from '@kbn/core-execution-context-server- export { docLinksServiceMock } from '@kbn/core-doc-links-server-mocks'; export { analyticsServiceMock } from '@kbn/core-analytics-server-mocks'; export { securityServiceMock } from '@kbn/core-security-server-mocks'; +export { userProfileServiceMock } from '@kbn/core-user-profile-server-mocks'; export type { ElasticsearchClientMock, @@ -135,6 +137,7 @@ function createCoreRequestHandlerContextMock() { client: deprecationsServiceMock.createClient(), }, security: securityServiceMock.createRequestHandlerContext(), + userProfile: userProfileServiceMock.createRequestHandlerContext(), }; } diff --git a/src/core/tsconfig.json b/src/core/tsconfig.json index ea4b84eedd71d..05ae89cb1be93 100644 --- a/src/core/tsconfig.json +++ b/src/core/tsconfig.json @@ -164,6 +164,10 @@ "@kbn/core-security-browser", "@kbn/core-security-browser-mocks", "@kbn/core-execution-context-server-internal", + "@kbn/core-user-profile-common", + "@kbn/core-user-profile-server", + "@kbn/core-user-profile-server-mocks", + "@kbn/core-user-profile-browser", ], "exclude": [ "target/**/*", diff --git a/tsconfig.base.json b/tsconfig.base.json index 14f4b0a198cce..17e13abcd5b5d 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -620,6 +620,20 @@ "@kbn/core-usage-data-server-internal/*": ["packages/core/usage-data/core-usage-data-server-internal/*"], "@kbn/core-usage-data-server-mocks": ["packages/core/usage-data/core-usage-data-server-mocks"], "@kbn/core-usage-data-server-mocks/*": ["packages/core/usage-data/core-usage-data-server-mocks/*"], + "@kbn/core-user-profile-browser": ["packages/core/user-profile/core-user-profile-browser"], + "@kbn/core-user-profile-browser/*": ["packages/core/user-profile/core-user-profile-browser/*"], + "@kbn/core-user-profile-browser-internal": ["packages/core/user-profile/core-user-profile-browser-internal"], + "@kbn/core-user-profile-browser-internal/*": ["packages/core/user-profile/core-user-profile-browser-internal/*"], + "@kbn/core-user-profile-browser-mocks": ["packages/core/user-profile/core-user-profile-browser-mocks"], + "@kbn/core-user-profile-browser-mocks/*": ["packages/core/user-profile/core-user-profile-browser-mocks/*"], + "@kbn/core-user-profile-common": ["packages/core/user-profile/core-user-profile-common"], + "@kbn/core-user-profile-common/*": ["packages/core/user-profile/core-user-profile-common/*"], + "@kbn/core-user-profile-server": ["packages/core/user-profile/core-user-profile-server"], + "@kbn/core-user-profile-server/*": ["packages/core/user-profile/core-user-profile-server/*"], + "@kbn/core-user-profile-server-internal": ["packages/core/user-profile/core-user-profile-server-internal"], + "@kbn/core-user-profile-server-internal/*": ["packages/core/user-profile/core-user-profile-server-internal/*"], + "@kbn/core-user-profile-server-mocks": ["packages/core/user-profile/core-user-profile-server-mocks"], + "@kbn/core-user-profile-server-mocks/*": ["packages/core/user-profile/core-user-profile-server-mocks/*"], "@kbn/core-user-settings-server": ["packages/core/user-settings/core-user-settings-server"], "@kbn/core-user-settings-server/*": ["packages/core/user-settings/core-user-settings-server/*"], "@kbn/core-user-settings-server-internal": ["packages/core/user-settings/core-user-settings-server-internal"], diff --git a/x-pack/packages/security/plugin_types_common/src/user_profile/index.ts b/x-pack/packages/security/plugin_types_common/src/user_profile/index.ts index bffb7939c2fc8..2727f316fe868 100644 --- a/x-pack/packages/security/plugin_types_common/src/user_profile/index.ts +++ b/x-pack/packages/security/plugin_types_common/src/user_profile/index.ts @@ -12,4 +12,4 @@ export type { UserProfileUserInfoWithSecurity, UserProfile, UserProfileWithSecurity, -} from './user_profile'; +} from '@kbn/core-user-profile-common'; diff --git a/x-pack/packages/security/plugin_types_common/tsconfig.json b/x-pack/packages/security/plugin_types_common/tsconfig.json index 84288bab1b4b9..353f6770352a9 100644 --- a/x-pack/packages/security/plugin_types_common/tsconfig.json +++ b/x-pack/packages/security/plugin_types_common/tsconfig.json @@ -11,6 +11,7 @@ ], "kbn_references": [ "@kbn/licensing-plugin", - "@kbn/core-security-common" + "@kbn/core-security-common", + "@kbn/core-user-profile-common" ] } diff --git a/x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts b/x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts index a397a16e5ad3a..eedf6e87a6483 100644 --- a/x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts +++ b/x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts @@ -5,15 +5,18 @@ * 2.0. */ -import type { - UserProfileData, - AuthenticatedUser, - UserProfileWithSecurity, - UserProfile, -} from '@kbn/security-plugin-types-common'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import type { UserProfileData } from '@kbn/core-user-profile-common'; import type { Observable } from 'rxjs'; -export interface UserProfileAPIClient { +export type { + GetUserProfileResponse, + UserProfileSuggestParams, + UserProfileBulkGetParams, + UserProfileGetCurrentParams, +} from '@kbn/core-user-profile-browser'; + +export type UserProfileAPIClient = CoreUserProfileDelegateContract & { readonly userProfile$: Observable<UserProfileData | null>; /** * Indicates if the user profile data has been loaded from the server. @@ -23,115 +26,4 @@ export interface UserProfileAPIClient { readonly userProfileLoaded$: Observable<boolean>; /** Flag to indicate if the current user has a user profile. Anonymous users don't have user profiles. */ readonly enabled$: Observable<boolean>; - /** - * Retrieves the user profile of the current user. If the profile isn't available, e.g. for the anonymous users or - * users authenticated via authenticating proxies, the `null` value is returned. - * @param [params] Get current user profile operation parameters. - * @param params.dataPath By default `getCurrent()` returns user information, but does not return any user data. The - * optional "dataPath" parameter can be used to return personal data for this user. - */ - getCurrent<D extends UserProfileData>( - params?: UserProfileGetCurrentParams - ): Promise<GetUserProfileResponse<D>>; - - /** - * Retrieves multiple user profiles by their identifiers. - * @param params Bulk get operation parameters. - * @param params.uids List of user profile identifiers. - * @param params.dataPath By default Elasticsearch returns user information, but does not return any user data. The - * optional "dataPath" parameter can be used to return personal data for the requested user profiles. - */ - bulkGet<D extends UserProfileData>( - params: UserProfileBulkGetParams - ): Promise<Array<UserProfile<D>>>; - - /** - * Suggests multiple user profiles by search criteria. - * - * Note: This endpoint is not provided out-of-the-box by the platform. You need to expose your own - * version within your app. An example of how to do this can be found in: - * `examples/user_profile_examples/server/plugin.ts` - * - * @param path Path to your app's suggest endpoint. - * @param params Suggest operation parameters. - * @param params.name Query string used to match name-related fields in user profiles. The - * following fields are treated as name-related: username, full_name and email. - * @param params.size Desired number of suggestions to return. The default value is 10. - * @param params.dataPath By default, suggest API returns user information, but does not return - * any user data. The optional "dataPath" parameter can be used to return personal data for this - * user (within `kibana` namespace only). - */ - suggest<D extends UserProfileData>( - path: string, - params: UserProfileSuggestParams - ): Promise<Array<UserProfile<D>>>; - - /** - * Updates user profile data of the current user. - * @param data Application data to be written (merged with existing data). - */ - update<D extends UserProfileData>(data: D): Promise<void>; - - /** - * Partially updates user profile data of the current user, merging the previous data with the provided data. - * @param data Application data to be merged with existing data. - */ - partialUpdate<D extends Partial<UserProfileData>>(data: D): Promise<void>; -} - -/** - * Parameters for the get user profile for the current user API. - */ -export interface UserProfileGetCurrentParams { - /** - * By default, get API returns user information, but does not return any user data. The optional "dataPath" - * parameter can be used to return personal data for this user (within `kibana` namespace only). - */ - dataPath: string; -} - -export interface GetUserProfileResponse<D extends UserProfileData = UserProfileData> - extends UserProfileWithSecurity<D> { - /** - * Information about the currently authenticated user that owns the profile. - */ - user: UserProfileWithSecurity['user'] & Pick<AuthenticatedUser, 'authentication_provider'>; -} - -/** - * Parameters for the bulk get API. - */ -export interface UserProfileBulkGetParams { - /** - * List of user profile identifiers. - */ - uids: Set<string>; - - /** - * By default, suggest API returns user information, but does not return any user data. The optional "dataPath" - * parameter can be used to return personal data for this user (within `kibana` namespace only). - */ - dataPath?: string; -} - -/** - * Parameters for the suggest API. - */ -export interface UserProfileSuggestParams { - /** - * Query string used to match name-related fields in user profiles. The following fields are treated as - * name-related: username, full_name and email. - */ - name: string; - - /** - * Desired number of suggestions to return. The default value is 10. - */ - size?: number; - - /** - * By default, suggest API returns user information, but does not return any user data. The optional "dataPath" - * parameter can be used to return personal data for this user (within `kibana` namespace only). - */ - dataPath?: string; -} +}; diff --git a/x-pack/packages/security/plugin_types_public/tsconfig.json b/x-pack/packages/security/plugin_types_public/tsconfig.json index 23e34902d2c12..28f07062f6807 100644 --- a/x-pack/packages/security/plugin_types_public/tsconfig.json +++ b/x-pack/packages/security/plugin_types_public/tsconfig.json @@ -10,6 +10,8 @@ "target/**/*" ], "kbn_references": [ - "@kbn/security-plugin-types-common" + "@kbn/security-plugin-types-common", + "@kbn/core-user-profile-browser", + "@kbn/core-user-profile-common" ] } diff --git a/x-pack/packages/security/plugin_types_server/src/user_profile/index.ts b/x-pack/packages/security/plugin_types_server/src/user_profile/index.ts index 15be67e7601f0..7817ac8a543e9 100644 --- a/x-pack/packages/security/plugin_types_server/src/user_profile/index.ts +++ b/x-pack/packages/security/plugin_types_server/src/user_profile/index.ts @@ -11,4 +11,4 @@ export type { UserProfileBulkGetParams, UserProfileRequiredPrivileges, UserProfileGetCurrentParams, -} from './user_profile_service'; +} from '@kbn/core-user-profile-server'; diff --git a/x-pack/packages/security/plugin_types_server/tsconfig.json b/x-pack/packages/security/plugin_types_server/tsconfig.json index 1883d50f328e5..0edcc935ca144 100644 --- a/x-pack/packages/security/plugin_types_server/tsconfig.json +++ b/x-pack/packages/security/plugin_types_server/tsconfig.json @@ -13,5 +13,6 @@ "@kbn/config-schema", "@kbn/core", "@kbn/security-plugin-types-common", + "@kbn/core-user-profile-server", ] } diff --git a/x-pack/plugins/fleet/.storybook/context/index.tsx b/x-pack/plugins/fleet/.storybook/context/index.tsx index 8f118a31e0a17..608414af27887 100644 --- a/x-pack/plugins/fleet/.storybook/context/index.tsx +++ b/x-pack/plugins/fleet/.storybook/context/index.tsx @@ -13,7 +13,11 @@ import { createBrowserHistory } from 'history'; import { I18nProvider } from '@kbn/i18n-react'; -import type { PluginsServiceStart, SecurityServiceStart } from '@kbn/core/public'; +import type { + PluginsServiceStart, + SecurityServiceStart, + UserProfileServiceStart, +} from '@kbn/core/public'; import { CoreScopedHistory } from '@kbn/core/public'; import { getStorybookContextProvider } from '@kbn/custom-integrations-plugin/storybook'; @@ -96,6 +100,7 @@ export const StorybookContext: React.FC<{ storyContext?: Parameters<DecoratorFn> getTheme: () => ({ darkMode: false }), }, security: {} as unknown as SecurityServiceStart, + userProfile: {} as unknown as UserProfileServiceStart, plugins: {} as unknown as PluginsServiceStart, authz: { fleet: { diff --git a/x-pack/plugins/security/public/build_delegate_api.test.ts b/x-pack/plugins/security/public/build_delegate_api.test.ts new file mode 100644 index 0000000000000..f8d4233b3edef --- /dev/null +++ b/x-pack/plugins/security/public/build_delegate_api.test.ts @@ -0,0 +1,141 @@ +/* + * 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 { of } from 'rxjs'; + +import type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import type { UserProfileAPIClient } from '@kbn/security-plugin-types-public'; + +import { authenticationMock } from './authentication/index.mock'; +import { buildSecurityApi, buildUserProfileApi } from './build_delegate_api'; +import { securityMock } from './mocks'; + +describe('buildSecurityApi', () => { + let authc: ReturnType<typeof authenticationMock.createSetup>; + let api: CoreSecurityDelegateContract; + + beforeEach(() => { + authc = authenticationMock.createSetup(); + api = buildSecurityApi({ authc }); + }); + + describe('authc.getCurrentUser', () => { + it('properly delegates to the service', async () => { + await api.authc.getCurrentUser(); + + expect(authc.getCurrentUser).toHaveBeenCalledTimes(1); + }); + + it('returns the result from the service', async () => { + const delegateReturn = securityMock.createMockAuthenticatedUser(); + + authc.getCurrentUser.mockReturnValue(Promise.resolve(delegateReturn)); + + const currentUser = await api.authc.getCurrentUser(); + + expect(currentUser).toBe(delegateReturn); + }); + }); +}); + +describe('buildUserProfileApi', () => { + let userProfile: jest.Mocked<UserProfileAPIClient>; + let api: CoreUserProfileDelegateContract; + + beforeEach(() => { + userProfile = { + userProfile$: of(null), + userProfileLoaded$: of(false), + enabled$: of(true), + getCurrent: jest.fn(), + bulkGet: jest.fn(), + suggest: jest.fn(), + update: jest.fn(), + partialUpdate: jest.fn(), + }; + api = buildUserProfileApi({ userProfile }); + }); + + describe('userProfile$', () => { + it('returns the reference from the service', async () => { + expect(api.userProfile$).toBe(userProfile.userProfile$); + }); + }); + + describe('getCurrent', () => { + it('properly delegates to the service', async () => { + await api.getCurrent({ dataPath: 'dataPath' }); + + expect(userProfile.getCurrent).toHaveBeenCalledTimes(1); + expect(userProfile.getCurrent).toHaveBeenCalledWith({ dataPath: 'dataPath' }); + }); + + it('returns the result from the service', async () => { + userProfile.getCurrent.mockResolvedValue({ stub: true } as any); + + const returnValue = await api.getCurrent({ dataPath: 'dataPath' }); + + expect(returnValue).toEqual({ stub: true }); + }); + }); + + describe('bulkGet', () => { + it('properly delegates to the service', async () => { + const uids = new Set(['foo', 'bar']); + await api.bulkGet({ uids, dataPath: 'dataPath' }); + + expect(userProfile.bulkGet).toHaveBeenCalledTimes(1); + expect(userProfile.bulkGet).toHaveBeenCalledWith({ uids, dataPath: 'dataPath' }); + }); + + it('returns the result from the service', async () => { + userProfile.bulkGet.mockResolvedValue([]); + + const returnValue = await api.bulkGet({ uids: new Set(), dataPath: 'dataPath' }); + + expect(returnValue).toEqual([]); + }); + }); + + describe('suggest', () => { + it('properly delegates to the service', async () => { + await api.suggest('path', { name: 'foo' }); + + expect(userProfile.suggest).toHaveBeenCalledTimes(1); + expect(userProfile.suggest).toHaveBeenCalledWith('path', { name: 'foo' }); + }); + + it('returns the result from the service', async () => { + userProfile.suggest.mockResolvedValue([]); + + const returnValue = await api.suggest('path', { name: 'foo' }); + + expect(returnValue).toEqual([]); + }); + }); + + describe('update', () => { + it('properly delegates to the service', async () => { + const updated = { foo: 'bar' }; + await api.update(updated); + + expect(userProfile.update).toHaveBeenCalledTimes(1); + expect(userProfile.update).toHaveBeenCalledWith(updated); + }); + }); + + describe('partialUpdate', () => { + it('properly delegates to the service', async () => { + const updated = { foo: 'bar' }; + await api.partialUpdate(updated); + + expect(userProfile.partialUpdate).toHaveBeenCalledTimes(1); + expect(userProfile.partialUpdate).toHaveBeenCalledWith(updated); + }); + }); +}); diff --git a/x-pack/plugins/security/public/build_delegate_api.ts b/x-pack/plugins/security/public/build_delegate_api.ts new file mode 100644 index 0000000000000..b8444c19adbe0 --- /dev/null +++ b/x-pack/plugins/security/public/build_delegate_api.ts @@ -0,0 +1,33 @@ +/* + * 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 type { CoreSecurityDelegateContract } from '@kbn/core-security-browser'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-browser'; +import type { + AuthenticationServiceSetup, + UserProfileAPIClient, +} from '@kbn/security-plugin-types-public'; + +export const buildSecurityApi = ({ + authc, +}: { + authc: AuthenticationServiceSetup; +}): CoreSecurityDelegateContract => { + return { + authc: { + getCurrentUser: () => authc.getCurrentUser(), + }, + }; +}; + +export const buildUserProfileApi = ({ + userProfile, +}: { + userProfile: UserProfileAPIClient; +}): CoreUserProfileDelegateContract => { + return userProfile; +}; diff --git a/x-pack/plugins/security/public/build_security_api.test.ts b/x-pack/plugins/security/public/build_security_api.test.ts deleted file mode 100644 index 344e3daea5467..0000000000000 --- a/x-pack/plugins/security/public/build_security_api.test.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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 type { CoreSecurityContract } from '@kbn/core-security-browser'; - -import { authenticationMock } from './authentication/index.mock'; -import { buildSecurityApi } from './build_security_api'; -import { securityMock } from './mocks'; - -describe('buildSecurityApi', () => { - let authc: ReturnType<typeof authenticationMock.createSetup>; - let api: CoreSecurityContract; - - beforeEach(() => { - authc = authenticationMock.createSetup(); - api = buildSecurityApi({ authc }); - }); - - describe('authc.getCurrentUser', () => { - it('properly delegates to the service', async () => { - await api.authc.getCurrentUser(); - - expect(authc.getCurrentUser).toHaveBeenCalledTimes(1); - }); - - it('returns the result from the service', async () => { - const delegateReturn = securityMock.createMockAuthenticatedUser(); - - authc.getCurrentUser.mockReturnValue(Promise.resolve(delegateReturn)); - - const currentUser = await api.authc.getCurrentUser(); - - expect(currentUser).toBe(delegateReturn); - }); - }); -}); diff --git a/x-pack/plugins/security/public/build_security_api.ts b/x-pack/plugins/security/public/build_security_api.ts deleted file mode 100644 index 5c2849c2266c9..0000000000000 --- a/x-pack/plugins/security/public/build_security_api.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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 type { CoreSecurityContract } from '@kbn/core-security-browser'; -import type { AuthenticationServiceSetup } from '@kbn/security-plugin-types-public'; - -export const buildSecurityApi = ({ - authc, -}: { - authc: AuthenticationServiceSetup; -}): CoreSecurityContract => { - return { - authc: { - getCurrentUser: () => authc.getCurrentUser(), - }, - }; -}; diff --git a/x-pack/plugins/security/public/plugin.test.tsx b/x-pack/plugins/security/public/plugin.test.tsx index d3dadbfb87665..e58ff7ba5e325 100644 --- a/x-pack/plugins/security/public/plugin.test.tsx +++ b/x-pack/plugins/security/public/plugin.test.tsx @@ -84,7 +84,7 @@ describe('Security Plugin', () => { }); }); - it('calls core.security.registerSecurityApi', () => { + it('calls core.security.registerSecurityDelegate', () => { const coreSetupMock = getCoreSetupMock(); const plugin = new SecurityPlugin(coreMock.createPluginInitializerContext()); @@ -93,7 +93,19 @@ describe('Security Plugin', () => { licensing: licensingMock.createSetup(), }); - expect(coreSetupMock.security.registerSecurityApi).toHaveBeenCalledTimes(1); + expect(coreSetupMock.security.registerSecurityDelegate).toHaveBeenCalledTimes(1); + }); + + it('calls core.userProfile.registerUserProfileDelegate', () => { + const coreSetupMock = getCoreSetupMock(); + + const plugin = new SecurityPlugin(coreMock.createPluginInitializerContext()); + + plugin.setup(coreSetupMock, { + licensing: licensingMock.createSetup(), + }); + + expect(coreSetupMock.userProfile.registerUserProfileDelegate).toHaveBeenCalledTimes(1); }); }); diff --git a/x-pack/plugins/security/public/plugin.tsx b/x-pack/plugins/security/public/plugin.tsx index 333f8736731ac..9077db924f87c 100644 --- a/x-pack/plugins/security/public/plugin.tsx +++ b/x-pack/plugins/security/public/plugin.tsx @@ -36,7 +36,7 @@ import { AnalyticsService } from './analytics'; import { AnonymousAccessService } from './anonymous_access'; import { AuthenticationService } from './authentication'; import { AuthorizationService } from './authorization'; -import { buildSecurityApi } from './build_security_api'; +import { buildSecurityApi, buildUserProfileApi } from './build_delegate_api'; import type { SecurityApiClients } from './components'; import type { ConfigType } from './config'; import { ManagementService, UserAPIClient } from './management'; @@ -143,7 +143,10 @@ export class SecurityPlugin securityApiClients: this.securityApiClients, }); - core.security.registerSecurityApi(buildSecurityApi({ authc: this.authc })); + core.security.registerSecurityDelegate(buildSecurityApi({ authc: this.authc })); + core.userProfile.registerUserProfileDelegate( + buildUserProfileApi({ userProfile: this.securityApiClients.userProfiles }) + ); if (management) { this.managementService.setup({ diff --git a/x-pack/plugins/security/server/build_delegate_apis.test.ts b/x-pack/plugins/security/server/build_delegate_apis.test.ts new file mode 100644 index 0000000000000..9511110cdc173 --- /dev/null +++ b/x-pack/plugins/security/server/build_delegate_apis.test.ts @@ -0,0 +1,121 @@ +/* + * 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 { httpServerMock } from '@kbn/core-http-server-mocks'; +import type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; + +import { authenticationServiceMock } from './authentication/authentication_service.mock'; +import { buildSecurityApi, buildUserProfileApi } from './build_delegate_apis'; +import { securityMock } from './mocks'; +import { userProfileServiceMock } from './user_profile/user_profile_service.mock'; + +describe('buildSecurityApi', () => { + let authc: ReturnType<typeof authenticationServiceMock.createStart>; + let api: CoreSecurityDelegateContract; + + beforeEach(() => { + authc = authenticationServiceMock.createStart(); + api = buildSecurityApi({ getAuthc: () => authc }); + }); + + describe('authc.getCurrentUser', () => { + it('properly delegates to the service', () => { + const request = httpServerMock.createKibanaRequest(); + api.authc.getCurrentUser(request); + + expect(authc.getCurrentUser).toHaveBeenCalledTimes(1); + expect(authc.getCurrentUser).toHaveBeenCalledWith(request); + }); + + it('returns the result from the service', async () => { + const request = httpServerMock.createKibanaRequest(); + const delegateReturn = securityMock.createMockAuthenticatedUser(); + + authc.getCurrentUser.mockReturnValue(delegateReturn); + + const currentUser = api.authc.getCurrentUser(request); + + expect(currentUser).toBe(delegateReturn); + }); + }); +}); + +describe('buildUserProfileApi', () => { + let userProfile: ReturnType<typeof userProfileServiceMock.createStart>; + let api: CoreUserProfileDelegateContract; + + beforeEach(() => { + userProfile = userProfileServiceMock.createStart(); + api = buildUserProfileApi({ getUserProfile: () => userProfile }); + }); + + describe('getCurrent', () => { + it('properly delegates to the service', async () => { + const request = httpServerMock.createKibanaRequest(); + await api.getCurrent({ request, dataPath: 'dataPath' }); + + expect(userProfile.getCurrent).toHaveBeenCalledTimes(1); + expect(userProfile.getCurrent).toHaveBeenCalledWith({ request, dataPath: 'dataPath' }); + }); + + it('returns the result from the service', async () => { + const request = httpServerMock.createKibanaRequest(); + + userProfile.getCurrent.mockResolvedValue(null); + + const returnValue = await api.getCurrent({ request, dataPath: 'dataPath' }); + + expect(returnValue).toBe(null); + }); + }); + + describe('bulkGet', () => { + it('properly delegates to the service', async () => { + const uids = new Set(['foo', 'bar']); + await api.bulkGet({ uids, dataPath: 'dataPath' }); + + expect(userProfile.bulkGet).toHaveBeenCalledTimes(1); + expect(userProfile.bulkGet).toHaveBeenCalledWith({ uids, dataPath: 'dataPath' }); + }); + + it('returns the result from the service', async () => { + userProfile.bulkGet.mockResolvedValue([]); + + const returnValue = await api.bulkGet({ uids: new Set(), dataPath: 'dataPath' }); + + expect(returnValue).toEqual([]); + }); + }); + + describe('suggest', () => { + it('properly delegates to the service', async () => { + await api.suggest({ name: 'foo' }); + + expect(userProfile.suggest).toHaveBeenCalledTimes(1); + expect(userProfile.suggest).toHaveBeenCalledWith({ name: 'foo' }); + }); + + it('returns the result from the service', async () => { + userProfile.suggest.mockResolvedValue([]); + + const returnValue = await api.suggest({ name: 'foo' }); + + expect(returnValue).toEqual([]); + }); + }); + + describe('update', () => { + it('properly delegates to the service', async () => { + const updated = { foo: 'bar' }; + await api.update('foo', updated); + + expect(userProfile.update).toHaveBeenCalledTimes(1); + expect(userProfile.update).toHaveBeenCalledWith('foo', updated); + }); + }); +}); diff --git a/x-pack/plugins/security/server/build_delegate_apis.ts b/x-pack/plugins/security/server/build_delegate_apis.ts new file mode 100644 index 0000000000000..b4fd4474aaace --- /dev/null +++ b/x-pack/plugins/security/server/build_delegate_apis.ts @@ -0,0 +1,39 @@ +/* + * 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 type { CoreSecurityDelegateContract } from '@kbn/core-security-server'; +import type { CoreUserProfileDelegateContract } from '@kbn/core-user-profile-server'; + +import type { InternalAuthenticationServiceStart } from './authentication'; +import type { UserProfileServiceStartInternal } from './user_profile'; + +export const buildSecurityApi = ({ + getAuthc, +}: { + getAuthc: () => InternalAuthenticationServiceStart; +}): CoreSecurityDelegateContract => { + return { + authc: { + getCurrentUser: (request) => { + return getAuthc().getCurrentUser(request); + }, + }, + }; +}; + +export const buildUserProfileApi = ({ + getUserProfile, +}: { + getUserProfile: () => UserProfileServiceStartInternal; +}): CoreUserProfileDelegateContract => { + return { + getCurrent: (params) => getUserProfile().getCurrent(params), + suggest: (params) => getUserProfile().suggest(params), + bulkGet: (params) => getUserProfile().bulkGet(params), + update: (uids, data) => getUserProfile().update(uids, data), + }; +}; diff --git a/x-pack/plugins/security/server/build_security_api.test.ts b/x-pack/plugins/security/server/build_security_api.test.ts deleted file mode 100644 index ffbf0fb28d3b4..0000000000000 --- a/x-pack/plugins/security/server/build_security_api.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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 { httpServerMock } from '@kbn/core-http-server-mocks'; -import type { CoreSecurityContract } from '@kbn/core-security-server'; - -import { authenticationServiceMock } from './authentication/authentication_service.mock'; -import { buildSecurityApi } from './build_security_api'; -import { securityMock } from './mocks'; - -describe('buildSecurityApi', () => { - let authc: ReturnType<typeof authenticationServiceMock.createStart>; - let api: CoreSecurityContract; - - beforeEach(() => { - authc = authenticationServiceMock.createStart(); - api = buildSecurityApi({ getAuthc: () => authc }); - }); - - describe('authc.getCurrentUser', () => { - it('properly delegates to the service', () => { - const request = httpServerMock.createKibanaRequest(); - api.authc.getCurrentUser(request); - - expect(authc.getCurrentUser).toHaveBeenCalledTimes(1); - expect(authc.getCurrentUser).toHaveBeenCalledWith(request); - }); - - it('returns the result from the service', async () => { - const request = httpServerMock.createKibanaRequest(); - const delegateReturn = securityMock.createMockAuthenticatedUser(); - - authc.getCurrentUser.mockReturnValue(delegateReturn); - - const currentUser = api.authc.getCurrentUser(request); - - expect(currentUser).toBe(delegateReturn); - }); - }); -}); diff --git a/x-pack/plugins/security/server/build_security_api.ts b/x-pack/plugins/security/server/build_security_api.ts deleted file mode 100644 index fa4d5f25f8ffa..0000000000000 --- a/x-pack/plugins/security/server/build_security_api.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 type { CoreSecurityContract } from '@kbn/core-security-server'; - -import type { InternalAuthenticationServiceStart } from './authentication'; - -export const buildSecurityApi = ({ - getAuthc, -}: { - getAuthc: () => InternalAuthenticationServiceStart; -}): CoreSecurityContract => { - return { - authc: { - getCurrentUser: (request) => { - return getAuthc().getCurrentUser(request); - }, - }, - }; -}; diff --git a/x-pack/plugins/security/server/plugin.test.ts b/x-pack/plugins/security/server/plugin.test.ts index 78da2544922af..be3d00b77cff9 100644 --- a/x-pack/plugins/security/server/plugin.test.ts +++ b/x-pack/plugins/security/server/plugin.test.ts @@ -133,10 +133,16 @@ describe('Security Plugin', () => { `); }); - it('calls core.security.registerSecurityApi', () => { + it('calls core.security.registerSecurityDelegate', () => { plugin.setup(mockCoreSetup, mockSetupDependencies); - expect(mockCoreSetup.security.registerSecurityApi).toHaveBeenCalledTimes(1); + expect(mockCoreSetup.security.registerSecurityDelegate).toHaveBeenCalledTimes(1); + }); + + it('calls core.userProfile.registerUserProfileDelegate', () => { + plugin.setup(mockCoreSetup, mockSetupDependencies); + + expect(mockCoreSetup.userProfile.registerUserProfileDelegate).toHaveBeenCalledTimes(1); }); }); diff --git a/x-pack/plugins/security/server/plugin.ts b/x-pack/plugins/security/server/plugin.ts index 936a581ab2b59..828c8b42ea1b7 100644 --- a/x-pack/plugins/security/server/plugin.ts +++ b/x-pack/plugins/security/server/plugin.ts @@ -44,7 +44,7 @@ import type { InternalAuthenticationServiceStart } from './authentication'; import { AuthenticationService } from './authentication'; import type { AuthorizationServiceSetupInternal } from './authorization'; import { AuthorizationService } from './authorization'; -import { buildSecurityApi } from './build_security_api'; +import { buildSecurityApi, buildUserProfileApi } from './build_delegate_apis'; import type { ConfigSchema, ConfigType } from './config'; import { createConfig } from './config'; import { getPrivilegeDeprecationsService, registerKibanaUserRoleDeprecation } from './deprecations'; @@ -310,11 +310,16 @@ export class SecurityPlugin this.registerDeprecations(core, license); - core.security.registerSecurityApi( + core.security.registerSecurityDelegate( buildSecurityApi({ getAuthc: this.getAuthentication.bind(this), }) ); + core.userProfile.registerUserProfileDelegate( + buildUserProfileApi({ + getUserProfile: this.getUserProfileService.bind(this), + }) + ); defineRoutes({ router: core.http.createRouter(), diff --git a/x-pack/plugins/security/server/routes/user_profile/get_current.test.ts b/x-pack/plugins/security/server/routes/user_profile/get_current.test.ts index aad0e201e996b..a6bca14642f62 100644 --- a/x-pack/plugins/security/server/routes/user_profile/get_current.test.ts +++ b/x-pack/plugins/security/server/routes/user_profile/get_current.test.ts @@ -8,7 +8,7 @@ import type { ObjectType } from '@kbn/config-schema'; import type { RequestHandler, RouteConfig } from '@kbn/core/server'; import { kibanaResponseFactory } from '@kbn/core/server'; -import { httpServerMock } from '@kbn/core/server/mocks'; +import { coreMock, httpServerMock } from '@kbn/core/server/mocks'; import { defineGetCurrentUserProfileRoute } from './get_current'; import { mockAuthenticatedUser } from '../../../common/model/authenticated_user.mock'; @@ -20,21 +20,24 @@ import { userProfileServiceMock } from '../../user_profile/user_profile_service. import { routeDefinitionParamsMock } from '../index.mock'; function getMockContext() { - return { + return coreMock.createCustomRequestHandlerContext({ licensing: { license: { check: jest.fn().mockReturnValue({ check: 'valid' }) }, }, - } as unknown as SecurityRequestHandlerContext; + }) as unknown as SecurityRequestHandlerContext; } describe('Get current user profile routes', () => { let router: jest.Mocked<SecurityRouter>; + let mockContext: SecurityRequestHandlerContext; let userProfileService: jest.Mocked<UserProfileServiceStartInternal>; let authenticationService: ReturnType<typeof authenticationServiceMock.createStart>; beforeEach(() => { const routeParamsMock = routeDefinitionParamsMock.create(); router = routeParamsMock.router; + mockContext = getMockContext(); + userProfileService = userProfileServiceMock.createStart(); routeParamsMock.getUserProfileService.mockReturnValue(userProfileService); @@ -74,7 +77,7 @@ describe('Get current user profile routes', () => { authenticationService.getCurrentUser.mockReturnValue(null); await expect( - routeHandler(getMockContext(), httpServerMock.createKibanaRequest(), kibanaResponseFactory) + routeHandler(mockContext, httpServerMock.createKibanaRequest(), kibanaResponseFactory) ).resolves.toEqual(expect.objectContaining({ status: 404 })); expect(userProfileService.getCurrent).not.toHaveBeenCalled(); @@ -83,28 +86,32 @@ describe('Get current user profile routes', () => { it('returns `404` if profile is not available', async () => { const mockRequest = httpServerMock.createKibanaRequest(); authenticationService.getCurrentUser.mockReturnValue(mockAuthenticatedUser()); - userProfileService.getCurrent.mockResolvedValue(null); - await expect( - routeHandler(getMockContext(), mockRequest, kibanaResponseFactory) - ).resolves.toEqual(expect.objectContaining({ status: 404 })); + const coreContextMock = await mockContext.core; + (coreContextMock.userProfile.getCurrent as jest.Mock).mockResolvedValue(null); + + await expect(routeHandler(mockContext, mockRequest, kibanaResponseFactory)).resolves.toEqual( + expect.objectContaining({ status: 404 }) + ); - expect(userProfileService.getCurrent).toBeCalledTimes(1); - expect(userProfileService.getCurrent).toBeCalledWith({ request: mockRequest }); + expect(coreContextMock.userProfile.getCurrent).toBeCalledTimes(1); + expect(coreContextMock.userProfile.getCurrent).toBeCalledWith({}); }); it('fails if `getCurrent` call fails.', async () => { const unhandledException = new Error('Something went wrong.'); const mockRequest = httpServerMock.createKibanaRequest(); authenticationService.getCurrentUser.mockReturnValue(mockAuthenticatedUser()); - userProfileService.getCurrent.mockRejectedValue(unhandledException); - await expect( - routeHandler(getMockContext(), mockRequest, kibanaResponseFactory) - ).resolves.toEqual(expect.objectContaining({ status: 500, payload: unhandledException })); + const coreContextMock = await mockContext.core; + (coreContextMock.userProfile.getCurrent as jest.Mock).mockRejectedValue(unhandledException); + + await expect(routeHandler(mockContext, mockRequest, kibanaResponseFactory)).resolves.toEqual( + expect.objectContaining({ status: 500, payload: unhandledException }) + ); - expect(userProfileService.getCurrent).toBeCalledTimes(1); - expect(userProfileService.getCurrent).toBeCalledWith({ request: mockRequest }); + expect(coreContextMock.userProfile.getCurrent).toBeCalledTimes(1); + expect(coreContextMock.userProfile.getCurrent).toBeCalledWith({}); }); it('returns user profile for the current user.', async () => { @@ -114,11 +121,11 @@ describe('Get current user profile routes', () => { authenticationService.getCurrentUser.mockReturnValue(mockUser); const mockProfile = userProfileMock.createWithSecurity({ uid: 'uid-1' }); - userProfileService.getCurrent.mockResolvedValue(mockProfile); - await expect( - routeHandler(getMockContext(), mockRequest, kibanaResponseFactory) - ).resolves.toEqual( + const coreContextMock = await mockContext.core; + (coreContextMock.userProfile.getCurrent as jest.Mock).mockResolvedValue(mockProfile); + + await expect(routeHandler(mockContext, mockRequest, kibanaResponseFactory)).resolves.toEqual( expect.objectContaining({ status: 200, payload: { @@ -131,8 +138,8 @@ describe('Get current user profile routes', () => { }) ); - expect(userProfileService.getCurrent).toBeCalledTimes(1); - expect(userProfileService.getCurrent).toBeCalledWith({ request: mockRequest, dataPath: '*' }); + expect(coreContextMock.userProfile.getCurrent).toBeCalledTimes(1); + expect(coreContextMock.userProfile.getCurrent).toBeCalledWith({ dataPath: '*' }); }); }); }); diff --git a/x-pack/plugins/security/server/routes/user_profile/get_current.ts b/x-pack/plugins/security/server/routes/user_profile/get_current.ts index 25cdbf35cba6c..9661570e36b4e 100644 --- a/x-pack/plugins/security/server/routes/user_profile/get_current.ts +++ b/x-pack/plugins/security/server/routes/user_profile/get_current.ts @@ -25,16 +25,17 @@ export function defineGetCurrentUserProfileRoute({ }, }, createLicensedRouteHandler(async (context, request, response) => { - const authenticationService = await getAuthenticationService(); + const authenticationService = getAuthenticationService(); const currentUser = authenticationService.getCurrentUser(request); if (!currentUser) { return response.notFound(); } + const { userProfile } = await context.core; + let profile: UserProfileWithSecurity | null; try { - profile = await getUserProfileService().getCurrent({ - request, + profile = await userProfile.getCurrent({ dataPath: request.query.dataPath, }); } catch (error) { diff --git a/x-pack/plugins/security/tsconfig.json b/x-pack/plugins/security/tsconfig.json index 3dde17effc710..61eb1bb0147f3 100644 --- a/x-pack/plugins/security/tsconfig.json +++ b/x-pack/plugins/security/tsconfig.json @@ -82,6 +82,8 @@ "@kbn/core-i18n-browser-mocks", "@kbn/core-theme-browser-mocks", "@kbn/core-analytics-browser-mocks", + "@kbn/core-user-profile-server", + "@kbn/core-user-profile-browser" ], "exclude": [ "target/**/*", diff --git a/yarn.lock b/yarn.lock index 47b6a266bd734..5709927c111bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4286,6 +4286,34 @@ version "0.0.0" uid "" +"@kbn/core-user-profile-browser-internal@link:packages/core/user-profile/core-user-profile-browser-internal": + version "0.0.0" + uid "" + +"@kbn/core-user-profile-browser-mocks@link:packages/core/user-profile/core-user-profile-browser-mocks": + version "0.0.0" + uid "" + +"@kbn/core-user-profile-browser@link:packages/core/user-profile/core-user-profile-browser": + version "0.0.0" + uid "" + +"@kbn/core-user-profile-common@link:packages/core/user-profile/core-user-profile-common": + version "0.0.0" + uid "" + +"@kbn/core-user-profile-server-internal@link:packages/core/user-profile/core-user-profile-server-internal": + version "0.0.0" + uid "" + +"@kbn/core-user-profile-server-mocks@link:packages/core/user-profile/core-user-profile-server-mocks": + version "0.0.0" + uid "" + +"@kbn/core-user-profile-server@link:packages/core/user-profile/core-user-profile-server": + version "0.0.0" + uid "" + "@kbn/core-user-settings-server-internal@link:packages/core/user-settings/core-user-settings-server-internal": version "0.0.0" uid "" From 2b51740d9efa3ef42cede12255fba56d36431704 Mon Sep 17 00:00:00 2001 From: Umberto Pepato <umbopepato@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:47:45 +0200 Subject: [PATCH 101/183] [Cases] Add missing alerts table dependency to Cases plugin (#181303) ## Summary Adds the missing `fieldFormats` dependency needed by the alerts table to the Cases plugin. Fixes #181301 ## To verify 1. Create a stack rule that fires alerts from `Stack Management > Rules` (i.e. ElasticSearch Query) 2. Assign a Case action to that rule 3. Wait for alerts to be created 4. Navigate to `Stack Management > Cases` and open the automatically created case 5. In the case detail page, navigate to the `Alerts` tab 6. Verify that the alerts table renders correctly --- x-pack/plugins/cases/kibana.jsonc | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/cases/kibana.jsonc b/x-pack/plugins/cases/kibana.jsonc index feecbc66ee445..84c04da1fe0f6 100644 --- a/x-pack/plugins/cases/kibana.jsonc +++ b/x-pack/plugins/cases/kibana.jsonc @@ -20,6 +20,7 @@ "licensing", "features", "triggersActionsUi", + "fieldFormats", "management", "security", "notifications", From 37d47da7711710ded8d30f0514f4da2e1810dc8f Mon Sep 17 00:00:00 2001 From: Gloria Hornero <gloria.hornero@elastic.co> Date: Wed, 24 Apr 2024 10:48:30 +0200 Subject: [PATCH 102/183] [Security Solution] Labels adjustments (#181371) Following up from https://github.com/elastic/kibana/pull/180773 ## Summary In this PR we are introducing the `@skipServerlessMKI` label, with it, a test will be excluded from the execution on any MKI environment but it will be executed as part of the CI check if the `@serverless` tag is present. With the new changes the serverless labels will work as follows: * `@serverless`: The test is executed as part of the PR check process and in the periodic pipeline (MKI environment). * `@serverlessQA`: The test is executed as part of the kibana release process in the QA environment (MKI environment). * `@skipInServerless`: The test is skipped from being executed in CI as part of the PR check and is skipped from being executed in any MKI environment. `@skipInServerlessMKI`: The test is skipped from being executed in any MKI environment but it will continue being executed as part of the PR process if the `@serverless` tag is present. **IMPORTANT:** The skip labels have been created for those tests that use `@serverless` or `@serverlessQA` labels. The absence of them (`@serverless` or `@serverlessQA`) will exclude automatically the execution of the test in the targeted environments. I.E: A test without `@serverlessQA` will never be executed as part of the Kibana release process. A test without `@serverless` will never be executed as part of the PR CI check neither the periodic pipeline. --- .../run_cypress/parallel_serverless.ts | 3 +- .../cypress/README.md | 1 + .../cypress_ci_serverless_qa.config.ts | 2 +- ...ws_suppression_serverless_essentials.cy.ts | 2 +- .../event_correlation_rule_suppression.cy.ts | 2 +- ...orrelation_rule_suppression_sequence.cy.ts | 2 +- ...le_suppression_serverless_essentials.cy.ts | 2 +- .../rule_creation/new_terms_rule.cy.ts | 2 +- .../rule_edit/new_terms_rule.cy.ts | 2 +- .../value_lists/value_list_items.cy.ts | 2 +- .../install_update_authorization.cy.ts | 2 +- .../install_update_error_handling.cy.ts | 2 +- .../prebuilt_rules/install_workflow.cy.ts | 2 +- .../prebuilt_rules/management.cy.ts | 2 +- .../prebuilt_rules/notifications.cy.ts | 4 +- .../related_integrations.cy.ts | 2 +- .../bulk_actions/bulk_edit_rules.cy.ts | 6 +- .../bulk_edit_rules_actions.cy.ts | 2 +- .../import_export/export_rule.cy.ts | 4 +- .../rules_table/rules_table_selection.cy.ts | 94 ++++++++++--------- .../e2e/entity_analytics/entity_flyout.cy.ts | 2 +- .../e2e/explore/inspect/inspect_button.cy.ts | 2 +- .../e2e/explore/ml/ml_conditional_links.cy.ts | 2 +- .../e2e/explore/overview/overview.cy.ts | 2 +- .../unified_components/query_tab.cy.ts | 2 +- 25 files changed, 78 insertions(+), 72 deletions(-) diff --git a/x-pack/plugins/security_solution/scripts/run_cypress/parallel_serverless.ts b/x-pack/plugins/security_solution/scripts/run_cypress/parallel_serverless.ts index d9418b81b538d..2c5ca1e049fae 100644 --- a/x-pack/plugins/security_solution/scripts/run_cypress/parallel_serverless.ts +++ b/x-pack/plugins/security_solution/scripts/run_cypress/parallel_serverless.ts @@ -475,7 +475,8 @@ ${JSON.stringify(argv, null, 2)} !process.env.KIBANA_MKI_USE_LATEST_COMMIT || process.env.KIBANA_MKI_USE_LATEST_COMMIT !== '1' ) { - cypressConfigFile.env.grepTags = '@serverlessQA --@skipInServerless'; + cypressConfigFile.env.grepTags = + '@serverlessQA --@skipInServerless --@skipInServerlessMKI '; } const tier: string = argv.tier; const endpointAddon: boolean = argv.endpointAddon; diff --git a/x-pack/test/security_solution_cypress/cypress/README.md b/x-pack/test/security_solution_cypress/cypress/README.md index d7ec660e1b24d..965d4a3cee13c 100644 --- a/x-pack/test/security_solution_cypress/cypress/README.md +++ b/x-pack/test/security_solution_cypress/cypress/README.md @@ -48,6 +48,7 @@ Note that we use tags in order to select which tests we want to execute: - `@serverlessQA` includes a test in the Serverless test suite for the Kibana release process of serverless. You need to explicitly add this tag to any test you want yo run in CI for the second quality gate. These tests should be stable, otherviswe they will be blocking the release pipeline. They should be alsy critical enough, so that when they fail, there's a high chance of an SDH or blocker issue to be reported. - `@ess` includes a test in the normal, non-Serverless test suite. You need to explicitly add this tag to any test you want to run against a non-Serverless environment. - `@skipInEss` excludes a test from the non-Serverless test suite. The test will not be executed as part for the PR process. All the skipped tests should have a link to a ticket describing the reason why the test got skipped. +- `@skipInServerlessMKI` excludes a test from the execution on any MKI environment (even if it's tagged as `@serverless` or `@serverlessQA`). Could indicate many things, e.g. "the test is flaky in Serverless MKI", "the test has been temporarily excluded, see the comment above why". All the skipped tests should have a link to a ticket describing the reason why the test got skipped. - `@skipInServerless` excludes a test from the Serverless test suite and Serverless QA environment for both, periodic pipeline and second quality gate (even if it's tagged as `@serverless`). Could indicate many things, e.g. "the test is flaky in Serverless", "the test is Flaky in any type of environment", "the test has been temporarily excluded, see the comment above why". All the skipped tests should have a link to a ticket describing the reason why the test got skipped. Please, before opening a PR with a new test, make sure that the test fails. If you never see your test fail you don’t know if your test is actually testing the right thing, or testing anything at all. diff --git a/x-pack/test/security_solution_cypress/cypress/cypress_ci_serverless_qa.config.ts b/x-pack/test/security_solution_cypress/cypress/cypress_ci_serverless_qa.config.ts index c2c3c9abccda1..d0d5dd3f00154 100644 --- a/x-pack/test/security_solution_cypress/cypress/cypress_ci_serverless_qa.config.ts +++ b/x-pack/test/security_solution_cypress/cypress/cypress_ci_serverless_qa.config.ts @@ -19,7 +19,7 @@ export default defineCypressConfig({ env: { grepFilterSpecs: true, grepOmitFiltered: true, - grepTags: '@serverless --@skipInServerless', + grepTags: '@serverless --@skipInServerless --@skipInServerlessMKI', }, execTimeout: 300000, pageLoadTimeout: 300000, diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/common_flows_suppression_serverless_essentials.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/common_flows_suppression_serverless_essentials.cy.ts index a1aae6c8d7b49..684828e8a42ab 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/common_flows_suppression_serverless_essentials.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/common_flows_suppression_serverless_essentials.cy.ts @@ -21,7 +21,7 @@ import { CREATE_RULE_URL } from '../../../../urls/navigation'; describe( 'Detection rules, Alert Suppression for Essentials tier', { - tags: ['@serverless'], + tags: ['@serverless', '@skipServerlessMKI'], env: { ftrConfig: { productTypes: [ diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression.cy.ts index 700403600e6b1..a93d2d5edb3ab 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression.cy.ts @@ -37,7 +37,7 @@ const SUPPRESS_BY_FIELDS = ['agent.type']; describe( 'Detection Rule Creation - EQL Rules - With Alert Suppression', { - tags: ['@ess', '@serverless', '@skipInServerless'], + tags: ['@ess', '@serverless', '@skipServerlessMKI'], // alertSuppressionForNonSequenceEqlRuleEnabled feature flag is also enabled in a global config env: { ftrConfig: { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_sequence.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_sequence.cy.ts index 5c9d6a64e4664..1c8f28a2c2c35 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_sequence.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_sequence.cy.ts @@ -21,7 +21,7 @@ import { describe( 'Detection Rule Creation - EQL Rules - With Alert Suppression', { - tags: ['@ess', '@serverless', '@skipInServerless'], + tags: ['@ess', '@serverless', '@skipServerlessMKI'], // alertSuppressionForNonSequenceEqlRuleEnabled feature flag is also enabled in a global config env: { ftrConfig: { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_serverless_essentials.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_serverless_essentials.cy.ts index 02e81b3d97304..4830c1c50cc6c 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_serverless_essentials.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/event_correlation_rule_suppression_serverless_essentials.cy.ts @@ -28,7 +28,7 @@ const SUPPRESS_BY_FIELDS = ['agent.type']; describe( 'Detection Rule Creation - EQL Rules - With Alert Suppression - Serverless Essentials License', { - tags: ['@serverless', '@skipInServerless'], + tags: ['@serverless', '@skipServerlessMKI'], // alertSuppressionForNonSequenceEqlRuleEnabled feature flag is also enabled in a global config env: { ftrConfig: { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/new_terms_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/new_terms_rule.cy.ts index cb05087f008aa..a93797e8045d2 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/new_terms_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_creation/new_terms_rule.cy.ts @@ -74,7 +74,7 @@ import { openRuleManagementPageViaBreadcrumbs } from '../../../../tasks/rules_ma describe( 'New Terms rules', { - tags: ['@ess', '@serverless'], + tags: ['@ess', '@serverless', '@skipServerlessMKI'], env: { // alertSuppressionForNewTermsRuleEnabled feature flag is also enabled in a global config kbnServerArgs: [ diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/new_terms_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/new_terms_rule.cy.ts index 7604903d2b47e..3bfe7839d6252 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/new_terms_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/new_terms_rule.cy.ts @@ -44,7 +44,7 @@ const rule = getNewTermsRule(); describe( 'Detection rules, New terms, Edit', { - tags: ['@ess', '@serverless'], + tags: ['@ess', '@serverless', '@skipServerlessMKI'], env: { // alertSuppressionForNewTermsRuleEnabled feature flag is also enabled in a global config kbnServerArgs: [ diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts index 9dc094153235a..c8fd74fa64397 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts @@ -43,7 +43,7 @@ import { RULES_MANAGEMENT_URL } from '../../../../urls/rules_management'; describe( 'Value list items', { - tags: ['@ess', '@serverless', '@skipInServerless'], + tags: ['@ess', '@serverless', '@skipServerlessMKI'], env: { ftrConfig: { kbnServerArgs: [ diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_authorization.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_authorization.cy.ts index 4e2b57e7a5e26..c9349ea6d083c 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_authorization.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_authorization.cy.ts @@ -68,7 +68,7 @@ const loginPageAsWriteAuthorizedUser = (url: string) => { // https://github.com/elastic/kibana/issues/179965 describe( 'Detection rules, Prebuilt Rules Installation and Update - Authorization/RBAC', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, + { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => { beforeEach(() => { preventPrebuiltRulesPackageInstallation(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_error_handling.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_error_handling.cy.ts index 0102cfb349edf..f0f5c9c42a8e8 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_error_handling.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_error_handling.cy.ts @@ -39,7 +39,7 @@ import { visitRulesManagementTable } from '../../../../tasks/rules_management'; // https://github.com/elastic/kibana/issues/179970 describe( 'Detection rules, Prebuilt Rules Installation and Update - Error handling', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, + { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => { beforeEach(() => { preventPrebuiltRulesPackageInstallation(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_workflow.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_workflow.cy.ts index 259440f1c2abd..782672ccb1c45 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_workflow.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_workflow.cy.ts @@ -32,7 +32,7 @@ import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common'; describe( 'Detection rules, Prebuilt Rules Installation and Update workflow', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, + { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => { describe('Installation of prebuilt rules', () => { const RULE_1 = createRuleAssetSavedObject({ diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management.cy.ts index 63290d850729c..b49426b9b515a 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management.cy.ts @@ -51,7 +51,7 @@ const rules = Array.from(Array(5)).map((_, i) => { }); // https://github.com/elastic/kibana/issues/179973 -describe('Prebuilt rules', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => { +describe('Prebuilt rules', { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => { beforeEach(() => { login(); deleteAlertsAndRules(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/notifications.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/notifications.cy.ts index 02a59e1b17f2e..f92e4b0f5a1ef 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/notifications.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/notifications.cy.ts @@ -57,7 +57,7 @@ describe( // https://github.com/elastic/kibana/issues/179967 it( 'should NOT display install or update notifications when latest rules are installed', - { tags: ['@skipInServerless'] }, + { tags: ['@skipInServerlessMKI'] }, () => { visitRulesManagementTable(); createAndInstallMockedPrebuiltRules([RULE_1]); @@ -72,7 +72,7 @@ describe( }); // https://github.com/elastic/kibana/issues/179968 - describe('Notifications', { tags: ['@skipInServerless'] }, () => { + describe('Notifications', { tags: ['@skipInServerlessMKI'] }, () => { beforeEach(() => { installPrebuiltRuleAssets([RULE_1]); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts index ad0cc76f623f5..413504800c2a7 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts @@ -47,7 +47,7 @@ import { // https://github.com/elastic/kibana/issues/179943 -describe('Related integrations', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => { +describe('Related integrations', { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => { const DATA_STREAM_NAME = 'logs-related-integrations-test'; const PREBUILT_RULE_NAME = 'Prebuilt rule with related integrations'; const RULE_RELATED_INTEGRATIONS: IntegrationDefinition[] = [ diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts index c98f28fef2da0..573fc2c556abe 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts @@ -183,7 +183,7 @@ describe('Detection rules, bulk edit', { tags: ['@ess', '@serverless'] }, () => }); // github.com/elastic/kibana/issues/179954 - it('Only prebuilt rules selected', { tags: ['@skipInServerless'] }, () => { + it('Only prebuilt rules selected', { tags: ['@skipInServerlessMKI'] }, () => { createAndInstallMockedPrebuiltRules(PREBUILT_RULES); // select Elastic(prebuilt) rules, check if we can't proceed further, as Elastic rules are not editable @@ -204,7 +204,7 @@ describe('Detection rules, bulk edit', { tags: ['@ess', '@serverless'] }, () => // https://github.com/elastic/kibana/issues/179955 it( 'Prebuilt and custom rules selected: user proceeds with custom rules editing', - { tags: ['@skipInServerless'] }, + { tags: ['@skipInServerlessMKI'] }, () => { getRulesManagementTableRows().then((existedRulesRows) => { createAndInstallMockedPrebuiltRules(PREBUILT_RULES); @@ -235,7 +235,7 @@ describe('Detection rules, bulk edit', { tags: ['@ess', '@serverless'] }, () => // https://github.com/elastic/kibana/issues/179956 it( 'Prebuilt and custom rules selected: user cancels action', - { tags: ['@skipInServerless'] }, + { tags: ['@skipInServerlessMKI'] }, () => { createAndInstallMockedPrebuiltRules(PREBUILT_RULES); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts index 5762e273e9686..251932e6e8b30 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts @@ -75,7 +75,7 @@ const expectedSlackMessage = 'Slack action test message'; // https://github.com/elastic/kibana/issues/179958 describe( 'Detection rules, bulk edit of rule actions', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, + { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => { beforeEach(() => { login(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts index 36bdcd7c23379..cc270d41c10a6 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts @@ -96,7 +96,7 @@ describe('Export rules', { tags: ['@ess', '@serverless'] }, () => { // https://github.com/elastic/kibana/issues/179959 it( 'shows a modal saying that no rules can be exported if all the selected rules are prebuilt', - { tags: ['@skipInServerless'] }, + { tags: ['@skipInServerlessMKI'] }, function () { createAndInstallMockedPrebuiltRules(prebuiltRules); @@ -164,7 +164,7 @@ describe('Export rules', { tags: ['@ess', '@serverless'] }, () => { }); // https://github.com/elastic/kibana/issues/180029 - it('exports custom rules with exceptions', { tags: ['@skipInServerless'] }, function () { + it('exports custom rules with exceptions', { tags: ['@skipInServerlessMKI'] }, function () { // one rule with exception, one without it const expectedNumberCustomRulesToBeExported = 2; diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts index b07069b65a4ef..e79f6d1e751bc 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts @@ -35,65 +35,69 @@ const RULE_2 = createRuleAssetSavedObject({ }); // https://github.com/elastic/kibana/issues/179961 -describe('Rules table: selection', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => { - beforeEach(() => { - login(); - /* Create and install two mock rules */ - createAndInstallMockedPrebuiltRules([RULE_1, RULE_2]); - visit(RULES_MANAGEMENT_URL); - waitForPrebuiltDetectionRulesToBeLoaded(); - disableAutoRefresh(); - }); +describe( + 'Rules table: selection', + { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, + () => { + beforeEach(() => { + login(); + /* Create and install two mock rules */ + createAndInstallMockedPrebuiltRules([RULE_1, RULE_2]); + visit(RULES_MANAGEMENT_URL); + waitForPrebuiltDetectionRulesToBeLoaded(); + disableAutoRefresh(); + }); - it('should correctly update the selection label when rules are individually selected and unselected', () => { - waitForPrebuiltDetectionRulesToBeLoaded(); + it('should correctly update the selection label when rules are individually selected and unselected', () => { + waitForPrebuiltDetectionRulesToBeLoaded(); - selectRulesByName(['Test rule 1', 'Test rule 2']); + selectRulesByName(['Test rule 1', 'Test rule 2']); - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '2'); + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '2'); - unselectRulesByName(['Test rule 1', 'Test rule 2']); + unselectRulesByName(['Test rule 1', 'Test rule 2']); - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); - }); + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); + }); - it('should correctly update the selection label when rules are bulk selected and then bulk un-selected', () => { - waitForPrebuiltDetectionRulesToBeLoaded(); + it('should correctly update the selection label when rules are bulk selected and then bulk un-selected', () => { + waitForPrebuiltDetectionRulesToBeLoaded(); - cy.get(SELECT_ALL_RULES_BTN).click(); + cy.get(SELECT_ALL_RULES_BTN).click(); - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); - }); + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); + }); - // Un-select all rules via the Bulk Selection button from the Utility bar - cy.get(SELECT_ALL_RULES_BTN).click(); + // Un-select all rules via the Bulk Selection button from the Utility bar + cy.get(SELECT_ALL_RULES_BTN).click(); - // Current selection should be 0 rules - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); - // Bulk selection button should be back to displaying all rules - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); + // Current selection should be 0 rules + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); + // Bulk selection button should be back to displaying all rules + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); + }); }); - }); - it('should correctly update the selection label when rules are bulk selected and then unselected via the table select all checkbox', () => { - waitForPrebuiltDetectionRulesToBeLoaded(); + it('should correctly update the selection label when rules are bulk selected and then unselected via the table select all checkbox', () => { + waitForPrebuiltDetectionRulesToBeLoaded(); - cy.get(SELECT_ALL_RULES_BTN).click(); + cy.get(SELECT_ALL_RULES_BTN).click(); - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); - }); + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); + }); - // Un-select all rules via the Un-select All checkbox from the table - cy.get(SELECT_ALL_RULES_ON_PAGE_CHECKBOX).click(); + // Un-select all rules via the Un-select All checkbox from the table + cy.get(SELECT_ALL_RULES_ON_PAGE_CHECKBOX).click(); - // Current selection should be 0 rules - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); - // Bulk selection button should be back to displaying all rules - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); + // Current selection should be 0 rules + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); + // Bulk selection button should be back to displaying all rules + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); + }); }); - }); -}); + } +); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/entity_flyout.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/entity_flyout.cy.ts index 18a1cc218ec0e..0b98ae36f1ec9 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/entity_flyout.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/entity_flyout.cy.ts @@ -144,7 +144,7 @@ describe( }); // https://github.com/elastic/kibana/issues/179248 - describe('Managed data section', { tags: ['@skipInServerless'] }, () => { + describe('Managed data section', { tags: ['@skipInServerlessMKI'] }, () => { beforeEach(() => { mockFleetInstalledIntegrations([ { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts index e015d26887148..484ef1e9ed475 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts @@ -27,7 +27,7 @@ const DATA_VIEW = 'auditbeat-*'; // FLAKY: https://github.com/elastic/kibana/issues/178367 describe.skip( 'Inspect Explore pages', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, + { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => { before(() => { // illegal_argument_exception: unknown setting [index.lifecycle.name] diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/ml/ml_conditional_links.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/ml/ml_conditional_links.cy.ts index bcd132c56d10a..70ac94ca3a163 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/ml/ml_conditional_links.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/ml/ml_conditional_links.cy.ts @@ -27,7 +27,7 @@ import { } from '../../../urls/ml_conditional_links'; // FLAKY: https://github.com/elastic/kibana/issues/180748 -describe.skip('ml conditional links', { tags: ['@ess', '@skipInServerless'] }, () => { +describe.skip('ml conditional links', { tags: ['@ess', '@skipInServerlessMKI'] }, () => { beforeEach(() => { login(); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/overview/overview.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/overview/overview.cy.ts index 8ad3315bf36b1..78135fbd77235 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/overview/overview.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/overview/overview.cy.ts @@ -66,7 +66,7 @@ describe('Overview Page', { tags: ['@ess', '@serverless'] }, () => { }); }); -describe('Overview page with no data', { tags: '@skipInServerless' }, () => { +describe('Overview page with no data', { tags: '@skipInServerlessMKI' }, () => { it('Splash screen should be here', () => { login(); visitWithTimeRange(OVERVIEW_URL); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/unified_components/query_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/unified_components/query_tab.cy.ts index c54b593472dcd..625beff4fe21a 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/unified_components/query_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/unified_components/query_tab.cy.ts @@ -28,7 +28,7 @@ import { ALERTS_URL } from '../../../../urls/navigation'; describe( 'Unsaved Timeline query tab', { - tags: ['@ess', '@serverless', '@skipInServerless'], + tags: ['@ess', '@serverless', '@skipInServerlessMKI'], env: { ftrConfig: { kbnServerArgs: [ From 800289c506aeceb7e1dffa650481d7e10dc5e70c Mon Sep 17 00:00:00 2001 From: Konrad Szwarc <konrad.szwarc@elastic.co> Date: Wed, 24 Apr 2024 10:59:00 +0200 Subject: [PATCH 103/183] [EDR Workflows] Proper undefined routeState handling (#181432) https://github.com/elastic/kibana/issues/181261 Check if `routeState` is defined before accessing it's properties in `useCallback` dependency list. With changes: https://github.com/elastic/kibana/assets/29123534/4561c5d6-e354-4e0b-ac8a-dd231a26d722 Cypress tests when no undefined check is performed (application throws): ![Screenshot 2024-04-23 at 14 46 37](https://github.com/elastic/kibana/assets/29123534/ed7817dc-f11c-4f5e-bdf3-c6ee9f4c8ea6) --- .../e2e/artifacts/artifact_tabs_in_policy_details.cy.ts | 6 ++++++ .../public/management/cypress/fixtures/artifacts_page.ts | 9 +++++---- .../management/pages/policy/view/tabs/policy_tabs.tsx | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/artifacts/artifact_tabs_in_policy_details.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/artifacts/artifact_tabs_in_policy_details.cy.ts index b6040691c485f..3feb681f47f5c 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/artifacts/artifact_tabs_in_policy_details.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/artifacts/artifact_tabs_in_policy_details.cy.ts @@ -56,6 +56,10 @@ const getRoleWithoutArtifactPrivilege = (privilegePrefix: string) => { const visitArtifactTab = (tabId: string) => { visitPolicyDetailsPage(); + clickArtifactTab(tabId); +}; + +const clickArtifactTab = (tabId: string) => { cy.get(`#${tabId}`).click(); }; @@ -135,6 +139,8 @@ describe('Artifact tabs in Policy Details page', { tags: ['@ess', '@serverless'] cy.getByTestSubj('backToOrigin').click(); cy.getByTestSubj('policyDetailsPage').should('exist'); + clickArtifactTab(testData.nextTabId); // Make sure the next tab is accessible and backLink doesn't throw errors + cy.getByTestSubj('policyDetailsPage'); }); }); diff --git a/x-pack/plugins/security_solution/public/management/cypress/fixtures/artifacts_page.ts b/x-pack/plugins/security_solution/public/management/cypress/fixtures/artifacts_page.ts index bbd173b60cb88..f47818208cb8f 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/fixtures/artifacts_page.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/fixtures/artifacts_page.ts @@ -21,6 +21,7 @@ interface ArtifactsFixtureType { title: string; pagePrefix: string; tabId: string; + nextTabId: string; artifactName: string; privilegePrefix: string; urlPath: string; @@ -46,6 +47,7 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ title: 'Trusted applications', pagePrefix: 'trustedAppsListPage', tabId: 'trustedApps', + nextTabId: 'eventFilters', artifactName: 'Trusted application name', privilegePrefix: 'trusted_applications_', create: { @@ -142,7 +144,6 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ }, urlPath: 'trusted_apps', emptyState: 'trustedAppsListPage-emptyState', - createRequestBody: { list_id: ENDPOINT_ARTIFACT_LISTS.trustedApps.id, entries: [ @@ -172,6 +173,7 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ title: 'Event Filters', pagePrefix: 'EventFiltersListPage', tabId: 'eventFilters', + nextTabId: 'blocklists', artifactName: 'Event filter name', privilegePrefix: 'event_filters_', create: { @@ -274,7 +276,6 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ }, urlPath: 'event_filters', emptyState: 'EventFiltersListPage-emptyState', - createRequestBody: { list_id: ENDPOINT_ARTIFACT_LISTS.eventFilters.id, entries: [ @@ -292,6 +293,7 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ title: 'Blocklist', pagePrefix: 'blocklistPage', tabId: 'blocklists', + nextTabId: 'hostIsolationExceptions', artifactName: 'Blocklist name', privilegePrefix: 'blocklist_', create: { @@ -397,7 +399,6 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ }, urlPath: 'blocklist', emptyState: 'blocklistPage-emptyState', - createRequestBody: { list_id: ENDPOINT_ARTIFACT_LISTS.blocklists.id, entries: [ @@ -421,6 +422,7 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ title: 'Host isolation exceptions', pagePrefix: 'hostIsolationExceptionsListPage', tabId: 'hostIsolationExceptions', + nextTabId: 'trustedApps', artifactName: 'Host Isolation exception name', privilegePrefix: 'host_isolation_exceptions_', create: { @@ -499,7 +501,6 @@ export const getArtifactsListTestsData = (): ArtifactsFixtureType[] => [ }, urlPath: 'host_isolation_exceptions', emptyState: 'hostIsolationExceptionsListPage-emptyState', - createRequestBody: { list_id: ENDPOINT_ARTIFACT_LISTS.hostIsolationExceptions.id, entries: [ diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/tabs/policy_tabs.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/tabs/policy_tabs.tsx index 5b37aa798effd..fd7e8793535e2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/tabs/policy_tabs.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/tabs/policy_tabs.tsx @@ -457,7 +457,7 @@ export const PolicyTabs = React.memo(() => { cancelUnsavedChangesModal, history, policyId, - routeState.backLink, + routeState?.backLink, unsavedChangesModal.showModal, ] ); From ba76b505b1faa2e3ca69d8eb2d822843fb8a6440 Mon Sep 17 00:00:00 2001 From: Dario Gieselaar <dario.gieselaar@elastic.co> Date: Wed, 24 Apr 2024 11:28:59 +0200 Subject: [PATCH 104/183] [Obs AI Assistant] Instructions & Claude improvements (#181058) When we send over a conversation to the LLM for completion, we include a system message. System messages are a way for the consumer (in this case, us as developers) to control the LLM's behavior. This system message was previously constructed by using a concept called `ContextDefinition` - originally this was a way to define a set of functions and behavior for a specific context, e.g. core functionality, APM-specific functionality, platform-specific functionality etc. However we never actually did anything with this, and much of its intended functionality is now captured with the screen context API. In https://github.com/elastic/kibana/issues/179736, we added user instructions, which are ways for the user to control the Assistant's behaviour, by appending to the system message we construct with the registered context definitions. With this PR, we are making several changes: - Remove the concept of concept definitions entirely - Replace it with `registerInstruction`, which allows the consumer to register pieces of text that will be included in the system message. - `registerInstruction` _also_ takes a callback. That callback receives the available function names for that specific chat request. For instance, when we reach the function call limit, the LLM will have no functions to call. This allows consumers to cater their instructions to this specific scenario, which somewhat limits the possibility of the LLM calling a function that it is not allowed to - Claude is especially prone to this (likely related to the fact we use simulated function calling). This leads to the following functional changes: - A system message is now constructed by combining the registered instructions (system-specific) with the knowledge base and request instructions (user-specific) - `GET /internal/observability_ai_assistant/functions` no longer returns the contexts. Instead it returns the system message - `GET /internal/observability_ai_assistant/chat/complete` now creates a system message at the start, and overrides the system message from the request. - For each invocation of `chat`, it re-calculates the system message by "materializing" the registered instructions with the available function names for that chat invocation Additionally, I've made some attempted improvements to simulated function calling: - simplified the system message - more emphasis on generating valid JSON (e.g. I saw multiline delimiters `"""` which are not supported) - more emphasis on not providing any input if the function does not accept any parameters. e.g. Claude was trying to provide entire search requests or SPL-like query strings as input, which led to hallucinations) There are also some other changes, which I've commented on in the file changes. **Addendum: I have pushed some more changes, related to the evaluation framework (and running it with Claude). Will comment inline in [`9ebd207` (#181058)](https://github.com/elastic/kibana/pull/181058/commits/9ebd207acd47c33077627356c464958240c9d446).** --- .../get_apm_dataset_info.ts | 1 - .../get_apm_downstream_dependencies.ts | 4 +- .../get_apm_services_list.ts | 1 - .../assistant_functions/get_apm_timeseries.ts | 1 - .../apm/server/assistant_functions/index.ts | 2 +- .../common/functions/types.ts | 9 - .../common/types.ts | 2 + .../utils/emit_with_concatenated_message.ts | 41 ++-- .../common/utils/extend_system_message.tsx | 22 -- .../utils/filter_function_definitions.ts | 8 +- ...throw_serialized_chat_completion_errors.ts | 14 +- .../message_panel/esql_code_block.tsx | 64 ++++-- .../components/message_panel/message_text.tsx | 13 +- .../public/hooks/use_chat.test.ts | 8 +- .../public/hooks/use_chat.ts | 10 +- .../public/index.ts | 2 - .../public/mock.tsx | 10 +- .../public/service/create_chat_service.ts | 17 +- .../service/create_mock_chat_service.ts | 9 +- .../service/get_assistant_system_message.ts | 28 --- .../public/storybook_mock.tsx | 9 +- .../public/types.ts | 8 +- .../public/utils/builders.ts | 2 - .../scripts/evaluation/evaluation.ts | 19 +- .../scripts/evaluation/kibana_client.ts | 188 +++++++++++------- .../evaluation/scenarios/apm/index.spec.ts | 40 ++-- .../scenarios/elasticsearch/index.spec.ts | 4 +- .../evaluation/scenarios/esql/index.spec.ts | 25 +-- .../server/functions/context.ts | 9 - .../server/functions/elasticsearch.ts | 3 +- .../server/functions/execute_connector.ts | 1 - .../functions/get_dataset_info/index.ts | 1 - .../server/functions/index.ts | 135 ++++++------- .../server/functions/kibana.ts | 1 - .../server/functions/summarize.ts | 8 +- .../server/routes/functions/route.ts | 32 ++- .../chat_function_client/index.test.ts | 6 - .../service/chat_function_client/index.ts | 31 ++- .../bedrock/process_bedrock_stream.test.ts | 4 +- .../get_system_message_instructions.ts | 23 +-- .../parse_inline_function_calls.ts | 28 +-- .../server/service/client/index.test.ts | 49 ++--- .../server/service/client/index.ts | 116 ++++++----- .../server/service/types.ts | 18 +- .../catch_function_limit_exceeded_error.ts | 66 ++++++ ...t_system_message_from_instructions.test.ts | 78 ++++++++ .../get_system_message_from_instructions.ts | 62 ++++++ .../service/util/replace_system_message.ts | 21 ++ .../components/chat/chat_body.stories.tsx | 8 +- .../components/chat/chat_flyout.stories.tsx | 4 +- .../public/utils/builders.ts | 6 +- .../public/utils/create_mock_chat_service.ts | 13 +- .../server/functions/alerts.ts | 1 - .../server/functions/changes/index.ts | 1 - .../correct_common_esql_mistakes.test.ts | 19 ++ .../query/correct_common_esql_mistakes.ts | 4 +- .../query/correct_query_with_actions.ts | 1 + .../server/functions/query/index.ts | 74 +++++-- .../functions/query/validate_esql_query.ts | 71 +++++++ .../server/functions/visualize_esql.ts | 39 +--- .../server/rule_connector/index.test.ts | 6 +- .../server/rule_connector/index.ts | 11 +- 62 files changed, 960 insertions(+), 551 deletions(-) delete mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/extend_system_message.tsx delete mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant/public/service/get_assistant_system_message.ts create mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/catch_function_limit_exceeded_error.ts create mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.test.ts create mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.ts create mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/replace_system_message.ts create mode 100644 x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/validate_esql_query.ts diff --git a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_dataset_info.ts b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_dataset_info.ts index a2821ff913f0b..e0f3f82128ddd 100644 --- a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_dataset_info.ts +++ b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_dataset_info.ts @@ -20,7 +20,6 @@ export function registerGetApmDatasetInfoFunction({ registerFunction( { name: 'get_apm_dataset_info', - contexts: ['core'], visibility: FunctionVisibility.AssistantOnly, description: `Use this function to get information about APM data.`, parameters: { diff --git a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_downstream_dependencies.ts b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_downstream_dependencies.ts index 419cdcd1e6dce..c1d1c511dac4d 100644 --- a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_downstream_dependencies.ts +++ b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_downstream_dependencies.ts @@ -16,7 +16,6 @@ export function registerGetApmDownstreamDependenciesFunction({ registerFunction( { name: 'get_apm_downstream_dependencies', - contexts: ['core'], description: `Get the downstream dependencies (services or uninstrumented backends) for a service. This allows you to map the downstream dependency name to a service, by returning both span.destination.service.resource and service.name. Use this to @@ -39,7 +38,8 @@ export function registerGetApmDownstreamDependenciesFunction({ }, 'service.environment': { type: 'string', - description: 'The environment that the service is running in', + description: + 'The environment that the service is running in. Leave empty to query for all environments.', }, start: { type: 'string', diff --git a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_services_list.ts b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_services_list.ts index 325d73b55070d..1ca34117f5f9d 100644 --- a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_services_list.ts +++ b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_services_list.ts @@ -22,7 +22,6 @@ export function registerGetApmServicesListFunction({ registerFunction( { name: 'get_apm_services_list', - contexts: ['apm'], description: `Gets a list of services`, descriptionForUser: i18n.translate( 'xpack.apm.observabilityAiAssistant.functions.registerGetApmServicesList.descriptionForUser', diff --git a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_timeseries.ts b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_timeseries.ts index 4d5cd841ff4d1..63bdbd422c658 100644 --- a/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_timeseries.ts +++ b/x-pack/plugins/observability_solution/apm/server/assistant_functions/get_apm_timeseries.ts @@ -122,7 +122,6 @@ export function registerGetApmTimeseriesFunction({ }: FunctionRegistrationParameters) { registerFunction( { - contexts: ['core'], name: 'get_apm_timeseries', description: `Visualise and analyse different APM metrics, like throughput, failure rate, or latency, for any service or all services, or any or all of its dependencies, both as a timeseries and as a single statistic. A visualisation will be displayed above your reply - DO NOT attempt to display or generate an image yourself, or any other placeholder. Additionally, the function will return any changes, such as spikes, step and trend changes, or dips. You can also use it to compare data by requesting two different time ranges, or for instance two different service versions.`, parameters, diff --git a/x-pack/plugins/observability_solution/apm/server/assistant_functions/index.ts b/x-pack/plugins/observability_solution/apm/server/assistant_functions/index.ts index eebbcf021426c..ccc643cf4dc76 100644 --- a/x-pack/plugins/observability_solution/apm/server/assistant_functions/index.ts +++ b/x-pack/plugins/observability_solution/apm/server/assistant_functions/index.ts @@ -48,7 +48,7 @@ export function registerAssistantFunctions({ ruleDataClient: IRuleDataClient; plugins: APMRouteHandlerResources['plugins']; }): RegistrationCallback { - return async ({ resources, functions: { registerContext, registerFunction } }) => { + return async ({ resources, functions: { registerFunction } }) => { const apmRouteHandlerResources: MinimalAPMRouteHandlerResources = { context: resources.context, request: resources.request, diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/types.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/types.ts index 12feb88bb6582..bd786e9ba3c75 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/types.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/types.ts @@ -28,11 +28,6 @@ export type CompatibleJSONSchema = { description?: string; }; -export interface ContextDefinition { - name: string; - description: string; -} - export type FunctionResponse = | { content?: any; @@ -46,10 +41,6 @@ export interface FunctionDefinition<TParameters extends CompatibleJSONSchema = a visibility?: FunctionVisibility; descriptionForUser?: string; parameters?: TParameters; - contexts: string[]; } -export type RegisterContextDefinition = (options: ContextDefinition) => void; - -export type ContextRegistry = Map<string, ContextDefinition>; export type FunctionRegistry = Map<string, FunctionDefinition>; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts index a51db2ebc0fc6..77e9fd33532ca 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/common/types.ts @@ -94,6 +94,8 @@ export interface UserInstruction { text: string; } +export type UserInstructionOrPlainText = string | UserInstruction; + export interface ObservabilityAIAssistantScreenContextRequest { screenDescription?: string; data?: Array<{ diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/emit_with_concatenated_message.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/emit_with_concatenated_message.ts index b3df0af4b2eb4..af283b78698f1 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/emit_with_concatenated_message.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/emit_with_concatenated_message.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { concat, last, mergeMap, Observable, shareReplay, withLatestFrom } from 'rxjs'; +import { concat, from, last, mergeMap, Observable, shareReplay, withLatestFrom } from 'rxjs'; import { ChatCompletionChunkEvent, MessageAddEvent, @@ -16,8 +16,32 @@ import { ConcatenatedMessage, } from './concatenate_chat_completion_chunks'; +type ConcatenateMessageCallback = ( + concatenatedMessage: ConcatenatedMessage +) => Promise<ConcatenatedMessage>; + +function mergeWithEditedMessage( + originalMessage: ConcatenatedMessage, + chunkEvent: ChatCompletionChunkEvent, + callback?: ConcatenateMessageCallback +): Observable<MessageAddEvent> { + return from( + (callback ? callback(originalMessage) : Promise.resolve(originalMessage)).then((message) => { + const next: MessageAddEvent = { + type: StreamingChatResponseEventType.MessageAdd as const, + id: chunkEvent.id, + message: { + '@timestamp': new Date().toISOString(), + ...message, + }, + }; + return next; + }) + ); +} + export function emitWithConcatenatedMessage( - callback?: (concatenatedMessage: ConcatenatedMessage) => Promise<ConcatenatedMessage> + callback?: ConcatenateMessageCallback ): ( source$: Observable<ChatCompletionChunkEvent> ) => Observable<ChatCompletionChunkEvent | MessageAddEvent> { @@ -30,17 +54,8 @@ export function emitWithConcatenatedMessage( concatenateChatCompletionChunks(), last(), withLatestFrom(source$), - mergeMap(async ([message, chunkEvent]) => { - const next: MessageAddEvent = { - type: StreamingChatResponseEventType.MessageAdd as const, - id: chunkEvent.id, - message: { - '@timestamp': new Date().toISOString(), - ...(callback ? await callback(message) : message), - }, - }; - - return next; + mergeMap(([message, chunkEvent]) => { + return mergeWithEditedMessage(message, chunkEvent, callback); }) ) ); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/extend_system_message.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/extend_system_message.tsx deleted file mode 100644 index 77a7d99c763ee..0000000000000 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/extend_system_message.tsx +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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 { Message } from '../types'; - -export function extendSystemMessage(messages: Message[], extensions: string[]) { - const [systemMessage, ...rest] = messages; - - const extendedSystemMessage: Message = { - ...systemMessage, - message: { - ...systemMessage.message, - content: `${systemMessage.message.content}\n\n${extensions.join('\n\n').trim()}`, - }, - }; - - return [extendedSystemMessage].concat(rest); -} diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/filter_function_definitions.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/filter_function_definitions.ts index 63b7661ee105a..b9d41fb498056 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/filter_function_definitions.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/filter_function_definitions.ts @@ -8,22 +8,18 @@ import type { FunctionDefinition } from '../functions/types'; export function filterFunctionDefinitions({ - contexts, filter, definitions, }: { - contexts?: string[]; filter?: string; definitions: FunctionDefinition[]; }) { - return contexts || filter + return filter ? definitions.filter((fn) => { - const matchesContext = - !contexts || fn.contexts.some((context) => contexts.includes(context)); const matchesFilter = !filter || fn.name.includes(filter) || fn.description.includes(filter); - return matchesContext && matchesFilter; + return matchesFilter; }) : definitions; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/throw_serialized_chat_completion_errors.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/throw_serialized_chat_completion_errors.ts index 8e4718158280b..2c23109a1bac0 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/throw_serialized_chat_completion_errors.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/common/utils/throw_serialized_chat_completion_errors.ts @@ -5,20 +5,21 @@ * 2.0. */ -import { filter, Observable, tap } from 'rxjs'; +import { filter, OperatorFunction, tap } from 'rxjs'; import { ChatCompletionError, ChatCompletionErrorCode, type StreamingChatResponseEvent, StreamingChatResponseEventType, type ChatCompletionErrorEvent, + BufferFlushEvent, } from '../conversation_complete'; -export function throwSerializedChatCompletionErrors() { - return <T extends StreamingChatResponseEvent>( - source$: Observable<StreamingChatResponseEvent> - ): Observable<Exclude<T, ChatCompletionErrorEvent>> => { - return source$.pipe( +export function throwSerializedChatCompletionErrors< + T extends StreamingChatResponseEvent | BufferFlushEvent +>(): OperatorFunction<T, Exclude<T, ChatCompletionErrorEvent>> { + return (source$) => + source$.pipe( tap((event) => { // de-serialise error if (event.type === StreamingChatResponseEventType.ChatCompletionError) { @@ -33,5 +34,4 @@ export function throwSerializedChatCompletionErrors() { event.type !== StreamingChatResponseEventType.ChatCompletionError ) ); - }; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/esql_code_block.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/esql_code_block.tsx index 4fe05d323572f..24347c3aadb5e 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/esql_code_block.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/esql_code_block.tsx @@ -10,6 +10,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiPanel, + UseEuiTheme, useEuiTheme, } from '@elastic/eui'; import { css } from '@emotion/css'; @@ -17,6 +18,47 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import { ChatActionClickHandler, ChatActionClickType } from '../chat/types'; +const getCodeBlockClassName = (theme: UseEuiTheme) => css` + background-color: ${theme.euiTheme.colors.lightestShade}; + .euiCodeBlock__pre { + margin-bottom: 0; + padding: ${theme.euiTheme.size.m}; + min-block-size: 48px; + } + .euiCodeBlock__controls { + inset-block-start: ${theme.euiTheme.size.m}; + inset-inline-end: ${theme.euiTheme.size.m}; + } +`; + +function CodeBlockWrapper({ children }: { children: React.ReactNode }) { + const theme = useEuiTheme(); + return ( + <EuiPanel + hasShadow={false} + hasBorder={false} + paddingSize="s" + className={getCodeBlockClassName(theme)} + > + {children} + </EuiPanel> + ); +} + +export function CodeBlock({ children }: { children: React.ReactNode }) { + return ( + <CodeBlockWrapper> + <EuiFlexGroup direction="column" gutterSize="xs"> + <EuiFlexItem grow={false}> + <EuiCodeBlock isCopyable fontSize="m"> + {children} + </EuiCodeBlock> + </EuiFlexItem> + </EuiFlexGroup> + </CodeBlockWrapper> + ); +} + export function EsqlCodeBlock({ value, actionsDisabled, @@ -26,26 +68,8 @@ export function EsqlCodeBlock({ actionsDisabled: boolean; onActionClick: ChatActionClickHandler; }) { - const theme = useEuiTheme(); - return ( - <EuiPanel - hasShadow={false} - hasBorder={false} - paddingSize="s" - className={css` - background-color: ${theme.euiTheme.colors.lightestShade}; - .euiCodeBlock__pre { - margin-bottom: 0; - padding: ${theme.euiTheme.size.m}; - min-block-size: 48px; - } - .euiCodeBlock__controls { - inset-block-start: ${theme.euiTheme.size.m}; - inset-inline-end: ${theme.euiTheme.size.m}; - } - `} - > + <CodeBlockWrapper> <EuiFlexGroup direction="column" gutterSize="xs"> <EuiFlexItem grow={false}> <EuiCodeBlock isCopyable fontSize="m"> @@ -87,6 +111,6 @@ export function EsqlCodeBlock({ </EuiFlexGroup> </EuiFlexItem> </EuiFlexGroup> - </EuiPanel> + </CodeBlockWrapper> ); } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/message_text.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/message_text.tsx index 337ae9503fe65..85fa0f4609903 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/message_text.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/message_panel/message_text.tsx @@ -21,7 +21,7 @@ import type { Code, InlineCode, Parent, Text } from 'mdast'; import React, { useMemo, useRef } from 'react'; import type { Node } from 'unist'; import { ChatActionClickHandler } from '../chat/types'; -import { EsqlCodeBlock } from './esql_code_block'; +import { CodeBlock, EsqlCodeBlock } from './esql_code_block'; interface Props { content: string; @@ -104,6 +104,9 @@ const esqlLanguagePlugin = () => { if (node.type === 'code' && node.lang === 'esql') { node.type = 'esql'; + } else if (node.type === 'code') { + // switch to type that allows us to control rendering + node.type = 'codeBlock'; } }; @@ -131,6 +134,14 @@ export function MessageText({ loading, content, onActionClick }: Props) { processingPlugins[1][1].components = { ...components, cursor: Cursor, + codeBlock: (props) => { + return ( + <> + <CodeBlock>{props.value}</CodeBlock> + <EuiSpacer size="m" /> + </> + ); + }, esql: (props) => { return ( <> diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.test.ts index 838feb18330e7..1f36b49175eea 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.test.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.test.ts @@ -26,11 +26,17 @@ const mockChatService: MockedChatService = { chat: jest.fn(), complete: jest.fn(), sendAnalyticsEvent: jest.fn(), - getContexts: jest.fn().mockReturnValue([{ name: 'core', description: '' }]), getFunctions: jest.fn().mockReturnValue([]), hasFunction: jest.fn().mockReturnValue(false), hasRenderFunction: jest.fn().mockReturnValue(true), renderFunction: jest.fn(), + getSystemMessage: jest.fn().mockReturnValue({ + '@timestamp': new Date().toISOString(), + message: { + content: 'system', + role: MessageRole.System, + }, + }), }; const addErrorMock = jest.fn(); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.ts index 2ab4fd294dffa..7291557642669 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/hooks/use_chat.ts @@ -18,11 +18,7 @@ import { isTokenLimitReachedError, StreamingChatResponseEventType, } from '../../common'; -import { - getAssistantSystemMessage, - type ObservabilityAIAssistantChatService, - type ObservabilityAIAssistantService, -} from '..'; +import type { ObservabilityAIAssistantChatService, ObservabilityAIAssistantService } from '..'; import { useKibana } from './use_kibana'; import { useOnce } from './use_once'; import { useUserPreferredLanguage } from './use_user_preferred_language'; @@ -75,13 +71,11 @@ function useChatWithoutContext({ persist, }: UseChatPropsWithoutContext): UseChatResult { const [chatState, setChatState] = useState(ChatState.Ready); - const systemMessage = useMemo(() => { - return getAssistantSystemMessage({ contexts: chatService.getContexts() }); + return chatService.getSystemMessage(); }, [chatService]); useOnce(initialMessages); - useOnce(initialConversationId); const [conversationId, setConversationId] = useState(initialConversationId); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts index d42c96715523e..52d2511f9877f 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/index.ts @@ -57,8 +57,6 @@ export { VISUALIZE_ESQL_USER_INTENTIONS, } from '../common/functions/visualize_esql'; -export { getAssistantSystemMessage } from './service/get_assistant_system_message'; - export { isSupportedConnectorType } from '../common'; export { FunctionVisibility } from '../common'; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/mock.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/public/mock.tsx index c38307e920641..28b05433b2e1e 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/mock.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/mock.tsx @@ -9,7 +9,7 @@ import { noop } from 'lodash'; import React from 'react'; import { Observable, of } from 'rxjs'; import type { StreamingChatResponseEventWithoutError } from '../common/conversation_complete'; -import { ScreenContextActionDefinition } from '../common/types'; +import { MessageRole, ScreenContextActionDefinition } from '../common/types'; import type { ObservabilityAIAssistantAPIClient } from './api'; import type { ObservabilityAIAssistantChatService, @@ -23,7 +23,6 @@ export const mockChatService: ObservabilityAIAssistantChatService = { sendAnalyticsEvent: noop, chat: (options) => new Observable<StreamingChatResponseEventWithoutError>(), complete: (options) => new Observable<StreamingChatResponseEventWithoutError>(), - getContexts: () => [], getFunctions: () => [buildFunctionElasticsearch(), buildFunctionServiceSummary()], renderFunction: (name) => ( <div> @@ -35,6 +34,13 @@ export const mockChatService: ObservabilityAIAssistantChatService = { ), hasFunction: () => true, hasRenderFunction: () => true, + getSystemMessage: () => ({ + '@timestamp': new Date().toISOString(), + message: { + role: MessageRole.System, + content: '', + }, + }), }; export const mockService: ObservabilityAIAssistantService = { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_chat_service.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_chat_service.ts index 09c12004591aa..4995aa1b584ba 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_chat_service.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_chat_service.ts @@ -22,6 +22,7 @@ import { switchMap, timestamp, } from 'rxjs'; +import { Message, MessageRole } from '../../common'; import { type BufferFlushEvent, StreamingChatResponseEventType, @@ -106,7 +107,7 @@ export async function createChatService({ const renderFunctionRegistry: Map<string, RenderFunction<unknown, FunctionResponse>> = new Map(); - const [{ functionDefinitions, contextDefinitions }] = await Promise.all([ + const [{ functionDefinitions, systemMessage }] = await Promise.all([ apiClient('GET /internal/observability_ai_assistant/functions', { signal: setupAbortSignal, }), @@ -133,9 +134,7 @@ export async function createChatService({ const client: Pick<ObservabilityAIAssistantChatService, 'chat' | 'complete'> = { chat(name: string, { connectorId, messages, function: callFunctions = 'auto', signal }) { return new Observable<StreamingChatResponseEventWithoutError>((subscriber) => { - const contexts = ['core', 'apm']; - - const functions = getFunctions({ contexts }).filter((fn) => { + const functions = getFunctions().filter((fn) => { const visibility = fn.visibility ?? FunctionVisibility.All; return ( @@ -270,7 +269,6 @@ export async function createChatService({ onActionClick, }); }, - getContexts: () => contextDefinitions, getFunctions, hasFunction: (name: string) => { return functionRegistry.has(name); @@ -278,6 +276,15 @@ export async function createChatService({ hasRenderFunction: (name: string) => { return renderFunctionRegistry.has(name); }, + getSystemMessage: (): Message => { + return { + '@timestamp': new Date().toISOString(), + message: { + role: MessageRole.System, + content: systemMessage, + }, + }; + }, ...client, }; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_mock_chat_service.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_mock_chat_service.ts index caef109f237fc..fc26499b1f63e 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_mock_chat_service.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/create_mock_chat_service.ts @@ -6,6 +6,7 @@ */ import type { DeeplyMockedKeys } from '@kbn/utility-types-jest'; +import { MessageRole } from '../../common'; import type { ObservabilityAIAssistantChatService } from '../types'; type MockedChatService = DeeplyMockedKeys<ObservabilityAIAssistantChatService>; @@ -15,11 +16,17 @@ export const createMockChatService = (): MockedChatService => { chat: jest.fn(), complete: jest.fn(), sendAnalyticsEvent: jest.fn(), - getContexts: jest.fn().mockReturnValue([{ name: 'core', description: '' }]), getFunctions: jest.fn().mockReturnValue([]), hasFunction: jest.fn().mockReturnValue(false), hasRenderFunction: jest.fn().mockReturnValue(true), renderFunction: jest.fn(), + getSystemMessage: jest.fn().mockReturnValue({ + '@timestamp': new Date().toISOString(), + message: { + role: MessageRole.System, + content: 'system', + }, + }), }; return mockChatService; }; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/get_assistant_system_message.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/get_assistant_system_message.ts deleted file mode 100644 index b1050b8caa4a9..0000000000000 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/service/get_assistant_system_message.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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 { without } from 'lodash'; -import { MessageRole } from '../../common'; -import { ContextDefinition } from '../../common/functions/types'; -import type { Message } from '../../common/types'; - -export function getAssistantSystemMessage({ - contexts, -}: { - contexts: ContextDefinition[]; -}): Message { - const coreContext = contexts.find((context) => context.name === 'core')!; - - const otherContexts = without(contexts.concat(), coreContext); - return { - '@timestamp': new Date().toISOString(), - message: { - role: MessageRole.System as const, - content: [coreContext, ...otherContexts].map((context) => context.description).join('\n'), - }, - }; -} diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/storybook_mock.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/public/storybook_mock.tsx index 01c2f658e360b..1d9d79838bd3a 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/storybook_mock.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/storybook_mock.tsx @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import { noop } from 'lodash'; import React from 'react'; import { Observable, of } from 'rxjs'; +import { MessageRole } from '.'; import type { StreamingChatResponseEventWithoutError } from '../common/conversation_complete'; import type { ObservabilityAIAssistantAPIClient } from './api'; import type { ObservabilityAIAssistantChatService, ObservabilityAIAssistantService } from './types'; @@ -17,7 +18,6 @@ export const createStorybookChatService = (): ObservabilityAIAssistantChatServic sendAnalyticsEvent: () => {}, chat: (options) => new Observable<StreamingChatResponseEventWithoutError>(), complete: (options) => new Observable<StreamingChatResponseEventWithoutError>(), - getContexts: () => [], getFunctions: () => [buildFunctionElasticsearch(), buildFunctionServiceSummary()], renderFunction: (name) => ( <div> @@ -29,6 +29,13 @@ export const createStorybookChatService = (): ObservabilityAIAssistantChatServic ), hasFunction: () => true, hasRenderFunction: () => true, + getSystemMessage: () => ({ + '@timestamp': new Date().toISOString(), + message: { + role: MessageRole.System, + content: '', + }, + }), }); export const createStorybookService = (): ObservabilityAIAssistantService => ({ diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts index 071e8e748ebf4..0567324e164dc 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts @@ -14,11 +14,7 @@ import type { MessageAddEvent, StreamingChatResponseEventWithoutError, } from '../common/conversation_complete'; -import type { - ContextDefinition, - FunctionDefinition, - FunctionResponse, -} from '../common/functions/types'; +import type { FunctionDefinition, FunctionResponse } from '../common/functions/types'; import type { Message, ObservabilityAIAssistantScreenContext, @@ -60,9 +56,9 @@ export interface ObservabilityAIAssistantChatService { signal: AbortSignal; responseLanguage: string; }) => Observable<StreamingChatResponseEventWithoutError>; - getContexts: () => ContextDefinition[]; getFunctions: (options?: { contexts?: string[]; filter?: string }) => FunctionDefinition[]; hasFunction: (name: string) => boolean; + getSystemMessage: () => Message; hasRenderFunction: (name: string) => boolean; renderFunction: ( name: string, diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/utils/builders.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/utils/builders.ts index a7f9df09b47a5..e233bf6da5d11 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/utils/builders.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/utils/builders.ts @@ -10,7 +10,6 @@ import type { FunctionDefinition } from '../../common/functions/types'; export function buildFunction(): FunctionDefinition { return { name: 'elasticsearch', - contexts: ['core'], description: 'Call Elasticsearch APIs on behalf of the user', descriptionForUser: 'Call Elasticsearch APIs on behalf of the user', parameters: { @@ -36,7 +35,6 @@ export const buildFunctionElasticsearch = buildFunction; export function buildFunctionServiceSummary(): FunctionDefinition { return { name: 'get_service_summary', - contexts: ['core'], description: 'Gets a summary of a single service, including: the language, service version, deployments, infrastructure, alerting, etc. ', descriptionForUser: 'Get a summary for a single service.', diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/evaluation.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/evaluation.ts index 24797ab42269e..650a5cedceaa8 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/evaluation.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/evaluation.ts @@ -125,7 +125,7 @@ function runEvaluations() { const mocha = new Mocha({ grep: argv.grep, - timeout: '5m', + timeout: '10m', }); const chatClient = kibanaClient.createChatClient({ @@ -253,7 +253,7 @@ function runEvaluations() { mocha.addFile(filename); } - return new Promise((resolve, reject) => { + return new Promise<void>((resolve, reject) => { mocha.run((failures: any) => { if (failures) { log.write(table.table(failedScenarios, tableConfig)); @@ -262,6 +262,21 @@ function runEvaluations() { } resolve(); }); + }).finally(() => { + const score = results + .flatMap((result) => result.scores) + .reduce( + (prev, result) => { + prev.score += result.score; + prev.total += 1; + return prev; + }, + { score: 0, total: 0 } + ); + + log.write('-------------------------------------------'); + log.write(`Scored ${score.score} out of ${score.total}`); + log.write('-------------------------------------------'); }); }, { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/kibana_client.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/kibana_client.ts index a3385be2950ff..7604b7bca4a17 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/kibana_client.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/kibana_client.ts @@ -5,13 +5,26 @@ * 2.0. */ -import axios, { AxiosInstance, AxiosResponse } from 'axios'; -import { isArray, pick, remove } from 'lodash'; -import { concatMap, filter, lastValueFrom, toArray } from 'rxjs'; -import { format, parse, UrlObject } from 'url'; import { ToolingLog } from '@kbn/tooling-log'; +import axios, { AxiosInstance, AxiosResponse, isAxiosError } from 'axios'; +import { isArray, pick, remove } from 'lodash'; import pRetry from 'p-retry'; -import { Message, MessageRole } from '../../common'; +import { + concatMap, + defer, + filter, + from, + lastValueFrom, + of, + OperatorFunction, + retry, + switchMap, + timer, + toArray, +} from 'rxjs'; +import { format, parse, UrlObject } from 'url'; +import { inspect } from 'util'; +import { ChatCompletionErrorCode, isChatCompletionError, Message, MessageRole } from '../../common'; import { isSupportedConnectorType } from '../../common/connectors'; import { BufferFlushEvent, @@ -21,16 +34,14 @@ import { MessageAddEvent, StreamingChatResponseEvent, StreamingChatResponseEventType, - TokenCountEvent, } from '../../common/conversation_complete'; +import { FunctionDefinition } from '../../common/functions/types'; import { ObservabilityAIAssistantScreenContext } from '../../common/types'; import { concatenateChatCompletionChunks } from '../../common/utils/concatenate_chat_completion_chunks'; import { throwSerializedChatCompletionErrors } from '../../common/utils/throw_serialized_chat_completion_errors'; import { APIReturnType, ObservabilityAIAssistantAPIClientRequestParamsOf } from '../../public'; -import { getAssistantSystemMessage } from '../../public/service/get_assistant_system_message'; import { streamIntoObservable } from '../../server/service/util/stream_into_observable'; import { EvaluationResult } from './types'; -import { FunctionDefinition } from '../../common/functions/types'; // eslint-disable-next-line spaced-comment /// <reference types="@kbn/ambient-ftr-types"/> @@ -170,13 +181,13 @@ export class KibanaClient { async function getFunctions() { const { - data: { functionDefinitions, contextDefinitions }, + data: { functionDefinitions }, }: AxiosResponse<APIReturnType<'GET /internal/observability_ai_assistant/functions'>> = await that.axios.get( that.getUrl({ pathname: '/internal/observability_ai_assistant/functions' }) ); - return { functionDefinitions, contextDefinitions }; + return { functionDefinitions }; } let currentTitle: string = ''; @@ -202,6 +213,61 @@ export class KibanaClient { unregister: () => void; }> = []; + function serializeAndHandleRetryableErrors< + T extends StreamingChatResponseEvent + >(): OperatorFunction<Buffer, Exclude<T, ChatCompletionErrorEvent>> { + return (source$) => { + const processed$ = source$.pipe( + concatMap((buffer: Buffer) => + buffer + .toString('utf-8') + .split('\n') + .map((line) => line.trim()) + .filter(Boolean) + .map((line) => JSON.parse(line) as T | BufferFlushEvent) + ), + throwSerializedChatCompletionErrors(), + retry({ + count: 1, + delay: (error) => { + that.log.error('Error in stream'); + + if (isAxiosError(error)) { + that.log.error( + inspect( + { + message: error.message, + status: error.status, + response: error.response?.data, + }, + { depth: 10 } + ) + ); + } else { + that.log.error(inspect(error, { depth: 10 })); + } + + if ( + isChatCompletionError(error) && + error.code !== ChatCompletionErrorCode.InternalError + ) { + that.log.info(`Not retrying error ${error.code}`); + return of(); + } + that.log.info(`Retrying in 5s`); + return timer(5000); + }, + }), + filter( + (event): event is Exclude<T, ChatCompletionErrorEvent> => + event.type !== StreamingChatResponseEventType.BufferFlush + ) + ); + + return processed$; + }; + } + async function chat( name: string, { @@ -216,46 +282,37 @@ export class KibanaClient { connectorIdOverride?: string; } ) { - const params: ObservabilityAIAssistantAPIClientRequestParamsOf<'POST /internal/observability_ai_assistant/chat'>['params']['body'] = - { - name, - messages, - connectorId: connectorIdOverride || connectorId, - functions: functions.map((fn) => pick(fn, 'name', 'description', 'parameters')), - functionCall, - }; - const stream$ = streamIntoObservable( - ( - await that.axios.post( - that.getUrl({ - pathname: '/internal/observability_ai_assistant/chat', - }), - params, - { responseType: 'stream', timeout: NaN } - ) - ).data - ).pipe( - concatMap((buffer: Buffer) => - buffer - .toString('utf-8') - .split('\n') - .map((line) => line.trim()) - .filter(Boolean) - .map( - (line) => - JSON.parse(line) as StreamingChatResponseEvent | BufferFlushEvent | TokenCountEvent - ) - ), + that.log.info('Chat', name); + + const chat$ = defer(() => { + that.log.debug(`Calling chat API`); + const params: ObservabilityAIAssistantAPIClientRequestParamsOf<'POST /internal/observability_ai_assistant/chat'>['params']['body'] = + { + name, + messages, + connectorId: connectorIdOverride || connectorId, + functions: functions.map((fn) => pick(fn, 'name', 'description', 'parameters')), + functionCall, + }; + + return that.axios.post( + that.getUrl({ + pathname: '/internal/observability_ai_assistant/chat', + }), + params, + { responseType: 'stream', timeout: NaN } + ); + }).pipe( + switchMap((response) => streamIntoObservable(response.data)), + serializeAndHandleRetryableErrors(), filter( - (line): line is ChatCompletionChunkEvent | ChatCompletionErrorEvent => - line.type === StreamingChatResponseEventType.ChatCompletionChunk || - line.type === StreamingChatResponseEventType.ChatCompletionError + (line): line is ChatCompletionChunkEvent => + line.type === StreamingChatResponseEventType.ChatCompletionChunk ), - throwSerializedChatCompletionErrors(), concatenateChatCompletionChunks() ); - const message = await lastValueFrom(stream$); + const message = await lastValueFrom(chat$); return message.message; } @@ -264,9 +321,8 @@ export class KibanaClient { return { chat: async (message) => { - const { functionDefinitions, contextDefinitions } = await getFunctions(); + const { functionDefinitions } = await getFunctions(); const messages = [ - getAssistantSystemMessage({ contexts: contextDefinitions }), ...getMessages(message).map((msg) => ({ message: msg, '@timestamp': new Date().toISOString(), @@ -275,6 +331,7 @@ export class KibanaClient { return chat('chat', { messages, functions: functionDefinitions }); }, complete: async (...args) => { + that.log.info(`Complete`); let messagesArg: StringOrMessageList; let conversationId: string | undefined; let options: Options = {}; @@ -301,18 +358,17 @@ export class KibanaClient { options = args[2]; } - const { contextDefinitions } = await getFunctions(); const messages = [ - getAssistantSystemMessage({ contexts: contextDefinitions }), ...getMessages(messagesArg!).map((msg) => ({ message: msg, '@timestamp': new Date().toISOString(), })), ]; - const stream$ = streamIntoObservable( - ( - await that.axios.post( + const stream$ = defer(() => { + that.log.debug(`Calling /chat/complete API`); + return from( + that.axios.post( that.getUrl({ pathname: '/internal/observability_ai_assistant/chat/complete', }), @@ -326,28 +382,17 @@ export class KibanaClient { }, { responseType: 'stream', timeout: NaN } ) - ).data - ).pipe( - concatMap((buffer: Buffer) => - buffer - .toString('utf-8') - .split('\n') - .map((line) => line.trim()) - .filter(Boolean) - .map( - (line) => - JSON.parse(line) as - | StreamingChatResponseEvent - | BufferFlushEvent - | TokenCountEvent - ) - ), + ); + }).pipe( + switchMap((response) => { + return streamIntoObservable(response.data); + }), + serializeAndHandleRetryableErrors(), filter( (event): event is MessageAddEvent | ConversationCreateEvent => event.type === StreamingChatResponseEventType.MessageAdd || event.type === StreamingChatResponseEventType.ConversationCreate ), - throwSerializedChatCompletionErrors(), toArray() ); @@ -401,7 +446,9 @@ export class KibanaClient { This is the conversation: - ${JSON.stringify(messages)}`, + ${JSON.stringify( + messages.map((msg) => pick(msg, 'content', 'name', 'function_call', 'role')) + )}`, }, }, ], @@ -437,7 +484,6 @@ export class KibanaClient { }, required: ['criteria'], }, - contexts: [], description: 'Call this function to return scores for the criteria', }, ], diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/apm/index.spec.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/apm/index.spec.ts index 24a1b21f95237..6d715dd911dbf 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/apm/index.spec.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/apm/index.spec.ts @@ -91,33 +91,31 @@ describe('apm', () => { ); }); - it('service summary, troughput, dependencies and errors', async () => { - let conversation = await chatClient.complete( - 'What is the status of the service ai-assistant-service in the test environment?' + it('service throughput', async () => { + const conversation = await chatClient.complete( + 'What is the average throughput per minute for the ai-assistant-service service over the past 4 hours?' ); - conversation = await chatClient.complete( - conversation.conversationId!, - conversation.messages.concat({ - content: - 'What is the average throughput for the ai-assistant-service service over the past 4 hours?', - role: MessageRole.User, - }) - ); + const result = await chatClient.evaluate(conversation, [ + 'Uses the get_apm_dataset_info function to get information about the APM data streams', + 'Uses the query function to generate an ES|QL query', + 'Generates a valid ES|QL query that returns the throughput over the past 4 hours.', + 'Uses the execute_query function to get the results for the generated query', + 'Summarizes the results for the user', + 'Calculates a throughput of 30 transactions per minute', + ]); - conversation = await chatClient.complete( - conversation.conversationId!, - conversation.messages.concat({ - content: 'What are the downstream dependencies of the ai-assistant-service-front service?', - role: MessageRole.User, - }) + expect(result.passed).to.be(true); + }); + + it('service dependencies', async () => { + const conversation = await chatClient.complete( + 'What are the downstream dependencies of the ai-assistant-service-front service?' ); const result = await chatClient.evaluate(conversation, [ - 'Uses get_apm_service_summary to obtain the status of the ai-assistant-service service', - 'Executes get_apm_timeseries to obtain the throughput of the services ai-assistant-service for the last 4 hours', - 'Gives a summary of the throughput stats for ai-assistant-service', - 'Provides the downstream dependencies of ai-assistant-service-front', + 'Uses the get_apm_downstream_dependencies function with the `service.name` parameter being "ai-assistant-service-front"', + 'Returns the results to the user ("ai-assistant-service-back" is the only dependency)', ]); expect(result.passed).to.be(true); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/elasticsearch/index.spec.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/elasticsearch/index.spec.ts index 1dba311a64495..20f78d487a4bf 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/elasticsearch/index.spec.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/elasticsearch/index.spec.ts @@ -61,8 +61,8 @@ describe('elasticsearch functions', () => { const conversation = await chatClient.complete('How many documents are in the index kb?'); const result = await chatClient.evaluate(conversation, [ - 'Calls the Elasticsearch function', - 'Finds how many documents are in that index', + 'Calls the `elasticsearch` function OR the `query` function', + 'Finds how many documents are in that index (one document)', ]); expect(result.passed).to.be(true); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/esql/index.spec.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/esql/index.spec.ts index 4dfaa6df835c1..3bd6fc6a0c207 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/esql/index.spec.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/scripts/evaluation/scenarios/esql/index.spec.ts @@ -34,7 +34,7 @@ async function evaluateEsqlQuery({ : []), ...(execute ? [`The query successfully executed without an error`] - : [`The query was not executed`]), + : [`The query was not executed, it was only explained`]), ...criteria, ]); @@ -154,7 +154,8 @@ describe('ES|QL query generation', () => { question: 'From employees, I want to sort the documents by salary, and then return 10 results per page, and then see the second page', criteria: [ - 'The assistant should mention that pagination is currently not supported in ES|QL', + 'The assistant should clearly mention that pagination is currently not supported in ES|QL', + 'IF the assistant decides to execute the query, it should correctly execute, and the Assistant should clearly mention pagination is not currently supported', ], }); }); @@ -180,7 +181,7 @@ describe('ES|QL query generation', () => { it('logs avg cpu', async () => { await evaluateEsqlQuery({ question: - 'My metric data (ECS) is in .ds-metrics-apm* Show me a query that gets the average CPU per service, limit it to the top 10 results, in 1m buckets, and only include the last 15m. ', + 'My metrics data is in `metrics-*`. I want to see what a query would look like that gets the average CPU per service, limit it to the top 10 results, in 1m buckets, and only include the last 15m.', expected: `FROM .ds-metrics-apm* | WHERE @timestamp >= NOW() - 15 minutes | EVAL bucket = DATE_TRUNC(1 minute, @timestamp) @@ -193,7 +194,7 @@ describe('ES|QL query generation', () => { it('metricbeat avg cpu', async () => { await evaluateEsqlQuery({ - question: `From metricbeat*, using ES|QL, show me a query to see the percentage of CPU time (system.cpu.system.pct) normalized by the number of CPU cores (system.cpu.cores), broken down by hostname`, + question: `Assume my data is in \`metricbeat*\`. Show me a query to see the percentage of CPU time (system.cpu.system.pct) normalized by the number of CPU cores (system.cpu.cores), broken down by host name`, expected: `FROM metricbeat* | EVAL system_pct_normalized = TO_DOUBLE(system.cpu.system.pct) / system.cpu.cores | STATS avg_system_pct_normalized = AVG(system_pct_normalized) BY host.name @@ -205,7 +206,7 @@ describe('ES|QL query generation', () => { it('postgres avg duration dissect', async () => { await evaluateEsqlQuery({ question: - 'Show me an ESQL query to extract the query duration from postgres log messages in postgres-logs*, with this format "2021-01-01 00:00:00 UTC [12345]: [1-1] user=postgres,db=mydb,app=[unknown],client=127.0.0.1 LOG: duration: 123.456 ms statement: SELECT * FROM my_table", using ECS fields, and calculate the avg', + 'Show me an example ESQL query to extract the query duration from postgres log messages in postgres-logs*, with this format:\n `2021-01-01 00:00:00 UTC [12345]: [1-1] user=postgres,db=mydb,app=[unknown],client=127.0.0.1 LOG: duration: 123.456 ms statement: SELECT * FROM my_table`. \n Use ECS fields, and calculate the avg.', expected: `FROM postgres-logs* | DISSECT message "%{}: duration: %{query_duration} ms %{}" | EVAL duration_double = TO_DOUBLE(duration) @@ -256,14 +257,12 @@ describe('ES|QL query generation', () => { ); }); - it('metrics avg duration', async () => { + // histograms are not supported yet in ES|QL + it.skip('metrics avg duration', async () => { await evaluateEsqlQuery({ question: 'Execute a query for metrics-apm*, filtering on metricset.name:service_transaction and metricset.interval:1m, the average duration (via transaction.duration.histogram), in 50 buckets.', execute: true, - criteria: [ - 'The assistant know that transaction.duration.histogram cannot be used in ESQL and proposes an alertative solution', - ], }); }); @@ -274,8 +273,7 @@ describe('ES|QL query generation', () => { expected: `FROM traces-apm* | WHERE @timestamp >= NOW() - 24 hours | EVAL is_failure = CASE(event.outcome == "failure", 1, 0), is_success = CASE(event.outcome == "success", 1, 0) - | STATS total_requests = COUNT(*), avg_duration = AVG(transaction.duration.us), total_failures = SUM(is_failure), total_success = SUM(is_success) BY service.name - | EVAL success_rate = total_success / (total_failures + total_success) + | STATS total_requests = COUNT(*), avg_duration = AVG(transaction.duration.us), success_rate = SUM(is_success) / COUNT(*) BY service.name | KEEP service.name, avg_duration, success_rate, total_requests`, execute: true, }); @@ -328,9 +326,12 @@ describe('ES|QL query generation', () => { expected: `FROM logs-apm* | SORT @timestamp DESC | EVAL formatted_date = DATE_FORMAT("hh:mm a, d 'of' MMMM yyyy", @timestamp) - | KEEP formatted_date, log.level, message + | KEEP formatted_date, processor.event, message | LIMIT 5`, execute: true, + criteria: [ + 'The Assistant uses KEEP, to make sure the AT LEAST the formatted date, processor event and message fields are displayed. More columns are fine, fewer are not', + ], }); }); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/context.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/context.ts index 15d34d36a4ffc..7c785392dfaf4 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/context.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/context.ts @@ -35,7 +35,6 @@ export function registerContextFunction({ functions.registerFunction( { name: 'context', - contexts: ['core'], description: 'This function provides context as to what the user is looking at on their screen, and recalled documents from the knowledge base that matches their query', visibility: FunctionVisibility.AssistantOnly, @@ -68,10 +67,6 @@ export function registerContextFunction({ const { queries, categories } = args; async function getContext() { - const systemMessage = messages.find( - (message) => message.message.role === MessageRole.System - ); - const screenDescription = compact( screenContexts.map((context) => context.screenDescription) ).join('\n\n'); @@ -93,10 +88,6 @@ export function registerContextFunction({ return { content }; } - if (!systemMessage) { - throw new Error('No system message found'); - } - const userMessage = last( messages.filter((message) => message.message.role === MessageRole.User) ); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/elasticsearch.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/elasticsearch.ts index 05900a2d47555..61a8b6adf3ed3 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/elasticsearch.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/elasticsearch.ts @@ -14,7 +14,6 @@ export function registerElasticsearchFunction({ functions.registerFunction( { name: 'elasticsearch', - contexts: ['core'], description: 'Call Elasticsearch APIs on behalf of the user. Make sure the request body is valid for the API that you are using. Only call this function when the user has explicitly requested it.', descriptionForUser: 'Call Elasticsearch APIs on behalf of the user', @@ -47,7 +46,7 @@ export function registerElasticsearchFunction({ body, }); - return { content: response }; + return { content: { response } }; } ); } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/execute_connector.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/execute_connector.ts index 8e668d0295ba5..0088e35a6f6af 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/execute_connector.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/execute_connector.ts @@ -15,7 +15,6 @@ export function registerExecuteConnectorFunction({ functions.registerFunction( { name: 'execute_connector', - contexts: ['core'], description: 'Use this function when user explicitly asks to call a kibana connector.', visibility: FunctionVisibility.AssistantOnly, parameters: { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/get_dataset_info/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/get_dataset_info/index.ts index bfd0ef43d546c..1554df10175a2 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/get_dataset_info/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/get_dataset_info/index.ts @@ -16,7 +16,6 @@ export function registerGetDatasetInfoFunction({ functions.registerFunction( { name: 'get_dataset_info', - contexts: ['core'], visibility: FunctionVisibility.AssistantOnly, description: `Use this function to get information about indices/datasets available and the fields available on them. diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/index.ts index c24c8d9f38803..7f706046a693c 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/index.ts @@ -34,97 +34,84 @@ export const registerFunctions: RegistrationCallback = async ({ const isServerless = !!resources.plugins.serverless; - return client.getKnowledgeBaseStatus().then((response) => { - const isReady = response.ready; + functions.registerInstruction(`You are a helpful assistant for Elastic Observability. Your goal is to help the Elastic Observability users to quickly assess what is happening in their observed systems. You can help them visualise and analyze data, investigate their systems, perform root cause analysis or identify optimisation opportunities. - let description = dedent( - `You are a helpful assistant for Elastic Observability. Your goal is to help the Elastic Observability users to quickly assess what is happening in their observed systems. You can help them visualise and analyze data, investigate their systems, perform root cause analysis or identify optimisation opportunities. + It's very important to not assume what the user is meaning. Ask them for clarification if needed. - It's very important to not assume what the user is meaning. Ask them for clarification if needed. + If you are unsure about which function should be used and with what arguments, ask the user for clarification or confirmation. - If you are unsure about which function should be used and with what arguments, ask the user for clarification or confirmation. + In KQL ("kqlFilter")) escaping happens with double quotes, not single quotes. Some characters that need escaping are: ':()\\\ + /\". Always put a field value in double quotes. Best: service.name:\"opbeans-go\". Wrong: service.name:opbeans-go. This is very important! - In KQL ("kqlFilter")) escaping happens with double quotes, not single quotes. Some characters that need escaping are: ':()\\\ - /\". Always put a field value in double quotes. Best: service.name:\"opbeans-go\". Wrong: service.name:opbeans-go. This is very important! + You can use Github-flavored Markdown in your responses. If a function returns an array, consider using a Markdown table to format the response. + + Note that ES|QL (the Elasticsearch Query Language which is a new piped language) is the preferred query language. - You can use Github-flavored Markdown in your responses. If a function returns an array, consider using a Markdown table to format the response. + DO NOT UNDER ANY CIRCUMSTANCES USE ES|QL syntax (\`service.name == "foo"\`) with "kqlFilter" (\`service.name:"foo"\`). + + The user is able to change the language which they want you to reply in on the settings page of the AI Assistant for Observability, which can be found in the ${ + isServerless ? `Project settings.` : `Stack Management app under the option AI Assistants` + }. + If the user asks how to change the language, reply in the same language the user asked in.`); - Note that ES|QL (the Elasticsearch Query Language which is a new piped language) is the preferred query language. + const { ready: isReady } = await client.getKnowledgeBaseStatus(); - You MUST use the "query" function when the user wants to: - - visualize data - - run any arbitrary query - - breakdown or filter ES|QL queries that are displayed on the current page - - convert queries from another language to ES|QL - - asks general questions about ES|QL + functions.registerInstruction(({ availableFunctionNames }) => { + const instructions: string[] = []; - DO NOT UNDER ANY CIRCUMSTANCES generate ES|QL queries or explain anything about the ES|QL query language yourself. - DO NOT UNDER ANY CIRCUMSTANCES try to correct an ES|QL query yourself - always use the "query" function for this. - - DO NOT UNDER ANY CIRCUMSTANCES USE ES|QL syntax (\`service.name == "foo"\`) with "kqlFilter" (\`service.name:"foo"\`). - - Even if the "context" function was used before that, follow it up with the "query" function. If a query fails, do not attempt to correct it yourself. Again you should call the "query" function, - even if it has been called before. - - When the "visualize_query" function has been called, a visualization has been displayed to the user. DO NOT UNDER ANY CIRCUMSTANCES follow up a "visualize_query" function call with your own visualization attempt. - If the "execute_query" function has been called, summarize these results for the user. The user does not see a visualization in this case. - - You MUST use the get_dataset_info function ${ - functions.hasFunction('get_apm_dataset_info') ? 'or get_apm_dataset_info' : '' - } function before calling the "query" or "changes" function. - - If a function requires an index, you MUST use the results from the dataset info functions. + if (availableFunctionNames.includes('get_dataset_info')) { + instructions.push(`You MUST use the get_dataset_info function ${ + functions.hasFunction('get_apm_dataset_info') ? 'or get_apm_dataset_info' : '' + } function before calling the "query" or "changes" function. + + If a function requires an index, you MUST use the results from the dataset info functions.`); + } - ${ - functions.hasFunction('get_data_on_screen') - ? `You have access to data on the screen by calling the "get_data_on_screen" function. + if (availableFunctionNames.includes('get_data_on_screen')) { + instructions.push(`You have access to data on the screen by calling the "get_data_on_screen" function. Use it to help the user understand what they are looking at. A short summary of what they are looking at is available in the return of the "context" function. - Data that is compact enough automatically gets included in the response for the "context" function. - ` - : '' - } - - The user is able to change the language which they want you to reply in on the settings page of the AI Assistant for Observability, which can be found in the ${ - isServerless ? `Project settings.` : `Stack Management app under the option AI Assistants` - }. - If the user asks how to change the language, reply in the same language the user asked in. - ` - ); + Data that is compact enough automatically gets included in the response for the "context" function.`); + } if (isReady) { - description += `You can use the "summarize" functions to store new information you have learned in a knowledge database. Once you have established that you did not know the answer to a question, and the user gave you this information, it's important that you create a summarisation of what you have learned and store it in the knowledge database. Don't create a new summarization if you see a similar summarization in the conversation, instead, update the existing one by re-using its ID. - All summaries MUST be created in English, even if the conversation was carried out in a different language. - - Additionally, you can use the "context" function to retrieve relevant information from the knowledge database. - - `; - - registerSummarizationFunction(registrationParameters); + if (availableFunctionNames.includes('summarize')) { + instructions.push(`You can use the "summarize" functions to store new information you have learned in a knowledge database. + Only use this function when the user asks for it. + All summaries MUST be created in English, even if the conversation was carried out in a different language.`); + } + + if (availableFunctionNames.includes('context')) { + instructions.push( + `Additionally, you can use the "context" function to retrieve relevant information from the knowledge database.` + ); + } } else { - description += `You do not have a working memory. If the user expects you to remember the previous conversations, tell them they can set up the knowledge base.`; + instructions.push( + `You do not have a working memory. If the user expects you to remember the previous conversations, tell them they can set up the knowledge base.` + ); } + return instructions.map((instruction) => dedent(instruction)); + }); - registerContextFunction({ ...registrationParameters, isKnowledgeBaseAvailable: isReady }); + if (isReady) { + registerSummarizationFunction(registrationParameters); + } - registerElasticsearchFunction(registrationParameters); - const request = registrationParameters.resources.request; + registerContextFunction({ ...registrationParameters, isKnowledgeBaseAvailable: isReady }); - if ('id' in request) { - registerKibanaFunction({ - ...registrationParameters, - resources: { - ...registrationParameters.resources, - request, - }, - }); - } - registerGetDatasetInfoFunction(registrationParameters); + registerElasticsearchFunction(registrationParameters); + const request = registrationParameters.resources.request; - registerExecuteConnectorFunction(registrationParameters); - - functions.registerContext({ - name: 'core', - description: dedent(description), + if ('id' in request) { + registerKibanaFunction({ + ...registrationParameters, + resources: { + ...registrationParameters.resources, + request, + }, }); - }); + } + registerGetDatasetInfoFunction(registrationParameters); + + registerExecuteConnectorFunction(registrationParameters); }; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/kibana.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/kibana.ts index 4af123a43f891..f939e3a79799b 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/kibana.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/kibana.ts @@ -20,7 +20,6 @@ export function registerKibanaFunction({ functions.registerFunction( { name: 'kibana', - contexts: ['core'], description: 'Call Kibana APIs on behalf of the user. Only call this function when the user has explicitly requested it, and you know how to call it, for example by querying the knowledge base or having the user explain it to you. Assume that pathnames, bodies and query parameters may have changed since your knowledge cut off date.', descriptionForUser: 'Call Kibana APIs on behalf of the user', diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/summarize.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/summarize.ts index 39b73aefa89f6..4ff8e3ee4da91 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/summarize.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/functions/summarize.ts @@ -15,9 +15,11 @@ export function registerSummarizationFunction({ functions.registerFunction( { name: 'summarize', - contexts: ['core'], - description: - "Use this function to summarize things learned from the conversation. You can score the learnings with a confidence metric, whether it is a correction on a previous learning. An embedding will be created that you can recall later with a semantic search. There is no need to ask the user for permission to store something you have learned, unless you do not feel confident. When you create this summarisation, make sure you craft it in a way that can be recalled with a semantic search later, and that it would have answered the user's original request.", + description: `Use this function to store facts in the knowledge database if the user requests it. + You can score the learnings with a confidence metric, whether it is a correction on a previous learning. + An embedding will be created that you can recall later with a semantic search. + When you create this summarisation, make sure you craft it in a way that can be recalled with a semantic + search later, and that it would have answered the user's original request.`, descriptionForUser: 'This function allows the Elastic Assistant to summarize things from the conversation.', parameters: { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/functions/route.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/functions/route.ts index 9b48dc3f472d1..58c93737b6617 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/functions/route.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/functions/route.ts @@ -7,9 +7,10 @@ import { notImplemented } from '@hapi/boom'; import { nonEmptyStringRt, toBooleanRt } from '@kbn/io-ts-utils'; import * as t from 'io-ts'; -import { ContextDefinition, FunctionDefinition } from '../../../common/functions/types'; +import { FunctionDefinition } from '../../../common/functions/types'; import { KnowledgeBaseEntryRole } from '../../../common/types'; import type { RecalledEntry } from '../../service/knowledge_base_service'; +import { getSystemMessageFromInstructions } from '../../service/util/get_system_message_from_instructions'; import { createObservabilityAIAssistantServerRoute } from '../create_observability_ai_assistant_server_route'; const getFunctionsRoute = createObservabilityAIAssistantServerRoute({ @@ -21,7 +22,7 @@ const getFunctionsRoute = createObservabilityAIAssistantServerRoute({ resources ): Promise<{ functionDefinitions: FunctionDefinition[]; - contextDefinitions: ContextDefinition[]; + systemMessage: string; }> => { const { service, request } = resources; @@ -32,16 +33,29 @@ const getFunctionsRoute = createObservabilityAIAssistantServerRoute({ const client = await service.getClient({ request }); - const functionClient = await service.getFunctionClient({ - signal: controller.signal, - resources, - client, - screenContexts: [], - }); + const [functionClient, knowledgeBaseInstructions] = await Promise.all([ + service.getFunctionClient({ + signal: controller.signal, + resources, + client, + screenContexts: [], + }), + // error is caught in client + client.fetchKnowledgeBaseInstructions(), + ]); + + const functionDefinitions = functionClient.getFunctions().map((fn) => fn.definition); + + const availableFunctionNames = functionDefinitions.map((def) => def.name); return { functionDefinitions: functionClient.getFunctions().map((fn) => fn.definition), - contextDefinitions: functionClient.getContexts(), + systemMessage: getSystemMessageFromInstructions({ + registeredInstructions: functionClient.getInstructions(), + knowledgeBaseInstructions, + requestInstructions: [], + availableFunctionNames, + }), }; }, }); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.test.ts index a55098c5ec4fe..9ecbd450cba30 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.test.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.test.ts @@ -20,14 +20,9 @@ describe('chatFunctionClient', () => { }); client = new ChatFunctionClient([]); - client.registerContext({ - description: '', - name: 'core', - }); client.registerFunction( { - contexts: ['core'], description: '', name: 'myFunction', parameters: { @@ -93,7 +88,6 @@ describe('chatFunctionClient', () => { expect(functions[0]).toEqual({ definition: { - contexts: ['core'], description: expect.any(String), name: 'get_data_on_screen', parameters: expect.any(Object), diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.ts index ea09024a137e7..d0b019d635c12 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/chat_function_client/index.ts @@ -9,16 +9,17 @@ import Ajv, { type ErrorObject, type ValidateFunction } from 'ajv'; import dedent from 'dedent'; import { compact, keyBy } from 'lodash'; -import { - FunctionVisibility, - type ContextDefinition, - type ContextRegistry, - type FunctionResponse, - type RegisterContextDefinition, -} from '../../../common/functions/types'; +import { FunctionVisibility, type FunctionResponse } from '../../../common/functions/types'; import type { Message, ObservabilityAIAssistantScreenContextRequest } from '../../../common/types'; import { filterFunctionDefinitions } from '../../../common/utils/filter_function_definitions'; -import type { ChatFn, FunctionHandler, FunctionHandlerRegistry, RegisterFunction } from '../types'; +import type { + ChatFn, + FunctionHandler, + FunctionHandlerRegistry, + RegisteredInstruction, + RegisterFunction, + RegisterInstruction, +} from '../types'; export class FunctionArgsValidationError extends Error { constructor(public readonly errors: ErrorObject[]) { @@ -31,7 +32,7 @@ const ajv = new Ajv({ }); export class ChatFunctionClient { - private readonly contextRegistry: ContextRegistry = new Map(); + private readonly instructions: RegisteredInstruction[] = []; private readonly functionRegistry: FunctionHandlerRegistry = new Map(); private readonly validators: Map<string, ValidateFunction> = new Map(); @@ -46,7 +47,6 @@ export class ChatFunctionClient { this.registerFunction( { name: 'get_data_on_screen', - contexts: ['core'], description: dedent(`Get data that is on the screen: ${allData.map((data) => `${data.name}: ${data.description}`).join('\n')} `), @@ -89,8 +89,8 @@ export class ChatFunctionClient { this.functionRegistry.set(definition.name, { definition, respond }); }; - registerContext: RegisterContextDefinition = (context) => { - this.contextRegistry.set(context.name, context); + registerInstruction: RegisterInstruction = (instruction) => { + this.instructions.push(instruction); }; validate(name: string, parameters: unknown) { @@ -105,8 +105,8 @@ export class ChatFunctionClient { } } - getContexts(): ContextDefinition[] { - return Array.from(this.contextRegistry.values()); + getInstructions(): RegisteredInstruction[] { + return this.instructions; } hasAction(name: string) { @@ -114,10 +114,8 @@ export class ChatFunctionClient { } getFunctions({ - contexts, filter, }: { - contexts?: string[]; filter?: string; } = {}): FunctionHandler[] { const allFunctions = Array.from(this.functionRegistry.values()); @@ -125,7 +123,6 @@ export class ChatFunctionClient { const functionsByName = keyBy(allFunctions, (definition) => definition.definition.name); const matchingDefinitions = filterFunctionDefinitions({ - contexts, filter, definitions: allFunctions.map((fn) => fn.definition), }); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/bedrock/process_bedrock_stream.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/bedrock/process_bedrock_stream.test.ts index ee426db515322..90f7d6f5ee69c 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/bedrock/process_bedrock_stream.test.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/bedrock/process_bedrock_stream.test.ts @@ -173,7 +173,9 @@ describe('processBedrockStream', () => { ); } - await expect(fn).rejects.toThrowErrorMatchingInlineSnapshot(`"no elements in sequence"`); + await expect(fn).rejects.toThrowErrorMatchingInlineSnapshot( + `"Unexpected token 'i', \\"invalid json\\" is not valid JSON"` + ); }); it('successfully invokes a function without parameters', async () => { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/get_system_message_instructions.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/get_system_message_instructions.ts index dd74052ce7bbe..dae509e169e10 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/get_system_message_instructions.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/get_system_message_instructions.ts @@ -16,26 +16,18 @@ export function getSystemMessageInstructions({ if (functions?.length) { return `In this environment, you have access to a set of tools you can use to answer the user's question. - When deciding what tool to use, keep in mind that you can call other tools in successive requests, so decide what tool - would be a good first step. - - You MUST only invoke a single tool, and invoke it once. Other invocations will be ignored. - You MUST wait for the results before invoking another. - You can call multiple tools in successive messages. This means you can chain tool calls. If any tool was used in a previous - message, consider whether it still makes sense to follow it up with another tool call. - ${ functions?.find((fn) => fn.name === 'context') ? `The "context" tool is ALWAYS used after a user question. Even if it was used before, your job is to answer the last user question, even if the "context" tool was executed after that. Consider the tools you need to answer the user's question.` : '' } - - Rather than explaining how you would call a tool, just generate the JSON to call the tool. It will automatically be - executed and returned to you. - These results are generally not visible to the user. Treat them as if they are not, - unless specified otherwise. + DO NOT call a tool when it is not listed. + ONLY define input that is defined in the tool properties. + If a tool does not have properties, leave them out. + + It is EXTREMELY important that you generate valid JSON between the \`\`\`json and \`\`\` delimiters. You may call them like this. @@ -77,7 +69,8 @@ export function getSystemMessageInstructions({ ${TOOL_USE_START} \`\`\`json { - "name": "my_tool_without_parameters" + "name": "my_tool_without_parameters", + "input": {} } \`\`\`\ ${TOOL_USE_END} @@ -95,5 +88,5 @@ export function getSystemMessageInstructions({ `; } - return `No tools are available anymore. Ignore everything that was said about tools before. DO NOT UNDER ANY CIRCUMSTANCES call any tool, regardless of whether it was previously called.`; + return `No tools are available anymore. DO NOT UNDER ANY CIRCUMSTANCES call any tool, regardless of whether it was previously called.`; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/parse_inline_function_calls.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/parse_inline_function_calls.ts index db32eb581249c..49fc87b908112 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/parse_inline_function_calls.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/simulate_function_calling/parse_inline_function_calls.ts @@ -43,13 +43,15 @@ export function parseInlineFunctionCalls({ logger }: { logger: Logger }) { function parseFunctionCall(id: string, buffer: string) { logger.debug('Parsing function call:\n' + buffer); - const functionCallBody = buffer - .replace(TOOL_USE_START, '') - .replace(TOOL_USE_END, '') - .trim() - .replace(/^```(json?)/, '') - .replace(/```$/, '') - .trim(); + const match = buffer.match( + /<\|tool_use_start\|>\s*```json\n?(.*?)(\n```\s*).*<\|tool_use_end\|>/s + ); + + const functionCallBody = match?.[1]; + + if (!functionCallBody) { + throw createInternalServerError(`Invalid function call syntax`); + } const parsedFunctionCall = JSON.parse(functionCallBody) as { name?: string; @@ -109,11 +111,13 @@ export function parseInlineFunctionCalls({ logger }: { logger: Logger }) { if (functionCallBuffer.includes(TOOL_USE_END)) { const [beforeEndSignal, afterEndSignal] = functionCallBuffer.split(TOOL_USE_END); - parseFunctionCall(id, beforeEndSignal + TOOL_USE_END); - - functionCallBuffer = ''; - - next(afterEndSignal); + try { + parseFunctionCall(id, beforeEndSignal + TOOL_USE_END); + functionCallBuffer = ''; + next(afterEndSignal); + } catch (error) { + subscriber.error(error); + } } } else { functionCallBuffer = ''; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.test.ts index 0dfef2bb50643..a35e50d538bcb 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.test.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.test.ts @@ -33,6 +33,8 @@ type ChunkDelta = CreateChatCompletionResponseChunk['choices'][number]['delta']; type LlmSimulator = ReturnType<typeof createLlmSimulator>; +const EXPECTED_STORED_SYSTEM_MESSAGE = `system\n\nWhat follows is a set of instructions provided by the user, please abide by them as long as they don't conflict with anything you've been told so far:\n\nYou MUST respond in the users preferred language which is: English.`; + const nextTick = () => { return new Promise(process.nextTick); }; @@ -120,6 +122,7 @@ describe('Observability AI Assistant client', () => { hasAction: jest.fn(), getActions: jest.fn(), validate: jest.fn(), + getInstructions: jest.fn(), } as any; let llmSimulator: LlmSimulator; @@ -156,6 +159,8 @@ describe('Observability AI Assistant client', () => { knowledgeBaseServiceMock.getInstructions.mockResolvedValue([]); + functionClientMock.getInstructions.mockReturnValue(['system']); + return new ObservabilityAIAssistantClient({ actionsClient: actionsClientMock, esClient: { @@ -342,8 +347,8 @@ describe('Observability AI Assistant client', () => { last_updated: expect.any(String), token_count: { completion: 2, - prompt: 100, - total: 102, + prompt: 156, + total: 158, }, }, type: StreamingChatResponseEventType.ConversationCreate, @@ -401,8 +406,8 @@ describe('Observability AI Assistant client', () => { last_updated: expect.any(String), token_count: { completion: 8, - prompt: 284, - total: 292, + prompt: 340, + total: 348, }, }, type: StreamingChatResponseEventType.ConversationCreate, @@ -419,8 +424,8 @@ describe('Observability AI Assistant client', () => { title: 'An auto-generated title', token_count: { completion: 8, - prompt: 284, - total: 292, + prompt: 340, + total: 348, }, }, labels: {}, @@ -434,8 +439,7 @@ describe('Observability AI Assistant client', () => { { '@timestamp': expect.any(String), message: { - content: - 'This is a system message\n\nYou MUST respond in the users preferred language which is: English.', + content: EXPECTED_STORED_SYSTEM_MESSAGE, role: MessageRole.System, }, }, @@ -546,8 +550,8 @@ describe('Observability AI Assistant client', () => { last_updated: expect.any(String), token_count: { completion: 2, - prompt: 100, - total: 102, + prompt: 156, + total: 158, }, }, type: StreamingChatResponseEventType.ConversationUpdate, @@ -565,8 +569,8 @@ describe('Observability AI Assistant client', () => { title: 'My stored conversation', token_count: { completion: 2, - prompt: 100, - total: 102, + prompt: 156, + total: 158, }, }, labels: {}, @@ -580,8 +584,7 @@ describe('Observability AI Assistant client', () => { { '@timestamp': expect.any(String), message: { - content: - 'This is a system message\n\nYou MUST respond in the users preferred language which is: English.', + content: EXPECTED_STORED_SYSTEM_MESSAGE, role: MessageRole.System, }, }, @@ -801,8 +804,7 @@ describe('Observability AI Assistant client', () => { '@timestamp': expect.any(String), message: { role: MessageRole.System, - content: - 'This is a system message\n\nYou MUST respond in the users preferred language which is: English.', + content: EXPECTED_STORED_SYSTEM_MESSAGE, }, }, { @@ -934,8 +936,7 @@ describe('Observability AI Assistant client', () => { { '@timestamp': expect.any(String), message: { - content: - 'This is a system message\n\nYou MUST respond in the users preferred language which is: English.', + content: EXPECTED_STORED_SYSTEM_MESSAGE, role: MessageRole.System, }, }, @@ -1307,7 +1308,7 @@ describe('Observability AI Assistant client', () => { async function requestAlertsFunctionCall() { const body = JSON.parse( (actionsClientMock.execute.mock.lastCall![0].params as any).subActionParams.body - ); + ) as OpenAI.ChatCompletionCreateParams; let nextLlmCallPromise: Promise<void>; @@ -1326,7 +1327,7 @@ describe('Observability AI Assistant client', () => { await nextTick(); - for (let i = 0; i <= maxFunctionCalls; i++) { + for (let i = 0; i <= maxFunctionCalls + 1; i++) { await requestAlertsFunctionCall(); } @@ -1337,7 +1338,7 @@ describe('Observability AI Assistant client', () => { expect(functionClientMock.executeFunction).toHaveBeenCalledTimes(maxFunctionCalls); }); - it('does not give the LLM the choice to call a function anymore', () => { + it('asks the LLM to suggest next steps', () => { const firstBody = JSON.parse( (actionsClientMock.execute.mock.calls[0][0].params as any).subActionParams.body ); @@ -1345,7 +1346,7 @@ describe('Observability AI Assistant client', () => { (actionsClientMock.execute.mock.lastCall![0].params as any).subActionParams.body ); - expect(firstBody.tools.length).toBe(1); + expect(firstBody.tools.length).toEqual(1); expect(body.tools).toBeUndefined(); }); @@ -1546,7 +1547,7 @@ describe('Observability AI Assistant client', () => { await nextTick(); expect(chatSpy.mock.calls[0][1].messages[0].message.content).toEqual( - 'This is a system message\n\nYou MUST respond in the users preferred language which is: English.' + EXPECTED_STORED_SYSTEM_MESSAGE ); }); @@ -1576,7 +1577,7 @@ describe('Observability AI Assistant client', () => { await nextTick(); expect(chatSpy.mock.calls[0][1].messages[0].message.content).toEqual( - 'This is a system message\n\nYou MUST respond in the users preferred language which is: Orcish.' + EXPECTED_STORED_SYSTEM_MESSAGE.replace('English', 'Orcish') ); }); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.ts index 0800cf816579a..e4cb53be99754 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/index.ts @@ -14,11 +14,12 @@ import apm from 'elastic-apm-node'; import { decode, encode } from 'gpt-tokenizer'; import { findLastIndex, last, merge, noop, omit, pick, take } from 'lodash'; import { - catchError, filter, + identity, isObservable, last as lastOperator, lastValueFrom, + map, Observable, shareReplay, tap, @@ -26,16 +27,12 @@ import { } from 'rxjs'; import { Readable } from 'stream'; import { v4 } from 'uuid'; -import { withTokenBudget } from '../../../common/utils/with_token_budget'; -import { extendSystemMessage } from '../../../common/utils/extend_system_message'; import { ObservabilityAIAssistantConnectorType } from '../../../common/connectors'; import { ChatCompletionChunkEvent, ChatCompletionErrorEvent, createConversationNotFoundError, - createFunctionLimitExceededError, createTokenLimitReachedError, - isFunctionNotFoundError, MessageAddEvent, StreamingChatResponseEventType, TokenCountEvent, @@ -65,12 +62,15 @@ import { RecalledEntry, } from '../knowledge_base_service'; import type { ChatFn, ObservabilityAIAssistantResourceNames } from '../types'; +import { catchFunctionLimitExceededError } from '../util/catch_function_limit_exceeded_error'; import { getAccessQuery } from '../util/get_access_query'; +import { getSystemMessageFromInstructions } from '../util/get_system_message_from_instructions'; import { rejectTokenCountEvents } from '../util/reject_token_count_events'; +import { replaceSystemMessage } from '../util/replace_system_message'; import { createBedrockClaudeAdapter } from './adapters/bedrock/bedrock_claude_adapter'; +import { failOnNonExistingFunctionCall } from './adapters/fail_on_non_existing_function_call'; import { createOpenAiAdapter } from './adapters/openai_adapter'; import { LlmApiAdapter } from './adapters/types'; -import { failOnNonExistingFunctionCall } from './adapters/fail_on_non_existing_function_call'; export class ObservabilityAIAssistantClient { constructor( @@ -172,21 +172,32 @@ export class ObservabilityAIAssistantClient { kibanaPublicUrl, simulateFunctionCalling, isPublic = false, + instructions: requestInstructions = [], } = params; const isConversationUpdate = persist && !!params.conversationId; const conversationId = persist ? params.conversationId || v4() : ''; const title = params.title || ''; const responseLanguage = params.responseLanguage || 'English'; - const requestInstructions = params.instructions || []; + + const registeredInstructions = functionClient.getInstructions(); + + const knowledgeBaseInstructions: UserInstruction[] = []; + + if (responseLanguage) { + requestInstructions.push( + `You MUST respond in the users preferred language which is: ${responseLanguage}.` + ); + } + + let storedSystemMessage: string = ''; // will be set as soon as kb instructions are loaded if (persist && !isConversationUpdate && kibanaPublicUrl) { - const systemMessage = messages.find( - (message) => message.message.role === MessageRole.System + registeredInstructions.push( + `This conversation will be persisted in Kibana and available at this url: ${ + kibanaPublicUrl + `/app/observabilityAIAssistant/conversations/${conversationId}` + }.` ); - systemMessage!.message.content += `This conversation will be persisted in Kibana and available at this url: ${ - kibanaPublicUrl + `/app/observabilityAIAssistant/conversations/${conversationId}` - }.`; } const tokenCountResult = { @@ -281,17 +292,24 @@ export class ObservabilityAIAssistantClient { return await next(nextMessages.concat(contextFunctionRequest)); } else if (isUserMessage) { - const functions = - numFunctionsCalled >= MAX_FUNCTION_CALLS ? [] : allFunctions.concat(allActions); + const functionCallsExceeded = numFunctionsCalled > MAX_FUNCTION_CALLS; + const functions = functionCallsExceeded ? [] : allFunctions.concat(allActions); const spanName = lastMessage.message.name && lastMessage.message.name !== 'context' ? 'function_response' : 'user_message'; + const systemMessageForChatRequest = getSystemMessageFromInstructions({ + registeredInstructions, + requestInstructions, + knowledgeBaseInstructions, + availableFunctionNames: functions.map((fn) => fn.name) || [], + }); + const response$ = ( await chatWithTokenCountIncrement(spanName, { - messages: nextMessages, + messages: replaceSystemMessage(systemMessageForChatRequest, nextMessages), connectorId, signal, functions, @@ -299,12 +317,7 @@ export class ObservabilityAIAssistantClient { ).pipe( emitWithConcatenatedMessage(), shareReplay(), - catchError((error) => { - if (isFunctionNotFoundError(error) && functions.length === 0) { - throw createFunctionLimitExceededError(); - } - throw error; - }) + Boolean(functions.length) ? identity : catchFunctionLimitExceededError() ); response$.subscribe({ @@ -319,6 +332,18 @@ export class ObservabilityAIAssistantClient { (event): event is MessageAddEvent => event.type === StreamingChatResponseEventType.MessageAdd ), + // LLMs like to hallucinate parameters if the function does not define + // them, and it can lead to other hallicunations down the line + map((messageEvent) => { + const fnName = messageEvent.message.message.function_call?.name; + + if (fnName && !functions.find((fn) => fn.name === fnName)?.parameters) { + const clone = { ...messageEvent }; + clone.message.message.function_call!.arguments = ''; + return clone; + } + return messageEvent; + }), toArray() ) ); @@ -379,7 +404,7 @@ export class ObservabilityAIAssistantClient { chat: chatWithTokenCountIncrement, connectorId, name: functionCallName, - messages: nextMessages, + messages: replaceSystemMessage(storedSystemMessage, nextMessages), args: lastMessage.message.function_call!.arguments, signal, }) @@ -513,7 +538,7 @@ export class ObservabilityAIAssistantClient { omit(conversation._source, 'messages'), // update messages - { messages: nextMessages }, + { messages: replaceSystemMessage(storedSystemMessage, nextMessages) }, // update token count { @@ -528,6 +553,7 @@ export class ObservabilityAIAssistantClient { } ) ); + subscriber.next({ type: StreamingChatResponseEventType.ConversationUpdate, conversation: updatedConversation.conversation, @@ -545,7 +571,7 @@ export class ObservabilityAIAssistantClient { token_count: tokenCountResult, id: conversationId, }, - messages: nextMessages, + messages: replaceSystemMessage(storedSystemMessage, nextMessages), labels: {}, numeric_labels: {}, public: isPublic, @@ -560,14 +586,18 @@ export class ObservabilityAIAssistantClient { subscriber.complete(); }; - this.resolveInstructions(requestInstructions) - .then((instructions) => { - return next( - extendSystemMessage(messages, [ - `You MUST respond in the users preferred language which is: ${responseLanguage}.`, - instructions, - ]) - ); + this.fetchKnowledgeBaseInstructions() + .then((loadedKnowledgeBaseInstructions) => { + knowledgeBaseInstructions.push(...loadedKnowledgeBaseInstructions); + + storedSystemMessage = getSystemMessageFromInstructions({ + registeredInstructions, + requestInstructions, + knowledgeBaseInstructions, + availableFunctionNames: allFunctions.map((fn) => fn.name), + }); + + return next(messages); }) .catch((error) => { if (!signal.aborted) { @@ -972,30 +1002,12 @@ export class ObservabilityAIAssistantClient { return this.dependencies.knowledgeBaseService.deleteEntry({ id }); }; - private resolveInstructions = async (requestInstructions: Array<string | UserInstruction>) => { + fetchKnowledgeBaseInstructions = async () => { const knowledgeBaseInstructions = await this.dependencies.knowledgeBaseService.getInstructions( this.dependencies.namespace, this.dependencies.user ); - if (requestInstructions.length + knowledgeBaseInstructions.length === 0) { - return ''; - } - - const priorityInstructions = requestInstructions.map((instruction) => - typeof instruction === 'string' ? { doc_id: v4(), text: instruction } : instruction - ); - const overrideIds = priorityInstructions.map((instruction) => instruction.doc_id); - const instructions = priorityInstructions.concat( - knowledgeBaseInstructions.filter((instruction) => !overrideIds.includes(instruction.doc_id)) - ); - - const instructionsWithinBudget = withTokenBudget(instructions, 1000); - - const instructionsPrompt = `What follows is a set of instructions provided by the user, please abide by them as long as they don't conflict with anything you've been told so far:\n`; - - return `${instructionsPrompt}${instructionsWithinBudget - .map((instruction) => instruction.text) - .join('\n\n')}`; + return knowledgeBaseInstructions; }; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/types.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/types.ts index 90cc6f3693e41..241ecd1350c68 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/types.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/types.ts @@ -13,7 +13,11 @@ import type { FunctionDefinition, FunctionResponse, } from '../../common/functions/types'; -import type { Message, ObservabilityAIAssistantScreenContextRequest } from '../../common/types'; +import type { + Message, + ObservabilityAIAssistantScreenContextRequest, + UserInstructionOrPlainText, +} from '../../common/types'; import type { ObservabilityAIAssistantRouteHandlerResources } from '../routes/types'; import { ChatFunctionClient } from './chat_function_client'; import type { ObservabilityAIAssistantClient } from './client'; @@ -43,6 +47,18 @@ export interface FunctionHandler { respond: RespondFunction<any, FunctionResponse>; } +export type RegisteredInstruction = UserInstructionOrPlainText | RegisterInstructionCallback; + +type RegisterInstructionCallback = ({ + availableFunctionNames, +}: { + availableFunctionNames: string[]; +}) => UserInstructionOrPlainText | UserInstructionOrPlainText[] | undefined; + +export type RegisterInstruction = ( + ...instructions: Array<UserInstructionOrPlainText | RegisterInstructionCallback> +) => void; + export type RegisterFunction = < TParameters extends CompatibleJSONSchema = any, TResponse extends FunctionResponse = any, diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/catch_function_limit_exceeded_error.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/catch_function_limit_exceeded_error.ts new file mode 100644 index 0000000000000..25eecc7e7723e --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/catch_function_limit_exceeded_error.ts @@ -0,0 +1,66 @@ +/* + * 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 { i18n } from '@kbn/i18n'; +import { catchError, filter, of, OperatorFunction, shareReplay, throwError } from 'rxjs'; +import { + ChatCompletionChunkEvent, + MessageAddEvent, + MessageRole, + StreamingChatResponseEventType, +} from '../../../common'; +import { isFunctionNotFoundError } from '../../../common/conversation_complete'; +import { emitWithConcatenatedMessage } from '../../../common/utils/emit_with_concatenated_message'; + +export function catchFunctionLimitExceededError(): OperatorFunction< + ChatCompletionChunkEvent | MessageAddEvent, + ChatCompletionChunkEvent | MessageAddEvent +> { + return (source$) => { + const shared$ = source$.pipe(shareReplay()); + const chunksWithoutErrors$ = shared$.pipe( + catchError(() => of()), + shareReplay() + ); + + return shared$.pipe( + catchError((error) => { + if (isFunctionNotFoundError(error)) { + const withInjectedErrorMessage$ = chunksWithoutErrors$.pipe( + filter( + (msg): msg is ChatCompletionChunkEvent => + msg.type === StreamingChatResponseEventType.ChatCompletionChunk + ), + emitWithConcatenatedMessage(async (concatenatedMessage) => { + return { + ...concatenatedMessage, + message: { + ...concatenatedMessage.message, + content: `${concatenatedMessage.message.content}\n\n${i18n.translate( + 'xpack.observabilityAiAssistant.functionCallLimitExceeded', + { + defaultMessage: + '\n\nNote: the Assistant tried to call a function, even though the limit was exceeded', + } + )}`, + function_call: { + name: '', + arguments: '', + trigger: MessageRole.Assistant, + }, + }, + }; + }) + ); + + return withInjectedErrorMessage$; + } + return throwError(() => error); + }) + ); + }; +} diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.test.ts new file mode 100644 index 0000000000000..9706871a63c62 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.test.ts @@ -0,0 +1,78 @@ +/* + * 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 { getSystemMessageFromInstructions } from './get_system_message_from_instructions'; + +describe('getSystemMessageFromInstructions', () => { + it('handles plain instructions', () => { + expect( + getSystemMessageFromInstructions({ + registeredInstructions: ['first', 'second'], + knowledgeBaseInstructions: [], + requestInstructions: [], + availableFunctionNames: [], + }) + ).toEqual(`first\n\nsecond`); + }); + + it('handles callbacks', () => { + expect( + getSystemMessageFromInstructions({ + registeredInstructions: [ + 'first', + ({ availableFunctionNames }) => { + return availableFunctionNames[0]; + }, + ], + knowledgeBaseInstructions: [], + requestInstructions: [], + availableFunctionNames: ['myFunction'], + }) + ).toEqual(`first\n\nmyFunction`); + }); + + it('overrides kb instructions with request instructions', () => { + expect( + getSystemMessageFromInstructions({ + registeredInstructions: ['first'], + knowledgeBaseInstructions: [{ doc_id: 'second', text: 'second_kb' }], + requestInstructions: [{ doc_id: 'second', text: 'second_request' }], + availableFunctionNames: [], + }) + ).toEqual( + `first\n\nWhat follows is a set of instructions provided by the user, please abide by them as long as they don't conflict with anything you've been told so far:\n\nsecond_request` + ); + }); + + it('includes kb instructions if there is no request instruction', () => { + expect( + getSystemMessageFromInstructions({ + registeredInstructions: ['first'], + knowledgeBaseInstructions: [{ doc_id: 'second', text: 'second_kb' }], + requestInstructions: [], + availableFunctionNames: [], + }) + ).toEqual( + `first\n\nWhat follows is a set of instructions provided by the user, please abide by them as long as they don't conflict with anything you've been told so far:\n\nsecond_kb` + ); + }); + + it('handles undefined values', () => { + expect( + getSystemMessageFromInstructions({ + registeredInstructions: [ + 'first', + ({ availableFunctionNames }) => { + return undefined; + }, + ], + knowledgeBaseInstructions: [], + requestInstructions: [], + availableFunctionNames: [], + }) + ).toEqual(`first`); + }); +}); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.ts new file mode 100644 index 0000000000000..4ea5aaecb67f9 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/get_system_message_from_instructions.ts @@ -0,0 +1,62 @@ +/* + * 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 { compact } from 'lodash'; +import { v4 } from 'uuid'; +import { UserInstruction } from '../../../common/types'; +import { withTokenBudget } from '../../../common/utils/with_token_budget'; +import { RegisteredInstruction } from '../types'; + +export function getSystemMessageFromInstructions({ + registeredInstructions, + knowledgeBaseInstructions, + requestInstructions, + availableFunctionNames, +}: { + registeredInstructions: RegisteredInstruction[]; + knowledgeBaseInstructions: UserInstruction[]; + requestInstructions: Array<UserInstruction | string>; + availableFunctionNames: string[]; +}): string { + const allRegisteredInstructions = compact( + registeredInstructions.flatMap((instruction) => { + if (typeof instruction === 'function') { + return instruction({ availableFunctionNames }); + } + return instruction; + }) + ); + + const requestInstructionsWithId = requestInstructions.map((instruction) => + typeof instruction === 'string' ? { doc_id: v4(), text: instruction } : instruction + ); + + const requestOverrideIds = requestInstructionsWithId.map((instruction) => instruction.doc_id); + + // all request instructions, and those from the KB that are not defined as a request instruction + const allUserInstructions = requestInstructionsWithId.concat( + knowledgeBaseInstructions.filter( + (instruction) => !requestOverrideIds.includes(instruction.doc_id) + ) + ); + + const instructionsWithinBudget = withTokenBudget(allUserInstructions, 1000); + + return [ + ...allRegisteredInstructions, + ...(instructionsWithinBudget.length + ? [ + `What follows is a set of instructions provided by the user, please abide by them as long as they don't conflict with anything you've been told so far:`, + ...instructionsWithinBudget, + ] + : []), + ] + .map((instruction) => { + return typeof instruction === 'string' ? instruction : instruction.text; + }) + .join('\n\n'); +} diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/replace_system_message.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/replace_system_message.ts new file mode 100644 index 0000000000000..c8c3b251c53e5 --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/util/replace_system_message.ts @@ -0,0 +1,21 @@ +/* + * 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 { Message, MessageRole } from '../../../common'; + +export function replaceSystemMessage(systemMessage: string, messages: Message[]): Message[] { + return [ + { + '@timestamp': new Date().toISOString(), + message: { + role: MessageRole.System, + content: systemMessage, + }, + }, + ...messages.filter((msg) => msg.message.role !== MessageRole.System), + ]; +} diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_body.stories.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_body.stories.tsx index a6768198441da..b556617726fef 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_body.stories.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_body.stories.tsx @@ -7,12 +7,10 @@ import { ComponentMeta, ComponentStoryObj } from '@storybook/react'; import React from 'react'; -import { - getAssistantSystemMessage, - MessageRole, -} from '@kbn/observability-ai-assistant-plugin/public'; +import { MessageRole } from '@kbn/observability-ai-assistant-plugin/public'; import { KibanaReactStorybookDecorator } from '../../utils/storybook_decorator'; import { ChatBody as Component } from './chat_body'; +import { buildSystemMessage } from '../../utils/builders'; const meta: ComponentMeta<typeof Component> = { component: Component, @@ -25,7 +23,7 @@ const defaultProps: ComponentStoryObj<typeof Component> = { args: { initialTitle: 'My Conversation', initialMessages: [ - getAssistantSystemMessage({ contexts: [] }), + buildSystemMessage(), { '@timestamp': new Date().toISOString(), message: { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_flyout.stories.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_flyout.stories.tsx index 827c15ed44be2..edae806698662 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_flyout.stories.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/components/chat/chat_flyout.stories.tsx @@ -7,7 +7,7 @@ import { ComponentStory } from '@storybook/react'; import React from 'react'; -import { getAssistantSystemMessage } from '@kbn/observability-ai-assistant-plugin/public'; +import { buildSystemMessage } from '../../utils/builders'; import { KibanaReactStorybookDecorator } from '../../utils/storybook_decorator'; import { ChatFlyout as Component } from './chat_flyout'; @@ -30,7 +30,7 @@ const Template: ComponentStory<typeof Component> = (props: ChatFlyoutProps) => { const defaultProps: ChatFlyoutProps = { isOpen: true, initialTitle: 'How is this working', - initialMessages: [getAssistantSystemMessage({ contexts: [] })], + initialMessages: [buildSystemMessage()], onClose: () => {}, }; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/builders.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/builders.ts index 57bdf17bd9a73..c92915897baf0 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/builders.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/builders.ts @@ -12,7 +12,6 @@ import { type Message, MessageRole, } from '@kbn/observability-ai-assistant-plugin/common'; -import { getAssistantSystemMessage } from '@kbn/observability-ai-assistant-plugin/public'; type BuildMessageProps = DeepPartial<Message> & { message: { @@ -104,7 +103,7 @@ export function buildFunctionResponseMessage( ); } -export function buildConversation(params?: Partial<Conversation>) { +export function buildConversation(params?: Partial<Conversation>): Conversation { return { '@timestamp': '', user: { @@ -115,10 +114,11 @@ export function buildConversation(params?: Partial<Conversation>) { title: '', last_updated: '', }, - messages: [getAssistantSystemMessage({ contexts: [] })], + messages: [buildSystemMessage()], labels: {}, numeric_labels: {}, namespace: '', + public: false, ...params, }; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/create_mock_chat_service.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/create_mock_chat_service.ts index 07fde4462abb6..460722c49be64 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/create_mock_chat_service.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/utils/create_mock_chat_service.ts @@ -6,7 +6,10 @@ */ import type { DeeplyMockedKeys } from '@kbn/utility-types-jest'; -import type { ObservabilityAIAssistantChatService } from '@kbn/observability-ai-assistant-plugin/public'; +import { + MessageRole, + ObservabilityAIAssistantChatService, +} from '@kbn/observability-ai-assistant-plugin/public'; type MockedChatService = DeeplyMockedKeys<ObservabilityAIAssistantChatService>; @@ -15,11 +18,17 @@ export const createMockChatService = (): MockedChatService => { chat: jest.fn(), complete: jest.fn(), sendAnalyticsEvent: jest.fn(), - getContexts: jest.fn().mockReturnValue([{ name: 'core', description: '' }]), getFunctions: jest.fn().mockReturnValue([]), hasFunction: jest.fn().mockReturnValue(false), hasRenderFunction: jest.fn().mockReturnValue(true), renderFunction: jest.fn(), + getSystemMessage: jest.fn().mockReturnValue({ + '@timestamp': new Date().toISOString(), + message: { + role: MessageRole.System, + content: '', + }, + }), }; return mockChatService; }; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/alerts.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/alerts.ts index f287c26e6cd83..7b62ca4f5a6d2 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/alerts.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/alerts.ts @@ -47,7 +47,6 @@ export function registerAlertsFunction({ functions.registerFunction( { name: 'alerts', - contexts: ['core'], description: 'Get alerts for Observability. Display the response in tabular format if appropriate.', descriptionForUser: 'Get alerts for Observability', diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/changes/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/changes/index.ts index c86fe66a4c6e2..89ebfa90cb774 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/changes/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/changes/index.ts @@ -28,7 +28,6 @@ export function registerChangesFunction({ { name: 'changes', description: 'Returns change points like spikes and dips for logs and metrics.', - contexts: ['core'], parameters: changesFunctionParameters, }, async ({ diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.test.ts index e9490a725a640..dd21e8d082eb9 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.test.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.test.ts @@ -108,5 +108,24 @@ describe('correctCommonEsqlMistakes', () => { | WHERE statement LIKE "SELECT%" | STATS avg_duration = AVG(duration)` ); + + expectQuery( + `FROM metrics-apm* + | WHERE metricset.name == "service_destination" AND @timestamp > NOW() - 24 hours + | EVAL total_events = span.destination.service.response_time.count + | EVAL total_latency = span.destination.service.response_time.sum.us + | EVAL is_failure = CASE(event.outcome == "failure", 1, 0) + | STATS + avg_throughput = AVG(total_events), + avg_latency_per_request = AVG(total_latency / total_events), + failure_rate = AVG(is_failure) + BY span.destination.service.resource`, + `FROM metrics-apm* + | WHERE metricset.name == "service_destination" AND @timestamp > NOW() - 24 hours + | EVAL total_events = span.destination.service.response_time.count + | EVAL total_latency = span.destination.service.response_time.sum.us + | EVAL is_failure = CASE(event.outcome == "failure", 1, 0) + | STATS avg_throughput = AVG(total_events), avg_latency_per_request = AVG(total_latency / total_events), failure_rate = AVG(is_failure) BY span.destination.service.resource` + ); }); }); diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.ts index 8b3f18359ce09..01d6e67fe217a 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_common_esql_mistakes.ts @@ -104,7 +104,7 @@ function isValidColumnName(column: string) { } function escapeColumns(line: string) { - const [, command, body] = line.match(/^([A-Za-z_]+)(.*)$/) ?? ['', '', '']; + const [, command, body] = line.match(/^([A-Za-z_]+)(.*)$/s) ?? ['', '', '']; const escapedBody = split(body.trim(), ',') .map((statement) => { @@ -198,7 +198,7 @@ function escapeExpressionsInSort(sortCommand: string) { export function correctCommonEsqlMistakes(content: string, log: Logger) { return content.replaceAll(/```esql\n(.*?)\n```/gms, (_, query: string) => { - const commands = splitIntoCommands(query); + const commands = splitIntoCommands(query.trim()); const formattedCommands: string[] = commands.map(({ name, command }, index) => { let formattedCommand = command; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts index 213b7e967970a..15b050c3a3897 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/correct_query_with_actions.ts @@ -22,6 +22,7 @@ const fixedQueryByOneAction = async (queryString: string) => { const correctText = firstAction.edits[0].text; const problematicString = queryString.substring(range.startColumn - 1, range.endColumn - 1); const fixedQuery = queryString.replace(problematicString, correctText); + return { query: fixedQuery, shouldRunAgain: Boolean(actions.length), diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/index.ts index 7c33b119340aa..2cf8600d9db2f 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/index.ts @@ -23,9 +23,10 @@ import { } from '@kbn/observability-ai-assistant-plugin/common/utils/concatenate_chat_completion_chunks'; import { emitWithConcatenatedMessage } from '@kbn/observability-ai-assistant-plugin/common/utils/emit_with_concatenated_message'; import { createFunctionResponseMessage } from '@kbn/observability-ai-assistant-plugin/common/utils/create_function_response_message'; +import { ESQLSearchReponse } from '@kbn/es-types'; import type { FunctionRegistrationParameters } from '..'; import { correctCommonEsqlMistakes } from './correct_common_esql_mistakes'; -import { correctQueryWithActions } from './correct_query_with_actions'; +import { validateEsqlQuery } from './validate_esql_query'; const readFile = promisify(Fs.readFile); const readdir = promisify(Fs.readdir); @@ -68,15 +69,30 @@ const loadEsqlDocs = once(async () => { ); }); -export function registerQueryFunction({ - client, - functions, - resources, -}: FunctionRegistrationParameters) { +export function registerQueryFunction({ functions, resources }: FunctionRegistrationParameters) { + functions.registerInstruction(({ availableFunctionNames }) => + availableFunctionNames.includes('query') + ? `You MUST use the "query" function when the user wants to: + - visualize data + - run any arbitrary query + - breakdown or filter ES|QL queries that are displayed on the current page + - convert queries from another language to ES|QL + - asks general questions about ES|QL + + DO NOT UNDER ANY CIRCUMSTANCES generate ES|QL queries or explain anything about the ES|QL query language yourself. + DO NOT UNDER ANY CIRCUMSTANCES try to correct an ES|QL query yourself - always use the "query" function for this. + + Even if the "context" function was used before that, follow it up with the "query" function. If a query fails, do not attempt to correct it yourself. Again you should call the "query" function, + even if it has been called before. + + When the "visualize_query" function has been called, a visualization has been displayed to the user. DO NOT UNDER ANY CIRCUMSTANCES follow up a "visualize_query" function call with your own visualization attempt. + If the "execute_query" function has been called, summarize these results for the user. The user does not see a visualization in this case.` + : undefined + ); + functions.registerFunction( { name: 'execute_query', - contexts: ['core'], visibility: FunctionVisibility.UserOnly, description: 'Display the results of an ES|QL query. ONLY use this if the "query" function has been used before or if the user or screen context has provided a query you can use.', @@ -91,25 +107,39 @@ export function registerQueryFunction({ } as const, }, async ({ arguments: { query } }) => { - const response = await ( - await resources.context.core - ).elasticsearch.client.asCurrentUser.transport.request({ + const client = (await resources.context.core).elasticsearch.client.asCurrentUser; + const { error, errorMessages } = await validateEsqlQuery({ + query, + client, + }); + + if (!!error) { + return { + content: { + message: 'The query failed to execute', + error, + errorMessages, + }, + }; + } + const response = (await client.transport.request({ method: 'POST', path: '_query', body: { query, version: ESQL_LATEST_VERSION, }, - }); + })) as ESQLSearchReponse; - return { content: response }; + return { + content: response, + }; } ); functions.registerFunction( { name: 'query', - contexts: ['core'], - description: `This function generates, executes and/or visualizes a query based on the user's request. It also explains how ES|QL works and how to convert queries from one language to another. Make sure you call one of the get_dataset functions first if you need index or field names. This function takes no arguments.`, + description: `This function generates, executes and/or visualizes a query based on the user's request. It also explains how ES|QL works and how to convert queries from one language to another. Make sure you call one of the get_dataset functions first if you need index or field names. This function takes no input.`, visibility: FunctionVisibility.AssistantOnly, }, async ({ messages, connectorId, chat }, signal) => { @@ -140,10 +170,16 @@ export function registerQueryFunction({ Extract data? Request \`DISSECT\` AND \`GROK\`. Convert a column based on a set of conditionals? Request \`EVAL\` and \`CASE\`. + ONLY use ${VisualizeESQLUserIntention.executeAndReturnResults} if you are absolutely sure + it is executable. If one of the get_dataset_info functions were not called before, OR if + one of the get_dataset_info functions returned no data, opt for an explanation only and + mention that there is no data for these indices. You can still use + ${VisualizeESQLUserIntention.generateQueryOnly} and generate an example ES|QL query. + For determining the intention of the user, the following options are available: ${VisualizeESQLUserIntention.generateQueryOnly}: the user only wants to generate the query, - but not run it. + but not run it, or they ask a general question about ES|QL. ${VisualizeESQLUserIntention.executeAndReturnResults}: the user wants to execute the query, and have the assistant return/analyze/summarize the results. they don't need a @@ -356,10 +392,9 @@ export function registerQueryFunction({ if (msg.message.function_call.name) { return msg; } - let esqlQuery = correctCommonEsqlMistakes(msg.message.content, resources.logger).match( - /```esql([\s\S]*?)```/ - )?.[1]; - esqlQuery = await correctQueryWithActions(esqlQuery ?? ''); + const esqlQuery = correctCommonEsqlMistakes(msg.message.content, resources.logger) + .match(/```esql([\s\S]*?)```/)?.[1] + ?.trim(); let functionCall: ConcatenatedMessage['message']['function_call'] | undefined; @@ -401,6 +436,7 @@ export function registerQueryFunction({ name: 'query', content: {}, data: { + // add the included docs for debugging documentation: { intention: args.intention, keywords, diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/validate_esql_query.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/validate_esql_query.ts new file mode 100644 index 0000000000000..dafba4352634e --- /dev/null +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/query/validate_esql_query.ts @@ -0,0 +1,71 @@ +/* + * 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 { validateQuery } from '@kbn/esql-validation-autocomplete'; +import { getAstAndSyntaxErrors } from '@kbn/esql-ast'; +import type { ElasticsearchClient } from '@kbn/core/server'; +import { ESQL_LATEST_VERSION } from '@kbn/esql-utils'; +import { ESQLSearchReponse } from '@kbn/es-types'; +import { esFieldTypeToKibanaFieldType, type KBN_FIELD_TYPES } from '@kbn/field-types'; + +export async function validateEsqlQuery({ + query, + client, +}: { + query: string; + client: ElasticsearchClient; +}): Promise<{ + columns?: Array<{ + id: string; + name: string; + meta: { + type: KBN_FIELD_TYPES; + }; + }>; + error?: Error; + errorMessages?: string[]; +}> { + const { errors } = await validateQuery(query, getAstAndSyntaxErrors, { + // setting this to true, we don't want to validate the index / fields existence + ignoreOnMissingCallbacks: true, + }); + + const errorMessages = errors?.map((error) => { + return 'text' in error ? error.text : error.message; + }); + + // With limit 0 I get only the columns, it is much more performant + const performantQuery = `${query} | limit 0`; + + return client.transport + .request({ + method: 'POST', + path: '_query', + body: { + query: performantQuery, + version: ESQL_LATEST_VERSION, + }, + }) + .then((res) => { + const esqlResponse = res as ESQLSearchReponse; + + const columns = + esqlResponse.columns?.map(({ name, type }) => ({ + id: name, + name, + meta: { type: esFieldTypeToKibanaFieldType(type) }, + })) ?? []; + + return { columns }; + }) + .catch((error) => { + return { + error, + errorMessages, + }; + }); +} diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/visualize_esql.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/visualize_esql.ts index e8b2320b917c1..1a7d64c0d324f 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/visualize_esql.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/functions/visualize_esql.ts @@ -4,14 +4,10 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { esFieldTypeToKibanaFieldType } from '@kbn/field-types'; -import type { ESQLSearchReponse } from '@kbn/es-types'; -import { validateQuery } from '@kbn/esql-validation-autocomplete'; -import { getAstAndSyntaxErrors } from '@kbn/esql-ast'; -import { ESQL_LATEST_VERSION } from '@kbn/esql-utils'; import { VisualizeESQLUserIntention } from '@kbn/observability-ai-assistant-plugin/common/functions/visualize_esql'; import { visualizeESQLFunction } from '../../common/functions/visualize_esql'; import { FunctionRegistrationParameters } from '.'; +import { validateEsqlQuery } from './query/validate_esql_query'; const getMessageForLLM = ( intention: VisualizeESQLUserIntention, @@ -34,37 +30,12 @@ export function registerVisualizeESQLFunction({ functions.registerFunction( visualizeESQLFunction, async ({ arguments: { query, intention }, connectorId, messages }, signal) => { - // recomputing the errors here as the user might click the Visualize query button - // and call the function manually. - const { errors } = await validateQuery(query, getAstAndSyntaxErrors, { - // setting this to true, we don't want to validate the index / fields existence - ignoreOnMissingCallbacks: true, + const { columns, errorMessages } = await validateEsqlQuery({ + query, + client: (await resources.context.core).elasticsearch.client.asCurrentUser, }); - const errorMessages = errors?.map((error) => { - return 'text' in error ? error.text : error.message; - }); - // With limit 0 I get only the columns, it is much more performant - const performantQuery = `${query} | limit 0`; - const coreContext = await resources.context.core; - - const response = (await ( - await coreContext - ).elasticsearch.client.asCurrentUser.transport.request({ - method: 'POST', - path: '_query', - body: { - query: performantQuery, - version: ESQL_LATEST_VERSION, - }, - })) as ESQLSearchReponse; - const columns = - response.columns?.map(({ name, type }) => ({ - id: name, - name, - meta: { type: esFieldTypeToKibanaFieldType(type) }, - })) ?? []; - const message = getMessageForLLM(intention, query, Boolean(errorMessages.length)); + const message = getMessageForLLM(intention, query, Boolean(errorMessages?.length)); return { data: { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts index 7990f353062da..190ce8c9ef95c 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.test.ts @@ -82,7 +82,8 @@ describe('observabilityAIAssistant rule_connector', () => { service: { getClient: async () => ({ complete: completeMock }), getFunctionClient: async () => ({ - getContexts: () => [{ name: 'core', description: 'my_system_message' }], + getFunctions: () => [], + getInstructions: () => [], }), }, context: { @@ -119,6 +120,7 @@ describe('observabilityAIAssistant rule_connector', () => { expect(result).toEqual({ actionId: 'observability-ai-assistant', status: 'ok' }); expect(initResources).toHaveBeenCalledTimes(1); expect(completeMock).toHaveBeenCalledTimes(1); + expect(completeMock).toHaveBeenCalledWith( expect.objectContaining({ persist: true, @@ -130,7 +132,7 @@ describe('observabilityAIAssistant rule_connector', () => { '@timestamp': expect.any(String), message: { role: MessageRole.System, - content: 'my_system_message', + content: '', }, }, { diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.ts index 567c326945ef8..b46fec93d1dd1 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/server/rule_connector/index.ts @@ -32,6 +32,7 @@ import { } from '@kbn/observability-ai-assistant-plugin/common'; import { concatenateChatCompletionChunks } from '@kbn/observability-ai-assistant-plugin/common/utils/concatenate_chat_completion_chunks'; import { CompatibleJSONSchema } from '@kbn/observability-ai-assistant-plugin/common/functions/types'; +import { getSystemMessageFromInstructions } from '@kbn/observability-ai-assistant-plugin/server/service/util/get_system_message_from_instructions'; import { convertSchemaToOpenApi } from './convert_schema_to_open_api'; import { OBSERVABILITY_AI_ASSISTANT_CONNECTOR_ID } from '../../common/rule_connector'; @@ -171,9 +172,6 @@ async function executor( }); }); - const systemMessage = functionClient - .getContexts() - .find((def) => def.name === 'core')?.description; const backgroundInstruction = getBackgroundProcessInstruction( execOptions.params.rule, execOptions.params.alerts @@ -193,7 +191,12 @@ async function executor( '@timestamp': new Date().toISOString(), message: { role: MessageRole.System, - content: systemMessage, + content: getSystemMessageFromInstructions({ + availableFunctionNames: functionClient.getFunctions().map((fn) => fn.definition.name), + registeredInstructions: functionClient.getInstructions(), + knowledgeBaseInstructions: [], + requestInstructions: [], + }), }, }, { From 9d5abba33898de51b41d3b9397db05e66b13f16b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?= <efeguerkan.yalaman@elastic.co> Date: Wed, 24 Apr 2024 11:35:36 +0200 Subject: [PATCH 105/183] [Search] Move Attach Index to top (#181446) ## Summary https://github.com/elastic/kibana/assets/1410658/de571e71-88c1-4576-94ee-55763ba8af98 <img width="873" alt="Screenshot 2024-04-23 at 16 27 52" src="https://github.com/elastic/kibana/assets/1410658/bbc4fb1c-6dd5-49f2-bd52-9d47c41b0be8"> ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- .../connector_configuration.tsx | 533 +++++++++--------- .../native_connector_configuration.tsx | 191 ++++--- 2 files changed, 350 insertions(+), 374 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx index 09814ebab8b7c..3f05c4d305110 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/connector_configuration.tsx @@ -96,307 +96,278 @@ export const ConnectorConfiguration: React.FC = () => { <EuiFlexGroup> <EuiFlexItem grow={2}> <EuiPanel hasShadow={false} hasBorder> - <EuiSteps - steps={[ - { - children: connector.index_name ? ( - <ApiKeyConfig - indexName={connector.index_name} - hasApiKey={!!connector.api_key_id} - isNative={false} - /> - ) : ( - i18n.translate( - 'xpack.enterpriseSearch.content.connectorDetail.configuration.apiKey.noApiKeyLabel', - { - defaultMessage: - 'Before you can generate an API key, you need to attach an index. Scroll to the bottom of this page for instructions.', - } - ) - ), - status: hasApiKey ? 'complete' : 'incomplete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.generateApiKey.title', + { + <> + <EuiSpacer /> + <AttachIndexBox connector={connector} /> + </> + } + {connector.index_name && ( + <> + <EuiSpacer /> + <EuiSteps + steps={[ { - defaultMessage: 'Generate an API key', - } - ), - titleSize: 'xs', - }, - { - children: ( - <> - <EuiSpacer /> - <EuiText size="s"> - <FormattedMessage - id="xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.description.thirdParagraph" - defaultMessage="In this step, you will need to clone or fork the elastic/connectors repository, and copy the API key and connector ID values to the config.yml file. Here's an {exampleLink}." - values={{ - exampleLink: ( - <EuiLink - data-test-subj="entSearchContent-connector-configuration-exampleConfigFileLink" - data-telemetry-id="entSearchContent-connector-configuration-exampleConfigFileLink" - href="https://github.com/elastic/connectors-python/blob/main/config.yml.example" - target="_blank" - external - > - {i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.configurationFileLink', - { defaultMessage: 'example config file' } - )} - </EuiLink> - ), - }} - /> - </EuiText> - <EuiSpacer /> - <EuiCodeBlock fontSize="m" paddingSize="m" color="dark" isCopyable> - {getConnectorTemplate({ - apiKeyData, - connectorData: { - id: connector.id, - service_type: connector.service_type, - }, - host: cloudContext.elasticsearchUrl, - })} - </EuiCodeBlock> - <EuiSpacer /> - <EuiText size="s"> - <FormattedMessage - id="xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.description.fourthParagraph" - defaultMessage="Because this connector is self-managed, you need to deploy the connector service on your own infrastructure. You can build from source or use Docker. Refer to the {link} for your deployment options." - values={{ - link: ( - <EuiLink - data-test-subj="entSearchContent-connector-configuration-deploymentModeLink" - data-telemetry-id="entSearchContent-connector-configuration-deploymentModeLink" - href={docLinks.connectorsClientDeploy} - target="_blank" - external - > - {i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.deploymentModeLink', - { defaultMessage: 'documentation' } - )} - </EuiLink> - ), - }} + children: ( + <ApiKeyConfig + indexName={connector.index_name} + hasApiKey={!!connector.api_key_id} + isNative={false} /> - </EuiText> - </> - ), - status: - !connector.status || connector.status === ConnectorStatus.CREATED - ? 'incomplete' - : 'complete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.deployConnector.title', + ), + status: hasApiKey ? 'complete' : 'incomplete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.generateApiKey.title', + { + defaultMessage: 'Generate an API key', + } + ), + titleSize: 'xs', + }, { - defaultMessage: 'Set up and deploy connector', - } - ), - titleSize: 'xs', - }, - { - children: ( - <ConnectorConfigurationComponent - connector={connector} - hasPlatinumLicense={hasPlatinumLicense} - isLoading={updateConnectorConfigurationStatus === Status.LOADING} - saveConfig={(configuration) => - updateConnectorConfiguration({ - configuration, - connectorId: connector.id, - }) - } - subscriptionLink={docLinks.licenseManagement} - stackManagementLink={http.basePath.prepend( - '/app/management/stack/license_management' - )} - > - {!connector.status || connector.status === ConnectorStatus.CREATED ? ( - <EuiCallOut - title={i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.waitingForConnectorTitle', - { - defaultMessage: 'Waiting for your connector', - } - )} - iconType="iInCircle" - > - {i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.waitingForConnectorText', - { - defaultMessage: - 'Your connector has not connected to Search. Troubleshoot your configuration and refresh the page.', - } - )} - <EuiSpacer size="s" /> - <EuiButton - disabled={!index} - data-test-subj="entSearchContent-connector-configuration-recheckNow" - data-telemetry-id="entSearchContent-connector-configuration-recheckNow" - iconType="refresh" - onClick={() => fetchConnector({ connectorId: connector.id })} - isLoading={isLoading} - > - {i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.waitingForConnector.button.label', - { - defaultMessage: 'Recheck now', - } - )} - </EuiButton> - </EuiCallOut> - ) : ( - <EuiCallOut - iconType="check" - color="success" - title={i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.connectorConnected', - { - defaultMessage: - 'Your connector {name} has connected to Search successfully.', - values: { name: connector.name }, - } - )} - /> - )} - <EuiSpacer size="s" /> - {connector.status && hasAdvancedFilteringFeature && !!advancedSnippet && ( - <EuiCallOut - title={i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedRulesCallout', - { defaultMessage: 'Configuration warning' } + children: ( + <> + <EuiSpacer /> + <EuiText size="s"> + <FormattedMessage + id="xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.description.thirdParagraph" + defaultMessage="In this step, you will need to clone or fork the elastic/connectors repository, and copy the API key and connector ID values to the config.yml file. Here's an {exampleLink}." + values={{ + exampleLink: ( + <EuiLink + data-test-subj="entSearchContent-connector-configuration-exampleConfigFileLink" + data-telemetry-id="entSearchContent-connector-configuration-exampleConfigFileLink" + href="https://github.com/elastic/connectors-python/blob/main/config.yml.example" + target="_blank" + external + > + {i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.configurationFileLink', + { defaultMessage: 'example config file' } + )} + </EuiLink> + ), + }} + /> + </EuiText> + <EuiSpacer /> + <EuiCodeBlock fontSize="m" paddingSize="m" color="dark" isCopyable> + {getConnectorTemplate({ + apiKeyData, + connectorData: { + id: connector.id, + service_type: connector.service_type, + }, + host: cloudContext.elasticsearchUrl, + })} + </EuiCodeBlock> + <EuiSpacer /> + <EuiText size="s"> + <FormattedMessage + id="xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.description.fourthParagraph" + defaultMessage="Because this connector is self-managed, you need to deploy the connector service on your own infrastructure. You can build from source or use Docker. Refer to the {link} for your deployment options." + values={{ + link: ( + <EuiLink + data-test-subj="entSearchContent-connector-configuration-deploymentModeLink" + data-telemetry-id="entSearchContent-connector-configuration-deploymentModeLink" + href={docLinks.connectorsClientDeploy} + target="_blank" + external + > + {i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.deploymentModeLink', + { defaultMessage: 'documentation' } + )} + </EuiLink> + ), + }} + /> + </EuiText> + </> + ), + status: + !connector.status || connector.status === ConnectorStatus.CREATED + ? 'incomplete' + : 'complete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.deployConnector.title', + { + defaultMessage: 'Set up and deploy connector', + } + ), + titleSize: 'xs', + }, + { + children: ( + <ConnectorConfigurationComponent + connector={connector} + hasPlatinumLicense={hasPlatinumLicense} + isLoading={updateConnectorConfigurationStatus === Status.LOADING} + saveConfig={(configuration) => + updateConnectorConfiguration({ + configuration, + connectorId: connector.id, + }) + } + subscriptionLink={docLinks.licenseManagement} + stackManagementLink={http.basePath.prepend( + '/app/management/stack/license_management' )} - iconType="iInCircle" - color="warning" > - <FormattedMessage - id="xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedRulesCallout.description" - defaultMessage="{advancedSyncRulesDocs} can override some configuration fields." - values={{ - advancedSyncRulesDocs: ( - <EuiLink - data-test-subj="entSearchContent-connector-configuration-advancedSyncRulesDocsLink" - data-telemetry-id="entSearchContent-connector-configuration-advancedSyncRulesDocsLink" - href={docLinks.syncRules} - target="_blank" - > - {i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedSyncRulesDocs', - { defaultMessage: 'Advanced Sync Rules' } - )} - </EuiLink> - ), - }} - /> - </EuiCallOut> - )} - </ConnectorConfigurationComponent> - ), - status: - connector.status === ConnectorStatus.CONNECTED ? 'complete' : 'incomplete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.enhance.title', - { - defaultMessage: 'Configure your connector', - } - ), - titleSize: 'xs', - }, - { - children: ( - <EuiFlexGroup direction="column"> - {!connector.index_name && ( - <EuiFlexItem> - <EuiCallOut - iconType="iInCircle" - color="danger" - title={i18n.translate( - 'xpack.enterpriseSearch.content.connectors.configuration.connectorNoIndexCallOut.title', - { - defaultMessage: 'Connector has no attached index', - } - )} - > - <EuiSpacer size="s" /> - <EuiText size="s"> + {!connector.status || connector.status === ConnectorStatus.CREATED ? ( + <EuiCallOut + title={i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.waitingForConnectorTitle', + { + defaultMessage: 'Waiting for your connector', + } + )} + iconType="iInCircle" + > {i18n.translate( - 'xpack.enterpriseSearch.content.connectors.configuration.connectorNoIndexCallOut.description', + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.waitingForConnectorText', { defaultMessage: - "You won't be able to start syncing content until your connector is attached to an index.", + 'Your connector has not connected to Search. Troubleshoot your configuration and refresh the page.', } )} - </EuiText> - <EuiSpacer /> - </EuiCallOut> - </EuiFlexItem> - )} - <EuiFlexItem> - <EuiText size="s"> - {i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.scheduleSync.description', - { - defaultMessage: - 'Finalize your connector by triggering a one-time sync, or setting a recurring sync to keep your data source in sync over time', - } + <EuiSpacer size="s" /> + <EuiButton + disabled={!index} + data-test-subj="entSearchContent-connector-configuration-recheckNow" + data-telemetry-id="entSearchContent-connector-configuration-recheckNow" + iconType="refresh" + onClick={() => fetchConnector({ connectorId: connector.id })} + isLoading={isLoading} + > + {i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.waitingForConnector.button.label', + { + defaultMessage: 'Recheck now', + } + )} + </EuiButton> + </EuiCallOut> + ) : ( + <EuiCallOut + iconType="check" + color="success" + title={i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.connectorConnected', + { + defaultMessage: + 'Your connector {name} has connected to Search successfully.', + values: { name: connector.name }, + } + )} + /> )} - </EuiText> - </EuiFlexItem> - <EuiFlexItem> - <EuiFlexGroup responsive={false}> - <EuiFlexItem grow={false}> - <EuiButtonTo - data-test-subj="entSearchContent-connector-configuration-setScheduleAndSync" - data-telemetry-id="entSearchContent-connector-configuration-setScheduleAndSync" - isDisabled={ - (connector?.is_native && !!errorConnectingMessage) || - [ - ConnectorStatus.NEEDS_CONFIGURATION, - ConnectorStatus.CREATED, - ].includes(connector?.status) || - !connector?.index_name - } - to={`${generateEncodedPath(CONNECTOR_DETAIL_TAB_PATH, { - connectorId: connector.id, - tabId: ConnectorDetailTabId.SCHEDULING, - })}`} + <EuiSpacer size="s" /> + {connector.status && hasAdvancedFilteringFeature && !!advancedSnippet && ( + <EuiCallOut + title={i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedRulesCallout', + { defaultMessage: 'Configuration warning' } + )} + iconType="iInCircle" + color="warning" > + <FormattedMessage + id="xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedRulesCallout.description" + defaultMessage="{advancedSyncRulesDocs} can override some configuration fields." + values={{ + advancedSyncRulesDocs: ( + <EuiLink + data-test-subj="entSearchContent-connector-configuration-advancedSyncRulesDocsLink" + data-telemetry-id="entSearchContent-connector-configuration-advancedSyncRulesDocsLink" + href={docLinks.syncRules} + target="_blank" + > + {i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedSyncRulesDocs', + { defaultMessage: 'Advanced Sync Rules' } + )} + </EuiLink> + ), + }} + /> + </EuiCallOut> + )} + </ConnectorConfigurationComponent> + ), + status: + connector.status === ConnectorStatus.CONNECTED ? 'complete' : 'incomplete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.enhance.title', + { + defaultMessage: 'Configure your connector', + } + ), + titleSize: 'xs', + }, + { + children: ( + <EuiFlexGroup direction="column"> + <EuiFlexItem> + <EuiText size="s"> {i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.schedule.button.label', + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.scheduleSync.description', { - defaultMessage: 'Set schedule and sync', + defaultMessage: + 'Finalize your connector by triggering a one-time sync, or setting a recurring sync to keep your data source in sync over time', } )} - </EuiButtonTo> + </EuiText> </EuiFlexItem> - <EuiFlexItem grow={false}> - <SyncsContextMenu /> + <EuiFlexItem> + <EuiFlexGroup responsive={false}> + <EuiFlexItem grow={false}> + <EuiButtonTo + data-test-subj="entSearchContent-connector-configuration-setScheduleAndSync" + data-telemetry-id="entSearchContent-connector-configuration-setScheduleAndSync" + isDisabled={ + (connector?.is_native && !!errorConnectingMessage) || + [ + ConnectorStatus.NEEDS_CONFIGURATION, + ConnectorStatus.CREATED, + ].includes(connector?.status) || + !connector?.index_name + } + to={`${generateEncodedPath(CONNECTOR_DETAIL_TAB_PATH, { + connectorId: connector.id, + tabId: ConnectorDetailTabId.SCHEDULING, + })}`} + > + {i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.schedule.button.label', + { + defaultMessage: 'Set schedule and sync', + } + )} + </EuiButtonTo> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <SyncsContextMenu /> + </EuiFlexItem> + </EuiFlexGroup> </EuiFlexItem> </EuiFlexGroup> - </EuiFlexItem> - </EuiFlexGroup> - ), - status: connector.scheduling.full.enabled ? 'complete' : 'incomplete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.schedule.title', - { - defaultMessage: 'Sync your data', - } - ), - titleSize: 'xs', - }, - ]} - /> + ), + status: connector.scheduling.full.enabled ? 'complete' : 'incomplete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.connector_detail.configurationConnector.steps.schedule.title', + { + defaultMessage: 'Sync your data', + } + ), + titleSize: 'xs', + }, + ]} + /> + </> + )} </EuiPanel> - { - <> - <EuiSpacer /> - <AttachIndexBox connector={connector} /> - </> - } </EuiFlexItem> <EuiFlexItem grow={1}> <EuiFlexGroup direction="column"> diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx index cc89fc84c2432..4660ad75fe905 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connector_detail/native_connector_configuration.tsx @@ -142,106 +142,111 @@ export const NativeConnectorConfiguration: React.FC = () => { <EuiSpacer /> </> )} - <EuiSteps - steps={[ - { - children: <ResearchConfiguration nativeConnector={nativeConnector} />, - status: hasResearched ? 'complete' : 'incomplete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.researchConfigurationTitle', + { + <> + <EuiSpacer /> + <AttachIndexBox connector={connector} /> + </> + } + {connector.index_name && ( + <> + <EuiSpacer /> + <EuiSteps + steps={[ { - defaultMessage: 'Research configuration requirements', - } - ), - titleSize: 'xs', - }, - { - children: ( - <NativeConnectorConfigurationConfig - connector={connector} - nativeConnector={nativeConnector} - status={connector.status} - /> - ), - status: hasConfigured ? 'complete' : 'incomplete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.configurationTitle', + children: <ResearchConfiguration nativeConnector={nativeConnector} />, + status: hasResearched ? 'complete' : 'incomplete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.researchConfigurationTitle', + { + defaultMessage: 'Research configuration requirements', + } + ), + titleSize: 'xs', + }, { - defaultMessage: 'Configuration', - } - ), - titleSize: 'xs', - }, - { - children: ( - <ApiKeyConfig - indexName={connector.index_name || ''} - hasApiKey={hasApiKey} - isNative - /> - ), - status: hasApiKey ? 'complete' : 'incomplete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.manageApiKeyTitle', + children: ( + <NativeConnectorConfigurationConfig + connector={connector} + nativeConnector={nativeConnector} + status={connector.status} + /> + ), + status: hasConfigured ? 'complete' : 'incomplete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.configurationTitle', + { + defaultMessage: 'Configuration', + } + ), + titleSize: 'xs', + }, { - defaultMessage: 'Manage API key', - } - ), - titleSize: 'xs', - }, - { - children: ( - <EuiFlexGroup direction="column"> - <EuiFlexItem> - <EuiText size="s"> - <FormattedMessage - id="xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnectorAdvancedConfiguration.description" - defaultMessage="Finalize your connector by triggering a one time sync, or setting a recurring sync schedule." - /> - </EuiText> - </EuiFlexItem> - <EuiFlexItem> - <EuiFlexGroup responsive={false}> - <EuiFlexItem grow={false}> - <EuiButtonTo - to={`${generateEncodedPath(CONNECTOR_DETAIL_TAB_PATH, { - connectorId: connector.id, - tabId: ConnectorDetailTabId.SCHEDULING, - })}`} - > - {i18n.translate( - 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnectorAdvancedConfiguration.schedulingButtonLabel', - { - defaultMessage: 'Set schedule and sync', - } - )} - </EuiButtonTo> + children: ( + <ApiKeyConfig + indexName={connector.index_name || ''} + hasApiKey={hasApiKey} + isNative + /> + ), + status: hasApiKey ? 'complete' : 'incomplete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.manageApiKeyTitle', + { + defaultMessage: 'Manage API key', + } + ), + titleSize: 'xs', + }, + { + children: ( + <EuiFlexGroup direction="column"> + <EuiFlexItem> + <EuiText size="s"> + <FormattedMessage + id="xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnectorAdvancedConfiguration.description" + defaultMessage="Finalize your connector by triggering a one time sync, or setting a recurring sync schedule." + /> + </EuiText> </EuiFlexItem> - <EuiFlexItem grow={false}> - <SyncsContextMenu /> + <EuiFlexItem> + <EuiFlexGroup responsive={false}> + <EuiFlexItem grow={false}> + <EuiButtonTo + to={`${generateEncodedPath(CONNECTOR_DETAIL_TAB_PATH, { + connectorId: connector.id, + tabId: ConnectorDetailTabId.SCHEDULING, + })}`} + > + {i18n.translate( + 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnectorAdvancedConfiguration.schedulingButtonLabel', + { + defaultMessage: 'Set schedule and sync', + } + )} + </EuiButtonTo> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <SyncsContextMenu /> + </EuiFlexItem> + </EuiFlexGroup> </EuiFlexItem> </EuiFlexGroup> - </EuiFlexItem> - </EuiFlexGroup> - ), - status: hasConfiguredAdvanced ? 'complete' : 'incomplete', - title: i18n.translate( - 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.advancedConfigurationTitle', - { - defaultMessage: 'Sync your data', - } - ), - titleSize: 'xs', - }, - ]} - /> + ), + status: hasConfiguredAdvanced ? 'complete' : 'incomplete', + title: i18n.translate( + 'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.advancedConfigurationTitle', + { + defaultMessage: 'Sync your data', + } + ), + titleSize: 'xs', + }, + ]} + /> + </> + )} </EuiPanel> - { - <> - <EuiSpacer /> - <AttachIndexBox connector={connector} /> - </> - } </EuiFlexItem> <EuiFlexItem grow={1}> <EuiFlexGroup direction="column"> From 42e6f0cd73f9d80944136925f844757a0d775dc2 Mon Sep 17 00:00:00 2001 From: Angela Chuang <6295984+angorayc@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:41:21 +0100 Subject: [PATCH 106/183] [SecuritySolution] Add "exist filter" when value count is filtered in Lens cell action (#181151) ## Summary Original issue and steps to reproduce: https://github.com/elastic/kibana/issues/181120 Before: https://github.com/elastic/kibana/assets/6295984/10c7a2ce-d814-4750-8481-8f05b55384f8 After: https://github.com/elastic/kibana/assets/6295984/00dfbcb6-244b-4f2b-8dd4-a1f7435385cf ### Checklist Delete any items that are not applicable to this PR. - [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: Sergi Massaneda <sergi.massaneda@gmail.com> --- .../src/actions/filter/add_filter.ts | 41 ++++ .../src/actions/filter/create_filter.ts | 5 +- .../src/actions/filter/filter_in.ts | 6 +- .../src/actions/filter/filter_out.ts | 7 +- .../src/actions/filter/index.ts | 1 + packages/kbn-cell-actions/src/index.ts | 1 + .../actions/filter/lens/create_action.test.ts | 190 ++++++++++++++++++ .../actions/filter/lens/create_action.ts | 40 +++- 8 files changed, 270 insertions(+), 21 deletions(-) create mode 100644 packages/kbn-cell-actions/src/actions/filter/add_filter.ts create mode 100644 x-pack/plugins/security_solution/public/actions/filter/lens/create_action.test.ts diff --git a/packages/kbn-cell-actions/src/actions/filter/add_filter.ts b/packages/kbn-cell-actions/src/actions/filter/add_filter.ts new file mode 100644 index 0000000000000..484a2bd9792cb --- /dev/null +++ b/packages/kbn-cell-actions/src/actions/filter/add_filter.ts @@ -0,0 +1,41 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { FilterManager } from '@kbn/data-plugin/public'; +import type { DefaultActionsSupportedValue } from '../types'; +import { createExistsFilter, createFilter } from './create_filter'; + +interface AddFilterParams { + filterManager: FilterManager; + key: string; + value: DefaultActionsSupportedValue; + negate: boolean; + dataViewId?: string; +} + +export const addFilter = ({ filterManager, key, value, negate, dataViewId }: AddFilterParams) => { + filterManager.addFilters(createFilter({ key, value, negate, dataViewId })); +}; + +interface AddExistsFilterParams { + filterManager: FilterManager; + key: string; + negate: boolean; + dataViewId?: string; +} +export const addExistsFilter = ({ + filterManager, + key, + negate, + dataViewId, +}: AddExistsFilterParams) => { + filterManager.addFilters(createExistsFilter({ key, negate, dataViewId })); +}; + +export const isEmptyFilterValue = (value: Array<string | number | boolean>) => + value.length === 0 || value.every((v) => v === ''); diff --git a/packages/kbn-cell-actions/src/actions/filter/create_filter.ts b/packages/kbn-cell-actions/src/actions/filter/create_filter.ts index fe10ab7df43d6..a34786ebb693a 100644 --- a/packages/kbn-cell-actions/src/actions/filter/create_filter.ts +++ b/packages/kbn-cell-actions/src/actions/filter/create_filter.ts @@ -15,10 +15,7 @@ import { } from '@kbn/es-query'; import { DefaultActionsSupportedValue } from '../types'; -export const isEmptyFilterValue = (value: Array<string | number | boolean>) => - value.length === 0 || value.every((v) => v === ''); - -const createExistsFilter = ({ +export const createExistsFilter = ({ key, negate, dataViewId, diff --git a/packages/kbn-cell-actions/src/actions/filter/filter_in.ts b/packages/kbn-cell-actions/src/actions/filter/filter_in.ts index 8dd4487bfd944..9e88b97208ba7 100644 --- a/packages/kbn-cell-actions/src/actions/filter/filter_in.ts +++ b/packages/kbn-cell-actions/src/actions/filter/filter_in.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FilterManager, KBN_FIELD_TYPES } from '@kbn/data-plugin/public'; import { NotificationsStart } from '@kbn/core-notifications-browser'; -import { createFilter, isEmptyFilterValue } from './create_filter'; +import { addFilter, isEmptyFilterValue } from './add_filter'; import { FILTER_CELL_ACTION_TYPE } from '../../constants'; import { createCellActionFactory } from '../factory'; import { @@ -77,12 +77,12 @@ export const addFilterIn = ({ dataViewId?: string; }) => { if (filterManager != null) { - const filter = createFilter({ + addFilter({ + filterManager, key: fieldName, value, negate: isEmptyFilterValue(value), dataViewId, }); - filterManager.addFilters(filter); } }; diff --git a/packages/kbn-cell-actions/src/actions/filter/filter_out.ts b/packages/kbn-cell-actions/src/actions/filter/filter_out.ts index e20d7c267b910..56cea2541143e 100644 --- a/packages/kbn-cell-actions/src/actions/filter/filter_out.ts +++ b/packages/kbn-cell-actions/src/actions/filter/filter_out.ts @@ -8,7 +8,8 @@ import { i18n } from '@kbn/i18n'; import type { FilterManager, KBN_FIELD_TYPES } from '@kbn/data-plugin/public'; import { NotificationsStart } from '@kbn/core-notifications-browser'; -import { createFilter, isEmptyFilterValue } from './create_filter'; +import { addFilter, isEmptyFilterValue } from './add_filter'; + import { FILTER_CELL_ACTION_TYPE } from '../../constants'; import { createCellActionFactory } from '../factory'; import { @@ -81,12 +82,12 @@ export const addFilterOut = ({ dataViewId?: string; }) => { if (filterManager != null) { - const filter = createFilter({ + addFilter({ + filterManager, key: fieldName, value, negate: !isEmptyFilterValue(value), dataViewId, }); - filterManager.addFilters(filter); } }; diff --git a/packages/kbn-cell-actions/src/actions/filter/index.ts b/packages/kbn-cell-actions/src/actions/filter/index.ts index 19a32c05db6cb..61908d4700dce 100644 --- a/packages/kbn-cell-actions/src/actions/filter/index.ts +++ b/packages/kbn-cell-actions/src/actions/filter/index.ts @@ -8,3 +8,4 @@ export { createFilterInActionFactory, addFilterIn } from './filter_in'; export { createFilterOutActionFactory, addFilterOut } from './filter_out'; +export { addExistsFilter } from './add_filter'; diff --git a/packages/kbn-cell-actions/src/index.ts b/packages/kbn-cell-actions/src/index.ts index 4e478baec441f..4b7dde4cdcaf1 100644 --- a/packages/kbn-cell-actions/src/index.ts +++ b/packages/kbn-cell-actions/src/index.ts @@ -34,6 +34,7 @@ export { createFilterOutActionFactory, addFilterIn, addFilterOut, + addExistsFilter, } from './actions/filter'; // Action factory diff --git a/x-pack/plugins/security_solution/public/actions/filter/lens/create_action.test.ts b/x-pack/plugins/security_solution/public/actions/filter/lens/create_action.test.ts new file mode 100644 index 0000000000000..1efbbc9960146 --- /dev/null +++ b/x-pack/plugins/security_solution/public/actions/filter/lens/create_action.test.ts @@ -0,0 +1,190 @@ +/* + * 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 { addExistsFilter, addFilterIn, addFilterOut } from '@kbn/cell-actions'; +import { of } from 'rxjs'; +import type { CellValueContext } from '@kbn/embeddable-plugin/public'; +import type { CreateFilterLensActionParams } from './create_action'; +import { createFilterLensAction } from './create_action'; +import type { Trigger } from '@kbn/ui-actions-plugin/public'; + +jest.mock('@kbn/cell-actions', () => ({ + addFilterIn: jest.fn(), + addFilterOut: jest.fn(), + addExistsFilter: jest.fn(), +})); + +jest.mock('../../../timelines/store', () => ({ + timelineSelectors: { + getTimelineByIdSelector: jest.fn().mockReturnValue(() => ({})), + }, +})); + +describe('createFilterLensAction', () => { + const mockServices = { + timelineFilterManager: 'mockTimelineFilterManager', + data: { query: { filterManager: 'mockFilterManager' } }, + application: { currentAppId$: of('appId') }, + topValuesPopover: { + closePopover: jest.fn(), + }, + notifications: { + toasts: { + addWarning: jest.fn(), + }, + }, + }; + const mockStore = { + getState: jest.fn(), + }; + + const mockUserCountData = [ + { + columnMeta: { + field: 'user.count', + sourceParams: { + type: 'value_count', + indexPatternId: 'indexPatternId', + }, + }, + value: [1], + }, + ] as unknown as CellValueContext['data']; + + const mockUserNameData = [ + { + columnMeta: { + field: 'user.name', + sourceParams: { + type: 'string', + indexPatternId: 'indexPatternId', + }, + }, + value: 'elastic', + }, + ] as unknown as CellValueContext['data']; + + const mockTrigger = { + id: 'triggerId', + title: 'triggerTitle', + description: 'triggerDescription', + } as Trigger; + + const params = { + id: 'embeddable_filterIn', + order: 0, + store: mockStore, + services: mockServices, + } as unknown as CreateFilterLensActionParams; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should create a "filter In" action with the field value', async () => { + const { execute } = createFilterLensAction(params); + await execute({ + data: mockUserNameData, + trigger: mockTrigger, + }); + expect(addFilterIn).toHaveBeenCalledWith({ + filterManager: 'mockFilterManager', + fieldName: 'user.name', + value: ['elastic'], + dataViewId: 'indexPatternId', + }); + expect(addFilterOut).not.toHaveBeenCalled(); + }); + + it('should create a "filter Out" action with the field value', async () => { + const testParams = { + ...params, + id: 'embeddable_filterOut', + negate: true, + }; + const { execute } = createFilterLensAction(testParams); + await execute({ + data: mockUserNameData, + trigger: mockTrigger, + }); + expect(addFilterIn).not.toHaveBeenCalled(); + expect(addFilterOut).toHaveBeenCalledWith({ + filterManager: 'mockFilterManager', + fieldName: 'user.name', + value: ['elastic'], + dataViewId: 'indexPatternId', + }); + }); + + it('should create an "exists" filter when value type equals "value_count"', async () => { + const { execute } = createFilterLensAction(params); + await execute({ + data: mockUserCountData, + trigger: mockTrigger, + }); + expect(addExistsFilter).toHaveBeenCalledWith({ + filterManager: 'mockFilterManager', + key: 'user.count', + negate: false, + dataViewId: 'indexPatternId', + }); + }); + + it('should create an "Not exists" filter when value type equals "value_count"', async () => { + const testParams = { + ...params, + negate: true, + }; + const { execute } = createFilterLensAction(testParams); + await execute({ + data: mockUserCountData, + trigger: mockTrigger, + }); + expect(addExistsFilter).toHaveBeenCalledWith({ + filterManager: 'mockFilterManager', + key: 'user.count', + negate: true, + dataViewId: 'indexPatternId', + }); + expect(addFilterIn).not.toHaveBeenCalled(); + }); + + it('should show a warning toast when the value is not supported', async () => { + const { execute } = createFilterLensAction(params); + await execute({ + data: [ + { + columnMeta: { + field: 'user.name', + sourceParams: { + type: 'string', + indexPatternId: 'indexPatternId', + }, + }, + value: [[1], '1', 'foo'], + }, + ] as unknown as CellValueContext['data'], + trigger: mockTrigger, + }); + expect(mockServices.notifications.toasts.addWarning).toHaveBeenCalled(); + }); + + it('should not create a filter when the field is missing', async () => { + const { execute } = createFilterLensAction(params); + await execute({ + data: [ + { + columnMeta: {}, + value: 'elastic', + }, + ] as unknown as CellValueContext['data'], + trigger: mockTrigger, + }); + expect(addFilterIn).not.toHaveBeenCalled(); + expect(addFilterOut).not.toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/actions/filter/lens/create_action.ts b/x-pack/plugins/security_solution/public/actions/filter/lens/create_action.ts index e0da4447506cf..ecfe71bc3a112 100644 --- a/x-pack/plugins/security_solution/public/actions/filter/lens/create_action.ts +++ b/x-pack/plugins/security_solution/public/actions/filter/lens/create_action.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { addFilterIn, addFilterOut } from '@kbn/cell-actions'; +import { addExistsFilter, addFilterIn, addFilterOut } from '@kbn/cell-actions'; import { isValueSupportedByDefaultActions, valueToArray, @@ -31,19 +31,21 @@ function isDataColumnsValid(data?: CellValueContext['data']): boolean { ); } +export interface CreateFilterLensActionParams { + id: string; + order: number; + store: SecurityAppStore; + services: StartServices; + negate?: boolean; +} + export const createFilterLensAction = ({ id, order, store, services, negate, -}: { - id: string; - order: number; - store: SecurityAppStore; - services: StartServices; - negate?: boolean; -}) => { +}: CreateFilterLensActionParams) => { const { application, notifications, data: dataService, topValuesPopover } = services; let currentAppId: string | undefined; @@ -72,6 +74,7 @@ export const createFilterLensAction = ({ isInSecurityApp(currentAppId), execute: async ({ data }) => { const field = data[0]?.columnMeta?.field; + const isCounter = data[0]?.columnMeta?.sourceParams?.type === 'value_count'; const rawValue = data[0]?.value; const mayBeDataViewId = data[0]?.columnMeta?.sourceParams?.indexPatternId; const dataViewId = typeof mayBeDataViewId === 'string' ? mayBeDataViewId : undefined; @@ -87,15 +90,30 @@ export const createFilterLensAction = ({ topValuesPopover.closePopover(); - const addFilter = negate === true ? addFilterOut : addFilterIn; - const timeline = getTimelineById(store.getState(), TimelineId.active); // timeline is open add the filter to timeline, otherwise add filter to global filters const filterManager = timeline?.show ? services.timelineFilterManager : dataService.query.filterManager; - addFilter({ filterManager, fieldName: field, value, dataViewId }); + // If value type is value_count, we want to filter an `Exists` filter instead of a `Term` filter + if (isCounter) { + addExistsFilter({ + filterManager, + key: field, + negate: !!negate, + dataViewId, + }); + return; + } + + const addFilter = negate === true ? addFilterOut : addFilterIn; + addFilter({ + filterManager, + fieldName: field, + value, + dataViewId, + }); }, }); }; From 214833af0bc45dad269529a1904cfbb934da945e Mon Sep 17 00:00:00 2001 From: Dario Gieselaar <dario.gieselaar@elastic.co> Date: Wed, 24 Apr 2024 11:51:58 +0200 Subject: [PATCH 107/183] [Obs AI Assistant] Hide unavailable connectors (#181455) Hides unavailable connectors (e.g. due to license mismatches). --- .../server/routes/connectors/route.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/connectors/route.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/connectors/route.ts index 79134b9fef8d0..24d63d3f7fa06 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/connectors/route.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/connectors/route.ts @@ -20,9 +20,24 @@ const listConnectorsRoute = createObservabilityAIAssistantServerRoute({ await plugins.actions.start() ).getActionsClientWithRequest(request); - const connectors = await actionsClient.getAll(); + const [availableTypes, connectors] = await Promise.all([ + actionsClient + .listTypes({ + includeSystemActionTypes: false, + }) + .then((types) => + types + .filter((type) => type.enabled && type.enabledInLicense && type.enabledInConfig) + .map((type) => type.id) + ), + actionsClient.getAll(), + ]); - return connectors.filter((connector) => isSupportedConnectorType(connector.actionTypeId)); + return connectors.filter( + (connector) => + availableTypes.includes(connector.actionTypeId) && + isSupportedConnectorType(connector.actionTypeId) + ); }, }); From c17ba8cd1078a2885fd8baa7ab8c9faaf6e39671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Wed, 24 Apr 2024 11:08:26 +0100 Subject: [PATCH 108/183] [Profiling] Adding "estimated value" label on sample columns (#181449) The service samples and transaction samples are estimated values, so I'm adding a tooltip to make it clear for users. <img width="883" alt="Screenshot 2024-04-23 at 15 51 44" src="https://github.com/elastic/kibana/assets/55978943/b71284ba-9104-45e5-9546-303279cb11f3"> --- .../apm_transactions.tsx | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/observability_solution/profiling/public/components/frame_information_window/apm_transactions.tsx b/x-pack/plugins/observability_solution/profiling/public/components/frame_information_window/apm_transactions.tsx index 9d5986deca9b2..54ce9ebc9eddb 100644 --- a/x-pack/plugins/observability_solution/profiling/public/components/frame_information_window/apm_transactions.tsx +++ b/x-pack/plugins/observability_solution/profiling/public/components/frame_information_window/apm_transactions.tsx @@ -12,7 +12,9 @@ import { EuiFieldSearch, EuiFlexGroup, EuiFlexItem, + EuiIcon, EuiLink, + EuiToolTip, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { isEmpty } from 'lodash'; @@ -78,6 +80,22 @@ const findServicesAndTransactions = ( }; }; +function EstimatedLabel({ label }: { label: string }) { + return ( + <EuiToolTip + content={i18n.translate('xpack.profiling.functionsView.samplesColumnLabel.hint', { + defaultMessage: 'Estimated values', + })} + > + <> + {label} <EuiIcon size="s" color="subdued" type="questionInCircle" /> + </> + </EuiToolTip> + ); +} + +const SAMPLES_COLUMN_WIDTH = '152px'; + export function APMTransactions({ functionName, serviceNames }: Props) { const { query: { rangeFrom, rangeTo }, @@ -199,11 +217,15 @@ export function APMTransactions({ functionName, serviceNames }: Props) { }, { field: 'serviceSamples', - name: i18n.translate('xpack.profiling.apmTransactions.columns.serviceSamplesName', { - defaultMessage: 'Service Samples', - }), - width: '150px', + width: SAMPLES_COLUMN_WIDTH, sortable: true, + name: ( + <EstimatedLabel + label={i18n.translate('xpack.profiling.apmTransactions.columns.serviceSamplesName', { + defaultMessage: 'Service Samples', + })} + /> + ), render(_, { serviceSamples }) { return asNumber(serviceSamples); }, @@ -239,10 +261,14 @@ export function APMTransactions({ functionName, serviceNames }: Props) { }, { field: 'transactionSamples', - name: i18n.translate('xpack.profiling.apmTransactions.columns.transactionSamples', { - defaultMessage: 'Transaction Samples', - }), - width: '150px', + name: ( + <EstimatedLabel + label={i18n.translate('xpack.profiling.apmTransactions.columns.transactionSamples', { + defaultMessage: 'Transaction Samples', + })} + /> + ), + width: SAMPLES_COLUMN_WIDTH, render(_, { transactionSamples }) { if (isLoadingTransactions) { return '--'; From 67a2eb54c98678b546b08bf6f810f44bd31e1055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= <soren.louv@elastic.co> Date: Wed, 24 Apr 2024 12:36:41 +0200 Subject: [PATCH 109/183] [Obs AI Assistant] Hide insight components when license is incorrect or there are no configured connectors (#181519) Closes https://github.com/elastic/kibana/issues/181435 --- .../public/components/insight/insight.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/insight/insight.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/insight/insight.tsx index fb06d77efee8b..6c96287a28132 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/insight/insight.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/components/insight/insight.tsx @@ -16,8 +16,10 @@ import { EuiCallOut, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { cloneDeep, isArray, last, once } from 'lodash'; +import { cloneDeep, isArray, isEmpty, last, once } from 'lodash'; import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import useObservable from 'react-use/lib/useObservable'; +import { ILicense } from '@kbn/licensing-plugin/public'; import { MessageRole, type Message } from '../../../common/types'; import { ObservabilityAIAssistantChatServiceContext } from '../../context/observability_ai_assistant_chat_service_context'; import { useAbortableAsync } from '../../hooks/use_abortable_async'; @@ -290,9 +292,20 @@ export function Insight({ }; const { - services: { http }, + services: { + http, + plugins: { + start: { licensing }, + }, + }, } = useKibana(); + const license = useObservable<ILicense | null>(licensing.license$); + const hasEnterpriseLicense = license?.hasAtLeast('enterprise'); + if (isEmpty(connectors.connectors) || !hasEnterpriseLicense) { + return null; + } + let children: React.ReactNode = null; if ( From e1ec9ee17e89e1299778cc639f7f4ea085471861 Mon Sep 17 00:00:00 2001 From: Abdul Wahab Zahid <awahab07@yahoo.com> Date: Wed, 24 Apr 2024 13:20:31 +0200 Subject: [PATCH 110/183] [Dataset quality] Flyout Summary section (#179479) Closes https://github.com/elastic/kibana/issues/170492 ## Summary The PR Implements the Dataset Quality Flyout summary KPIs: "Docs count", "Size", "Services", "Hosts" and "Degraded docs". |Stateful|Serverless| |:---:|:---| |<img alt="Screenshot 2024-03-26 at 19 14 34" src="https://github.com/elastic/kibana/assets/2748376/d75de56f-0916-48a6-a101-fc3d8f084f4d">|<img alt="Screenshot 2024-03-26 at 17 02 05" src="https://github.com/elastic/kibana/assets/2748376/46d58946-2ed5-4c21-b53c-be3d43e7b857">| "Show all" links for "Services" and "Hosts" metrics depend on some development in APM and Infra plugins and therefore will be implemented in a follow up issue. Note that "Size" metric is excluded on Serverless as the endpoint uses ES's `_stats` endpoint which is not available on Serverless (at the time of creation of this PR). The code contains some conditions and cases to tackle this, which should be considered as a temporary measure. All of the code related to these changes should either be removed or modified once there's a way to calculate the size of an index/dataStream on Serverless (see [related ](https://github.com/elastic/kibana/issues/178954)). The following changes are made in particular: - Size UI component on the Flyout will be hidden on Serverless - `dataset_quality/data_streams/{dataStream}/details` endpoint will return `NaN` for size on Serverless - Unit, integration and end-to-end tests on Serverless handle "sizeBytes" property accordingly --- .github/CODEOWNERS | 1 + .../dataset_quality/common/api_types.ts | 14 +- .../dataset_quality/common/constants.ts | 7 + .../common/data_streams_stats/types.ts | 13 +- .../dataset_quality/common/translations.ts | 27 ++ .../summary_panel/estimated_data.tsx | 5 +- .../dataset_quality/table/columns.tsx | 5 +- .../table/degraded_docs_percentage_link.tsx | 3 +- .../components/flyout/dataset_summary.tsx | 19 +- .../degraded_docs_trend/degraded_docs.tsx | 166 ++----- .../degraded_docs_chart.tsx | 51 +- .../degraded_docs_trend/lens_attributes.ts | 2 +- .../public/components/flyout/fields_list.tsx | 13 +- .../public/components/flyout/flyout.tsx | 71 ++- .../flyout/flyout_summary/flyout_summary.tsx | 104 +++++ .../flyout_summary/flyout_summary_header.tsx | 78 ++++ .../flyout_summary_kpi_item.tsx | 100 ++++ .../flyout_summary/flyout_summary_kpis.tsx | 77 +++ .../flyout_summary/get_summary_kpis.test.ts | 156 +++++++ .../flyout/flyout_summary/get_summary_kpis.ts | 137 ++++++ .../flyout/integration_actions_menu.tsx | 24 +- .../components/flyout/integration_summary.tsx | 14 +- .../hooks/use_dataset_quality_flyout.tsx | 27 +- .../hooks/use_dataset_quality_table.tsx | 8 +- .../public/hooks/use_degraded_docs_chart.tsx | 58 ++- .../public/hooks/use_link_to_logs_explorer.ts | 3 + .../data_stream_details_client.ts | 30 +- .../services/data_stream_details/types.ts | 3 + .../src/notifications.ts | 9 + .../src/state_machine.ts | 118 +++-- .../dataset_quality_controller/src/types.ts | 18 +- .../dataset_quality/public/types.ts | 5 +- .../get_data_stream_details.test.ts | 439 +++++++++++------- .../get_data_stream_settings.test.ts | 227 +++++++++ .../get_data_stream_details/index.ts | 149 +++++- .../server/routes/data_streams/routes.ts | 52 ++- .../dataset_quality/tsconfig.json | 4 +- .../data_streams/data_stream_details.spec.ts | 26 +- .../data_streams/data_stream_settings.spec.ts | 106 +++++ .../utils/data_stream.ts | 17 +- .../apps/dataset_quality/data/logs_data.ts | 8 +- .../dataset_quality/dataset_quality_flyout.ts | 133 ++++++ .../dataset_quality_summary.ts | 2 +- .../page_objects/dataset_quality.ts | 61 ++- .../common/reporting/generate_csv_discover.ts | 4 +- .../test_suites/observability/config.ts | 5 +- .../common/dataset_quality_api_supertest.ts | 129 +++++ .../common/services.ts | 38 ++ .../data_stream_details.ts | 96 ++++ .../data_stream_settings.ts | 101 ++++ .../dataset_quality_api_integration/index.ts | 14 + .../utils/data_stream.ts | 26 ++ .../utils/expect_to_reject.ts | 17 + .../utils/index.ts | 9 + .../test_suites/observability/index.ts | 1 + .../dataset_quality/data/logs_data.ts | 6 +- .../dataset_quality/dataset_quality_flyout.ts | 150 +++++- .../dataset_quality_summary.ts | 4 +- x-pack/test_serverless/tsconfig.json | 1 + 59 files changed, 2725 insertions(+), 466 deletions(-) create mode 100644 x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary.tsx create mode 100644 x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_header.tsx create mode 100644 x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpi_item.tsx create mode 100644 x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpis.tsx create mode 100644 x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.test.ts create mode 100644 x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.ts create mode 100644 x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_settings.test.ts create mode 100644 x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_settings.spec.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/services.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_details.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_settings.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/index.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/data_stream.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/expect_to_reject.ts create mode 100644 x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/index.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4a6c4b24a6800..0c57ef0d7dc9a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1133,6 +1133,7 @@ packages/kbn-monaco/src/esql @elastic/kibana-esql # Logs /x-pack/test/api_integration/apis/logs_ui @elastic/obs-ux-logs-team /x-pack/test/dataset_quality_api_integration @elastic/obs-ux-logs-team +/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration @elastic/obs-ux-logs-team /x-pack/test/functional/apps/observability_logs_explorer @elastic/obs-ux-logs-team /x-pack/test_serverless/functional/test_suites/observability/observability_logs_explorer @elastic/obs-ux-logs-team /x-pack/test/functional/apps/dataset_quality @elastic/obs-ux-logs-team diff --git a/x-pack/plugins/observability_solution/dataset_quality/common/api_types.ts b/x-pack/plugins/observability_solution/dataset_quality/common/api_types.ts index ae098c08c8ec8..4dac346e2a26a 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/common/api_types.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/common/api_types.ts @@ -76,9 +76,19 @@ export const degradedDocsRt = rt.type({ export type DegradedDocs = rt.TypeOf<typeof degradedDocsRt>; +export const dataStreamSettingsRt = rt.partial({ + createdOn: rt.union([rt.null, rt.number]), // rt.null is needed because `createdOn` is not available on Serverless +}); + +export type DataStreamSettings = rt.TypeOf<typeof dataStreamSettingsRt>; + export const dataStreamDetailsRt = rt.partial({ - createdOn: rt.number, lastActivity: rt.number, + degradedDocsCount: rt.number, + docsCount: rt.number, + sizeBytes: rt.union([rt.null, rt.number]), // rt.null is only needed for https://github.com/elastic/kibana/issues/178954 + services: rt.record(rt.string, rt.array(rt.string)), + hosts: rt.record(rt.string, rt.array(rt.string)), }); export type DataStreamDetails = rt.TypeOf<typeof dataStreamDetailsRt>; @@ -95,6 +105,8 @@ export const getDataStreamsDegradedDocsStatsResponseRt = rt.exact( }) ); +export const getDataStreamsSettingsResponseRt = rt.exact(dataStreamSettingsRt); + export const getDataStreamsDetailsResponseRt = rt.exact(dataStreamDetailsRt); export const dataStreamsEstimatedDataInBytesRT = rt.type({ diff --git a/x-pack/plugins/observability_solution/dataset_quality/common/constants.ts b/x-pack/plugins/observability_solution/dataset_quality/common/constants.ts index 325cae3dc99b3..a5be06438d3c8 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/common/constants.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/common/constants.ts @@ -18,4 +18,11 @@ export const DEFAULT_SORT_DIRECTION = 'asc'; export const NONE = 'none'; export const DEFAULT_TIME_RANGE = { from: 'now-24h', to: 'now' }; +export const DEFAULT_DATEPICKER_REFRESH = { value: 60000, pause: false }; + export const DEFAULT_DEGRADED_DOCS = { percentage: 0, count: 0 }; + +export const NUMBER_FORMAT = '0,0.[000]'; +export const BYTE_NUMBER_FORMAT = '0.0 b'; + +export const MAX_HOSTS_METRIC_VALUE = 50; diff --git a/x-pack/plugins/observability_solution/dataset_quality/common/data_streams_stats/types.ts b/x-pack/plugins/observability_solution/dataset_quality/common/data_streams_stats/types.ts index 7fbbf4d8f3e90..66fbffd452dc6 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/common/data_streams_stats/types.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/common/data_streams_stats/types.ts @@ -30,8 +30,17 @@ export type GetDataStreamsDegradedDocsStatsResponse = export type DataStreamDegradedDocsStatServiceResponse = DegradedDocsStatType[]; export type DegradedDocsStatType = GetDataStreamsDegradedDocsStatsResponse['degradedDocs'][0]; -export type GetDataStreamDetailsParams = +export type GetDataStreamSettingsParams = + APIClientRequestParamsOf<`GET /internal/dataset_quality/data_streams/{dataStream}/settings`>['params']['path']; +export type GetDataStreamSettingsResponse = + APIReturnType<`GET /internal/dataset_quality/data_streams/{dataStream}/settings`>; + +type GetDataStreamDetailsPathParams = APIClientRequestParamsOf<`GET /internal/dataset_quality/data_streams/{dataStream}/details`>['params']['path']; +type GetDataStreamDetailsQueryParams = + APIClientRequestParamsOf<`GET /internal/dataset_quality/data_streams/{dataStream}/details`>['params']['query']; +export type GetDataStreamDetailsParams = GetDataStreamDetailsPathParams & + GetDataStreamDetailsQueryParams; export type GetDataStreamDetailsResponse = APIReturnType<`GET /internal/dataset_quality/data_streams/{dataStream}/details`>; @@ -47,4 +56,4 @@ export type GetIntegrationDashboardsResponse = export type DashboardType = GetIntegrationDashboardsResponse['dashboards'][0]; export type { DataStreamStat } from './data_stream_stat'; -export type { DataStreamDetails } from '../api_types'; +export type { DataStreamDetails, DataStreamSettings } from '../api_types'; diff --git a/x-pack/plugins/observability_solution/dataset_quality/common/translations.ts b/x-pack/plugins/observability_solution/dataset_quality/common/translations.ts index c2441a648566f..d31f3d537eb22 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/common/translations.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/common/translations.ts @@ -88,6 +88,10 @@ export const flyoutIntegrationNameText = i18n.translate( } ); +export const flyoutSummaryText = i18n.translate('xpack.datasetQuality.flyoutSummaryTitle', { + defaultMessage: 'Summary', +}); + export const flyoutDegradedDocsText = i18n.translate( 'xpack.datasetQuality.flyout.degradedDocsTitle', { @@ -110,6 +114,29 @@ export const flyoutDegradedDocsPercentageText = i18n.translate( } ); +export const flyoutDocsCountTotalText = i18n.translate( + 'xpack.datasetQuality.flyoutDocsCountTotal', + { + defaultMessage: 'Docs count (total)', + } +); + +export const flyoutSizeText = i18n.translate('xpack.datasetQuality.flyoutSizeText', { + defaultMessage: 'Size', +}); + +export const flyoutServicesText = i18n.translate('xpack.datasetQuality.flyoutServicesText', { + defaultMessage: 'Services', +}); + +export const flyoutHostsText = i18n.translate('xpack.datasetQuality.flyoutHostsText', { + defaultMessage: 'Hosts', +}); + +export const flyoutShowAllText = i18n.translate('xpack.datasetQuality.flyoutShowAllText', { + defaultMessage: 'Show all', +}); + /* Summary Panel */ diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/summary_panel/estimated_data.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/summary_panel/estimated_data.tsx index 803cd6ab50a6a..f44bd78316916 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/summary_panel/estimated_data.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/summary_panel/estimated_data.tsx @@ -6,9 +6,10 @@ */ import React from 'react'; +import { formatNumber } from '@elastic/eui'; -import { formatBytes } from '@kbn/formatters'; import { useSummaryPanelContext } from '../../../hooks'; +import { BYTE_NUMBER_FORMAT } from '../../../../common/constants'; import { summaryPanelEstimatedDataText, summaryPanelEstimatedDataTooltipText, @@ -22,7 +23,7 @@ export function EstimatedData() { <LastDayDataPlaceholder title={summaryPanelEstimatedDataText} tooltip={summaryPanelEstimatedDataTooltipText} - value={formatBytes(estimatedData.estimatedDataInBytes)} + value={formatNumber(estimatedData.estimatedDataInBytes, BYTE_NUMBER_FORMAT)} isLoading={isEstimatedDataLoading} /> ); diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/columns.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/columns.tsx index 1fb229e1b7155..1558e2ce50615 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/columns.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/columns.tsx @@ -16,6 +16,7 @@ import { EuiToolTip, EuiButtonIcon, EuiText, + formatNumber, EuiSkeletonRectangle, } from '@elastic/eui'; import { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; @@ -24,10 +25,10 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import React from 'react'; import { css } from '@emotion/react'; -import { formatBytes } from '@kbn/formatters'; import { DEGRADED_QUALITY_MINIMUM_PERCENTAGE, POOR_QUALITY_MINIMUM_PERCENTAGE, + BYTE_NUMBER_FORMAT, } from '../../../../common/constants'; import { DataStreamStat } from '../../../../common/data_streams_stats/data_stream_stat'; import { QualityIndicator } from '../../quality_indicator'; @@ -207,7 +208,7 @@ export const getDatasetQualityTableColumns = ({ borderRadius="m" isLoading={loadingDataStreamStats} > - {formatBytes(dataStreamStat.sizeBytes || 0)} + {formatNumber(dataStreamStat.sizeBytes || 0, BYTE_NUMBER_FORMAT)} </EuiSkeletonRectangle> ), width: '100px', diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/degraded_docs_percentage_link.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/degraded_docs_percentage_link.tsx index 70f33c5a134bc..d8aade6d74e51 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/degraded_docs_percentage_link.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/dataset_quality/table/degraded_docs_percentage_link.tsx @@ -7,6 +7,7 @@ import { EuiSkeletonRectangle, EuiFlexGroup, EuiLink } from '@elastic/eui'; import React from 'react'; +import { _IGNORED } from '../../../../common/es_fields'; import { useLinkToLogsExplorer } from '../../../hooks'; import { QualityPercentageIndicator } from '../../quality_indicator'; import { DataStreamStat } from '../../../../common/data_streams_stats/data_stream_stat'; @@ -24,7 +25,7 @@ export const DegradedDocsPercentageLink = ({ const logsExplorerLinkProps = useLinkToLogsExplorer({ dataStreamStat, - query: { language: 'kuery', query: '_ignored:*' }, + query: { language: 'kuery', query: `${_IGNORED}: *` }, }); return ( diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/dataset_summary.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/dataset_summary.tsx index a0954ab44e49b..052f4b63f0da6 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/dataset_summary.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/dataset_summary.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types'; -import { DataStreamDetails } from '../../../common/data_streams_stats'; +import { DataStreamDetails, DataStreamSettings } from '../../../common/data_streams_stats'; import { flyoutDatasetCreatedOnText, flyoutDatasetDetailsText, @@ -18,18 +18,27 @@ import { FieldsList, FieldsListLoading } from './fields_list'; interface DatasetSummaryProps { fieldFormats: FieldFormatsStart; + dataStreamSettings?: DataStreamSettings; + dataStreamSettingsLoading: boolean; dataStreamDetails?: DataStreamDetails; + dataStreamDetailsLoading: boolean; } -export function DatasetSummary({ dataStreamDetails, fieldFormats }: DatasetSummaryProps) { +export function DatasetSummary({ + dataStreamSettings, + dataStreamSettingsLoading, + dataStreamDetails, + dataStreamDetailsLoading, + fieldFormats, +}: DatasetSummaryProps) { const dataFormatter = fieldFormats.getDefaultInstance(KBN_FIELD_TYPES.DATE, [ ES_FIELD_TYPES.DATE, ]); const formattedLastActivity = dataStreamDetails?.lastActivity ? dataFormatter.convert(dataStreamDetails?.lastActivity) : '-'; - const formattedCreatedOn = dataStreamDetails?.createdOn - ? dataFormatter.convert(dataStreamDetails.createdOn) + const formattedCreatedOn = dataStreamSettings?.createdOn + ? dataFormatter.convert(dataStreamSettings.createdOn) : '-'; return ( @@ -39,10 +48,12 @@ export function DatasetSummary({ dataStreamDetails, fieldFormats }: DatasetSumma { fieldTitle: flyoutDatasetLastActivityText, fieldValue: formattedLastActivity, + isLoading: dataStreamDetailsLoading, }, { fieldTitle: flyoutDatasetCreatedOnText, fieldValue: formattedCreatedOn, + isLoading: dataStreamSettingsLoading, }, ]} /> diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs.tsx index 9a5348ed1495d..89087a26a1960 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs.tsx @@ -5,166 +5,94 @@ * 2.0. */ -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { css } from '@emotion/react'; import { FormattedMessage } from '@kbn/i18n-react'; import { EuiFlexGroup, + EuiFlexItem, EuiPanel, EuiSpacer, EuiTitle, - EuiText, - EuiSuperDatePicker, - OnRefreshProps, EuiToolTip, EuiIcon, EuiCode, + OnTimeChangeProps, EuiSkeletonRectangle, } from '@elastic/eui'; -import { - UnifiedBreakdownFieldSelector, - fieldSupportsBreakdown, -} from '@kbn/unified-histogram-plugin/public'; -import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; +import { UnifiedBreakdownFieldSelector } from '@kbn/unified-histogram-plugin/public'; +import type { DataViewField } from '@kbn/data-views-plugin/common'; +import { useDegradedDocsChart } from '../../../hooks'; -import { useCreateDataView } from '../../../hooks'; -import { indexNameToDataStreamParts } from '../../../../common/utils'; -import { DEFAULT_LOGS_DATA_VIEW, DEFAULT_TIME_RANGE } from '../../../../common/constants'; +import { DEFAULT_TIME_RANGE, DEFAULT_DATEPICKER_REFRESH } from '../../../../common/constants'; import { flyoutDegradedDocsText } from '../../../../common/translations'; import { TimeRangeConfig } from '../../../state_machines/dataset_quality_controller'; -import { useDatasetQualityContext } from '../../dataset_quality/context'; import { DegradedDocsChart } from './degraded_docs_chart'; -const DEFAULT_REFRESH = { value: 60000, pause: false }; - export function DegradedDocs({ dataStream, - timeRange = { ...DEFAULT_TIME_RANGE, refresh: DEFAULT_REFRESH }, - breakdownField, + timeRange = { ...DEFAULT_TIME_RANGE, refresh: DEFAULT_DATEPICKER_REFRESH }, + lastReloadTime, + onTimeRangeChange, }: { dataStream?: string; timeRange?: TimeRangeConfig; - breakdownField?: string; + lastReloadTime: number; + onTimeRangeChange: (props: Pick<OnTimeChangeProps, 'start' | 'end'>) => void; }) { - const { service } = useDatasetQualityContext(); - const { dataView } = useCreateDataView({ - indexPatternString: getDataViewIndexPattern(dataStream), - }); + const { dataView, breakdown, ...chartProps } = useDegradedDocsChart({ dataStream }); const [breakdownDataViewField, setBreakdownDataViewField] = useState<DataViewField | undefined>( undefined ); - const [lastReloadTime, setLastReloadTime] = useState<number>(Date.now()); useEffect(() => { - if (dataView) { - const dataViewField = getDataViewField(dataView, breakdownField); - if (dataViewField) { - const isFieldBreakable = fieldSupportsBreakdown(dataViewField); - if (isFieldBreakable) { - setBreakdownDataViewField(dataViewField); - } else { - setBreakdownDataViewField(undefined); - // TODO: If needed, notify user that the field is not breakable - } - } else { - setBreakdownDataViewField(undefined); - } + if (breakdown.dataViewField && breakdown.fieldSupportsBreakdown) { + setBreakdownDataViewField(breakdown.dataViewField); + } else { + setBreakdownDataViewField(undefined); } - }, [dataView, breakdownField]); - - const handleRefresh = useCallback((_refreshProps: OnRefreshProps) => { - setLastReloadTime(Date.now()); - }, []); - - const handleTimeChange = useCallback( - (durationRange) => { - service.send({ - type: 'UPDATE_INSIGHTS_TIME_RANGE', - timeRange: { - from: durationRange.start, - to: durationRange.end, - refresh: timeRange.refresh ?? DEFAULT_REFRESH, - }, - }); - }, - [service, timeRange.refresh] - ); - const handleBreakdownFieldChange = useCallback( - (field: DataViewField | undefined) => { - service.send({ - type: 'BREAKDOWN_FIELD_CHANGE', - breakdownField: field?.name ?? null, - }); - }, - [service] - ); + if (breakdown.dataViewField && !breakdown.fieldSupportsBreakdown) { + // TODO: If needed, notify user that the field is not breakable + } + }, [setBreakdownDataViewField, breakdown.dataViewField, breakdown.fieldSupportsBreakdown]); return ( <EuiPanel hasBorder grow={false}> - <EuiFlexGroup direction="column" justifyContent="center"> - <EuiFlexGroup + <EuiFlexGroup justifyContent="spaceBetween"> + <EuiFlexItem css={css` - flex-grow: 1; + flex-direction: row; + justify-content: flex-start; + align-items: flex-start; + gap: 4px; `} - justifyContent="flexStart" - alignItems="center" - gutterSize="xs" > - <EuiTitle size="s"> - <EuiText>{flyoutDegradedDocsText}</EuiText> + <EuiTitle size="xxxs"> + <h6>{flyoutDegradedDocsText}</h6> </EuiTitle> <EuiToolTip content={degradedDocsTooltip}> <EuiIcon size="m" color="subdued" type="questionInCircle" className="eui-alignTop" /> </EuiToolTip> - </EuiFlexGroup> + </EuiFlexItem> - <EuiFlexGroup - css={css` - flex-wrap: wrap-reverse; - `} - alignItems="center" - justifyContent="spaceBetween" - > - {dataView ? ( - <UnifiedBreakdownFieldSelector - dataView={dataView} - breakdown={{ field: breakdownDataViewField }} - onBreakdownFieldChange={handleBreakdownFieldChange} - /> - ) : ( - <EuiSkeletonRectangle width={160} height={32} /> - )} - - <EuiFlexGroup - css={css` - flex-grow: 0; - margin-left: auto; - `} - > - <EuiSuperDatePicker - width="auto" - compressed={true} - isLoading={false} - start={timeRange.from} - end={timeRange.to} - onTimeChange={handleTimeChange} - onRefresh={handleRefresh} - isQuickSelectOnly={false} - showUpdateButton="iconOnly" - updateButtonProps={{ fill: false }} - /> - </EuiFlexGroup> - </EuiFlexGroup> + <EuiSkeletonRectangle width={160} height={32} isLoading={!dataView}> + <UnifiedBreakdownFieldSelector + dataView={dataView!} + breakdown={{ field: breakdownDataViewField }} + onBreakdownFieldChange={breakdown.onChange} + /> + </EuiSkeletonRectangle> </EuiFlexGroup> - <EuiSpacer /> + + <EuiSpacer size="m" /> + <DegradedDocsChart - dataStream={dataStream} + {...chartProps} timeRange={timeRange} lastReloadTime={lastReloadTime} - dataView={dataView} - breakdownDataViewField={breakdownDataViewField} + onTimeRangeChange={onTimeRangeChange} /> </EuiPanel> ); @@ -183,13 +111,3 @@ const degradedDocsTooltip = ( }} /> ); - -function getDataViewIndexPattern(dataStream: string | undefined) { - return dataStream ? `${indexNameToDataStreamParts(dataStream).type}-*-*` : DEFAULT_LOGS_DATA_VIEW; -} - -function getDataViewField(dataView: DataView | undefined, fieldName: string | undefined) { - return fieldName && dataView - ? dataView.fields.find((field) => field.name === fieldName) - : undefined; -} diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs_chart.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs_chart.tsx index 7a861308ba1ee..9d13d0e3b26ba 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs_chart.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/degraded_docs_chart.tsx @@ -5,12 +5,11 @@ * 2.0. */ -import React from 'react'; +import React, { useCallback } from 'react'; import { css } from '@emotion/react'; -import { EuiFlexGroup, EuiLoadingChart } from '@elastic/eui'; +import { EuiFlexGroup, EuiLoadingChart, OnTimeChangeProps } from '@elastic/eui'; import { ViewMode } from '@kbn/embeddable-plugin/common'; import { KibanaErrorBoundary } from '@kbn/shared-ux-error-boundary'; -import { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { flyoutDegradedDocsTrendText } from '../../../../common/translations'; import { TimeRangeConfig } from '../../../state_machines/dataset_quality_controller'; @@ -25,25 +24,35 @@ const DISABLED_ACTIONS = [ 'create-ml-ad-job-action', ]; +interface DegradedDocsChartProps + extends Pick< + ReturnType<typeof useDegradedDocsChart>, + 'attributes' | 'isChartLoading' | 'onChartLoading' | 'extraActions' + > { + timeRange: TimeRangeConfig; + lastReloadTime: number; + onTimeRangeChange: (props: Pick<OnTimeChangeProps, 'start' | 'end'>) => void; +} + export function DegradedDocsChart({ - dataStream, + attributes, + isChartLoading, + onChartLoading, + extraActions, timeRange, lastReloadTime, - dataView, - breakdownDataViewField, -}: { - dataStream?: string; - timeRange: TimeRangeConfig; - lastReloadTime: number; - dataView?: DataView; - breakdownDataViewField?: DataViewField; -}) { + onTimeRangeChange, +}: DegradedDocsChartProps) { const { services: { lens }, } = useKibanaContextForPlugin(); - const { attributes, filterQuery, extraActions, isChartLoading, handleChartLoading } = - useDegradedDocsChart({ dataStream, breakdownDataViewField }); + const handleBrushEnd = useCallback( + ({ range: [start, end] }: { range: number[] }) => { + onTimeRangeChange({ start: new Date(start).toISOString(), end: new Date(end).toISOString() }); + }, + [onTimeRangeChange] + ); return ( <> @@ -59,8 +68,11 @@ export function DegradedDocsChart({ ) : ( <lens.EmbeddableComponent id="datasetQualityFlyoutDegradedDocsTrend" - style={{ height: CHART_HEIGHT }} css={lensEmbeddableComponentStyles} + style={{ height: CHART_HEIGHT }} + overrides={{ + settings: { legendAction: 'ignore' }, + }} viewMode={ViewMode.VIEW} hidePanelTitles={true} disabledActions={DISABLED_ACTIONS} @@ -70,11 +82,8 @@ export function DegradedDocsChart({ extraActions={extraActions} disableTriggers={false} lastReloadRequestTime={lastReloadTime} - query={{ - language: 'kuery', - query: filterQuery || '', - }} - onLoad={handleChartLoading} + onLoad={onChartLoading} + onBrushEnd={handleBrushEnd} /> )} </EuiFlexGroup> diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/lens_attributes.ts b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/lens_attributes.ts index 0f106769d427b..c731c8f3cb77e 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/lens_attributes.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/degraded_docs_trend/lens_attributes.ts @@ -242,7 +242,7 @@ function getChartColumns(breakdownField?: string): Record<string, GenericIndexPa }, orderDirection: 'desc', otherBucket: true, - missingBucket: false, + missingBucket: true, parentFormat: { id: 'terms', }, diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/fields_list.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/fields_list.tsx index a203d08365d2b..4d5d561977fc5 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/fields_list.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/fields_list.tsx @@ -15,6 +15,7 @@ import { EuiHorizontalRule, EuiSkeletonTitle, EuiSkeletonText, + EuiSkeletonRectangle, } from '@elastic/eui'; export function FieldsList({ @@ -23,7 +24,7 @@ export function FieldsList({ actionsMenu: ActionsMenu, }: { title: string; - fields: Array<{ fieldTitle: string; fieldValue: ReactNode }>; + fields: Array<{ fieldTitle: string; fieldValue: ReactNode; isLoading: boolean }>; actionsMenu?: ReactNode; }) { return ( @@ -36,7 +37,7 @@ export function FieldsList({ </EuiFlexGroup> <EuiSpacer /> <EuiFlexGroup direction="column" gutterSize="none"> - {fields.map(({ fieldTitle, fieldValue }, index) => ( + {fields.map(({ fieldTitle, fieldValue, isLoading: isFieldLoading }, index) => ( <Fragment key={index + fieldTitle}> <EuiFlexGroup> <EuiFlexItem grow={1}> @@ -44,9 +45,11 @@ export function FieldsList({ <span>{fieldTitle}</span> </EuiTitle> </EuiFlexItem> - <EuiFlexItem grow={4} data-test-subj="datasetQualityFlyoutFieldValue"> - {fieldValue} - </EuiFlexItem> + <EuiSkeletonRectangle width={260} isLoading={isFieldLoading} title={title}> + <EuiFlexItem grow={4} data-test-subj="datasetQualityFlyoutFieldValue"> + {fieldValue} + </EuiFlexItem> + </EuiSkeletonRectangle> </EuiFlexGroup> {index < fields.length - 1 ? <EuiHorizontalRule margin="s" /> : null} diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout.tsx index 4960dd73ccc40..56caa18741477 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout.tsx @@ -5,6 +5,8 @@ * 2.0. */ +import React, { Fragment } from 'react'; +import { css } from '@emotion/react'; import { EuiButtonEmpty, EuiFlexGroup, @@ -13,26 +15,27 @@ import { EuiFlyoutBody, EuiFlyoutFooter, EuiSpacer, + EuiHorizontalRule, + EuiPanel, } from '@elastic/eui'; -import React, { Fragment } from 'react'; import { flyoutCancelText } from '../../../common/translations'; import { useDatasetQualityFlyout } from '../../hooks'; import { DatasetSummary, DatasetSummaryLoading } from './dataset_summary'; import { Header } from './header'; import { IntegrationSummary } from './integration_summary'; import { FlyoutProps } from './types'; -import { DegradedDocs } from './degraded_docs_trend/degraded_docs'; +import { FlyoutSummary } from './flyout_summary/flyout_summary'; // Allow for lazy loading // eslint-disable-next-line import/no-default-export export default function Flyout({ dataset, closeFlyout }: FlyoutProps) { const { dataStreamStat, + dataStreamSettings, dataStreamDetails, - dataStreamDetailsLoading, fieldFormats, timeRange, - breakdownField, + loadingState, } = useDatasetQualityFlyout(); return ( @@ -45,26 +48,44 @@ export default function Flyout({ dataset, closeFlyout }: FlyoutProps) { > <> <Header dataStreamStat={dataset} /> - <EuiFlyoutBody data-test-subj="datasetQualityFlyoutBody"> - <DegradedDocs - dataStream={dataStreamStat?.rawName} - timeRange={timeRange} - breakdownField={breakdownField} - /> + <EuiFlyoutBody css={flyoutBodyStyles} data-test-subj="datasetQualityFlyoutBody"> + <EuiPanel hasBorder={false} hasShadow={false} paddingSize="l"> + <FlyoutSummary + dataStream={dataset.rawName} + dataStreamStat={dataStreamStat} + dataStreamDetails={dataStreamDetails} + dataStreamDetailsLoading={loadingState.dataStreamDetailsLoading} + timeRange={timeRange} + /> + </EuiPanel> - <EuiSpacer /> + <EuiHorizontalRule margin="none" /> - {dataStreamDetailsLoading ? ( - <DatasetSummaryLoading /> - ) : dataStreamStat ? ( - <Fragment> - <DatasetSummary dataStreamDetails={dataStreamDetails} fieldFormats={fieldFormats} /> - <EuiSpacer /> - {dataStreamStat.integration && ( - <IntegrationSummary integration={dataStreamStat.integration} /> - )} - </Fragment> - ) : null} + <EuiPanel hasBorder={false} hasShadow={false} paddingSize="l"> + {loadingState.dataStreamDetailsLoading && loadingState.dataStreamSettingsLoading ? ( + <DatasetSummaryLoading /> + ) : dataStreamStat ? ( + <Fragment> + <DatasetSummary + dataStreamSettings={dataStreamSettings} + dataStreamSettingsLoading={loadingState.dataStreamSettingsLoading} + dataStreamDetails={dataStreamDetails} + dataStreamDetailsLoading={loadingState.dataStreamDetailsLoading} + fieldFormats={fieldFormats} + /> + + {dataStreamStat.integration && ( + <> + <EuiSpacer /> + <IntegrationSummary + integration={dataStreamStat.integration} + dashboardsLoading={loadingState.datasetIntegrationsLoading} + /> + </> + )} + </Fragment> + ) : null} + </EuiPanel> </EuiFlyoutBody> <EuiFlyoutFooter> @@ -85,3 +106,9 @@ export default function Flyout({ dataset, closeFlyout }: FlyoutProps) { </EuiFlyout> ); } + +const flyoutBodyStyles = css` + .euiFlyoutBody__overflowContent { + padding: 0; + } +`; diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary.tsx new file mode 100644 index 0000000000000..7ba5f315e607f --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary.tsx @@ -0,0 +1,104 @@ +/* + * 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 React, { useCallback, useState } from 'react'; +import { OnRefreshProps, OnTimeChangeProps, EuiSpacer } from '@elastic/eui'; + +import { DegradedDocs } from '../degraded_docs_trend/degraded_docs'; +import { DataStreamDetails } from '../../../../common/api_types'; +import { DEFAULT_TIME_RANGE, DEFAULT_DATEPICKER_REFRESH } from '../../../../common/constants'; +import { useDatasetQualityContext } from '../../dataset_quality/context'; +import { FlyoutDataset, TimeRangeConfig } from '../../../state_machines/dataset_quality_controller'; +import { FlyoutSummaryHeader } from './flyout_summary_header'; +import { FlyoutSummaryKpis, FlyoutSummaryKpisLoading } from './flyout_summary_kpis'; + +export function FlyoutSummary({ + dataStream, + dataStreamStat, + dataStreamDetails, + dataStreamDetailsLoading, + timeRange = { ...DEFAULT_TIME_RANGE, refresh: DEFAULT_DATEPICKER_REFRESH }, +}: { + dataStream: string; + dataStreamStat?: FlyoutDataset; + dataStreamDetails?: DataStreamDetails; + dataStreamDetailsLoading: boolean; + timeRange?: TimeRangeConfig; +}) { + const { service } = useDatasetQualityContext(); + const [lastReloadTime, setLastReloadTime] = useState<number>(Date.now()); + + const updateTimeRange = useCallback( + ({ start, end, refreshInterval }: OnRefreshProps) => { + service.send({ + type: 'UPDATE_INSIGHTS_TIME_RANGE', + timeRange: { + from: start, + to: end, + refresh: { ...DEFAULT_DATEPICKER_REFRESH, value: refreshInterval }, + }, + }); + }, + [service] + ); + + const handleTimeChange = useCallback( + ({ isInvalid, ...timeRangeProps }: OnTimeChangeProps) => { + if (!isInvalid) { + updateTimeRange({ refreshInterval: timeRange.refresh.value, ...timeRangeProps }); + } + }, + [updateTimeRange, timeRange.refresh] + ); + + const handleTimeRangeChange = useCallback( + ({ start, end }: Pick<OnTimeChangeProps, 'start' | 'end'>) => { + updateTimeRange({ start, end, refreshInterval: timeRange.refresh.value }); + }, + [updateTimeRange, timeRange.refresh] + ); + + const handleRefresh = useCallback( + (refreshProps: OnRefreshProps) => { + updateTimeRange(refreshProps); + setLastReloadTime(Date.now()); + }, + [updateTimeRange] + ); + + return ( + <> + <FlyoutSummaryHeader + timeRange={timeRange} + onTimeChange={handleTimeChange} + onRefresh={handleRefresh} + /> + + <EuiSpacer size="m" /> + + {dataStreamStat ? ( + <FlyoutSummaryKpis + dataStreamStat={dataStreamStat} + dataStreamDetails={dataStreamDetails} + isLoading={dataStreamDetailsLoading} + timeRange={timeRange} + /> + ) : ( + <FlyoutSummaryKpisLoading /> + )} + + <EuiSpacer /> + + <DegradedDocs + dataStream={dataStream} + timeRange={timeRange} + lastReloadTime={lastReloadTime} + onTimeRangeChange={handleTimeRangeChange} + /> + </> + ); +} diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_header.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_header.tsx new file mode 100644 index 0000000000000..518f4ef4b654e --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_header.tsx @@ -0,0 +1,78 @@ +/* + * 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 React from 'react'; +import { css } from '@emotion/react'; +import { + EuiFlexGroup, + EuiIcon, + EuiSuperDatePicker, + EuiTitle, + EuiToolTip, + OnRefreshProps, + OnTimeChangeProps, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; + +import { flyoutSummaryText } from '../../../../common/translations'; +import { TimeRangeConfig } from '../../../state_machines/dataset_quality_controller'; + +export function FlyoutSummaryHeader({ + timeRange, + onTimeChange, + onRefresh, +}: { + timeRange: TimeRangeConfig; + onTimeChange: (timeChangeProps: OnTimeChangeProps) => void; + onRefresh: (refreshProps: OnRefreshProps) => void; +}) { + return ( + <EuiFlexGroup alignItems="center" wrap={true}> + <EuiFlexGroup + css={css` + flex-grow: 1; + `} + justifyContent="flexStart" + alignItems="center" + gutterSize="xs" + > + <EuiTitle size="s"> + <span>{flyoutSummaryText}</span> + </EuiTitle> + <EuiToolTip content={flyoutSummaryTooltip}> + <EuiIcon size="m" color="subdued" type="questionInCircle" className="eui-alignTop" /> + </EuiToolTip> + </EuiFlexGroup> + + <EuiFlexGroup + css={css` + flex-grow: 0; + `} + > + <EuiSuperDatePicker + width="auto" + compressed={true} + isLoading={false} + start={timeRange.from} + end={timeRange.to} + onTimeChange={onTimeChange} + onRefresh={onRefresh} + isQuickSelectOnly={false} + showUpdateButton="iconOnly" + updateButtonProps={{ fill: false }} + /> + </EuiFlexGroup> + </EuiFlexGroup> + ); +} + +const flyoutSummaryTooltip = ( + <FormattedMessage + id="xpack.datasetQuality.flyoutSummaryTooltip" + defaultMessage="Stats of the dataset within the selected time range." + /> +); diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpi_item.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpi_item.tsx new file mode 100644 index 0000000000000..358f0eaaacbb5 --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpi_item.tsx @@ -0,0 +1,100 @@ +/* + * 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 React from 'react'; +import { + EuiFlexGroup, + EuiFlexItem, + EuiPanel, + EuiTitle, + EuiText, + EuiLink, + useEuiTheme, + EuiSkeletonTitle, + EuiSkeletonRectangle, +} from '@elastic/eui'; + +export function FlyoutSummaryKpiItem({ + title, + value, + link, + isLoading, +}: { + title: string; + value: string; + link?: { + label: string; + href: string; + }; + isLoading: boolean; +}) { + const { euiTheme } = useEuiTheme(); + + return ( + <EuiPanel + data-test-subj={`datasetQualityFlyoutKpi-${title}${isLoading ? '--loading' : ''}`} + css={{ minWidth: 152, height: 130, display: 'flex', alignItems: 'stretch' }} + hasBorder + grow={false} + paddingSize="s" + > + <EuiFlexGroup alignItems="stretch" direction="column" wrap={false}> + <EuiFlexItem css={{ gap: euiTheme.size.xs }}> + <EuiTitle data-test-subj={`datasetQualityFlyoutKpiTitle-${title}`} size="xxxs"> + <h6>{title}</h6> + </EuiTitle> + {link ? ( + <EuiLink + data-test-subj={`datasetQualityFlyoutKpiLink-${title}`} + css={{ + display: 'flex', + alignItems: 'center', + width: 'fit-content', + }} + href={link.href} + target="_blank" + > + <EuiText + css={{ + fontWeight: euiTheme.font.weight.semiBold, + whiteSpace: 'nowrap', + }} + size="xs" + > + {link.label} + </EuiText> + </EuiLink> + ) : null} + </EuiFlexItem> + <EuiFlexItem + css={{ alignItems: isLoading ? 'stretch' : 'flex-end', justifyContent: 'flex-end' }} + > + <EuiSkeletonTitle + style={{ width: '50%', marginLeft: 'auto' }} + size="m" + isLoading={isLoading} + > + <EuiTitle data-test-subj={`datasetQualityFlyoutKpiValue-${title}`} size="s"> + <h3 className="eui-textNoWrap">{value}</h3> + </EuiTitle> + </EuiSkeletonTitle> + </EuiFlexItem> + </EuiFlexGroup> + </EuiPanel> + ); +} + +export function FlyoutSummaryKpiItemLoading({ title }: { title: string }) { + return ( + <EuiSkeletonRectangle + data-test-subj={`datasetQualityFlyoutKpi-${title}--loading`} + css={{ minWidth: 152 }} + width={'100%'} + height={130} + /> + ); +} diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpis.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpis.tsx new file mode 100644 index 0000000000000..f377f139eb099 --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/flyout_summary_kpis.tsx @@ -0,0 +1,77 @@ +/* + * 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 React, { useMemo } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; + +import { _IGNORED } from '../../../../common/es_fields'; + +import { DataStreamDetails } from '../../../../common/api_types'; +import { useKibanaContextForPlugin } from '../../../utils'; +import { useLinkToLogsExplorer } from '../../../hooks'; +import { FlyoutDataset, TimeRangeConfig } from '../../../state_machines/dataset_quality_controller'; +import { FlyoutSummaryKpiItem, FlyoutSummaryKpiItemLoading } from './flyout_summary_kpi_item'; +import { getSummaryKpis } from './get_summary_kpis'; + +export function FlyoutSummaryKpis({ + dataStreamStat, + dataStreamDetails, + isLoading, + timeRange, +}: { + dataStreamStat: FlyoutDataset; + dataStreamDetails?: DataStreamDetails; + isLoading: boolean; + timeRange: TimeRangeConfig; +}) { + const { + services: { observabilityShared }, + } = useKibanaContextForPlugin(); + const hostsLocator = observabilityShared.locators.infra.hostsLocator; + + const logsExplorerLinkProps = useLinkToLogsExplorer({ + dataStreamStat, + query: { language: 'kuery', query: `${_IGNORED}: *` }, + }); + + const kpis = useMemo( + () => + getSummaryKpis({ + dataStreamDetails, + timeRange, + degradedDocsHref: logsExplorerLinkProps.href, + hostsLocator, + }), + [dataStreamDetails, logsExplorerLinkProps, hostsLocator, timeRange] + ); + + return ( + <EuiFlexGroup direction="column"> + <EuiFlexGroup wrap={true} gutterSize="m"> + {kpis.map((kpi) => ( + <EuiFlexItem key={kpi.title}> + <FlyoutSummaryKpiItem {...kpi} isLoading={isLoading} /> + </EuiFlexItem> + ))} + </EuiFlexGroup> + </EuiFlexGroup> + ); +} + +export function FlyoutSummaryKpisLoading() { + return ( + <EuiFlexGroup direction="column"> + <EuiFlexGroup wrap={true} gutterSize="m"> + {getSummaryKpis({}).map(({ title }) => ( + <EuiFlexItem key={title}> + <FlyoutSummaryKpiItemLoading title={title} /> + </EuiFlexItem> + ))} + </EuiFlexGroup> + </EuiFlexGroup> + ); +} diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.test.ts b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.test.ts new file mode 100644 index 0000000000000..fb47ddcddbfa7 --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.test.ts @@ -0,0 +1,156 @@ +/* + * 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 { formatNumber } from '@elastic/eui'; +import type { useKibanaContextForPlugin } from '../../../utils'; +import { TimeRangeConfig } from '../../../state_machines/dataset_quality_controller'; + +import { + BYTE_NUMBER_FORMAT, + DEFAULT_DATEPICKER_REFRESH, + DEFAULT_TIME_RANGE, + MAX_HOSTS_METRIC_VALUE, +} from '../../../../common/constants'; +import { + flyoutDegradedDocsText, + flyoutDocsCountTotalText, + flyoutHostsText, + flyoutServicesText, + flyoutShowAllText, + flyoutSizeText, +} from '../../../../common/translations'; +import { getSummaryKpis } from './get_summary_kpis'; + +const dataStreamDetails = { + services: { + service1: ['service1Instance1', 'service1Instance2'], + service2: ['service2Instance1'], + }, + docsCount: 1000, + sizeBytes: 5000, + hosts: { + host1: ['host1Instance1', 'host1Instance2'], + host2: ['host2Instance1'], + }, + degradedDocsCount: 200, +}; + +const timeRange: TimeRangeConfig = { + ...DEFAULT_TIME_RANGE, + refresh: DEFAULT_DATEPICKER_REFRESH, + from: 'now-15m', + to: 'now', +}; + +const degradedDocsHref = 'http://exploratory-view/degraded-docs'; +const hostsRedirectUrl = 'http://hosts/metric/'; + +const hostsLocator = { + getRedirectUrl: () => hostsRedirectUrl, +} as unknown as ReturnType< + typeof useKibanaContextForPlugin +>['services']['observabilityShared']['locators']['infra']['hostsLocator']; + +describe('getSummaryKpis', () => { + it('should return the correct KPIs', () => { + const result = getSummaryKpis({ + dataStreamDetails, + timeRange, + degradedDocsHref, + hostsLocator, + }); + + expect(result).toEqual([ + { + title: flyoutDocsCountTotalText, + value: '1,000', + }, + { + title: flyoutSizeText, + value: formatNumber(dataStreamDetails.sizeBytes ?? 0, BYTE_NUMBER_FORMAT), + }, + { + title: flyoutServicesText, + value: '3', + link: undefined, + }, + { + title: flyoutHostsText, + value: '3', + link: { + label: flyoutShowAllText, + href: hostsRedirectUrl, + }, + }, + { + title: flyoutDegradedDocsText, + value: '200', + link: { + label: flyoutShowAllText, + href: degradedDocsHref, + }, + }, + ]); + }); + + it('show X+ if number of hosts or services exceed MAX_HOSTS_METRIC_VALUE', () => { + const services = { + service1: new Array(MAX_HOSTS_METRIC_VALUE + 1) + .fill('service1Instance') + .map((_, i) => `service1Instance${i}`), + }; + + const host3 = new Array(MAX_HOSTS_METRIC_VALUE + 1) + .fill('host3Instance') + .map((_, i) => `host3Instance${i}`); + + const detailsWithMaxPlusHosts = { + ...dataStreamDetails, + services, + hosts: { ...dataStreamDetails.hosts, host3 }, + }; + + const result = getSummaryKpis({ + dataStreamDetails: detailsWithMaxPlusHosts, + timeRange, + degradedDocsHref, + hostsLocator, + }); + + expect(result).toEqual([ + { + title: flyoutDocsCountTotalText, + value: '1,000', + }, + { + title: flyoutSizeText, + value: formatNumber(dataStreamDetails.sizeBytes ?? 0, BYTE_NUMBER_FORMAT), + }, + { + title: flyoutServicesText, + value: '50+', + link: undefined, + }, + { + title: flyoutHostsText, + value: '54+', + link: { + label: flyoutShowAllText, + href: hostsRedirectUrl, + }, + }, + { + title: flyoutDegradedDocsText, + value: '200', + link: { + label: flyoutShowAllText, + href: degradedDocsHref, + }, + }, + ]); + }); +}); diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.ts b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.ts new file mode 100644 index 0000000000000..25d0bf0584bfa --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/flyout_summary/get_summary_kpis.ts @@ -0,0 +1,137 @@ +/* + * 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 { formatNumber } from '@elastic/eui'; +import { + BYTE_NUMBER_FORMAT, + DEFAULT_DATEPICKER_REFRESH, + DEFAULT_TIME_RANGE, + MAX_HOSTS_METRIC_VALUE, + NUMBER_FORMAT, +} from '../../../../common/constants'; +import { + flyoutDegradedDocsText, + flyoutDocsCountTotalText, + flyoutHostsText, + flyoutServicesText, + flyoutShowAllText, + flyoutSizeText, +} from '../../../../common/translations'; +import { DataStreamDetails } from '../../../../common/api_types'; +import { useKibanaContextForPlugin } from '../../../utils'; +import { TimeRangeConfig } from '../../../state_machines/dataset_quality_controller'; + +export function getSummaryKpis({ + dataStreamDetails, + timeRange = { ...DEFAULT_TIME_RANGE, refresh: DEFAULT_DATEPICKER_REFRESH }, + degradedDocsHref, + hostsLocator, +}: { + dataStreamDetails?: DataStreamDetails; + timeRange?: TimeRangeConfig; + degradedDocsHref?: string; + hostsLocator?: ReturnType< + typeof useKibanaContextForPlugin + >['services']['observabilityShared']['locators']['infra']['hostsLocator']; +}): Array<{ title: string; value: string; link?: { label: string; href: string } }> { + const services = dataStreamDetails?.services ?? {}; + const serviceKeys = Object.keys(services); + const countOfServices = serviceKeys + .map((key: string) => services[key].length) + .reduce((a, b) => a + b, 0); + const servicesLink = undefined; // TODO: Add link to APM services page when possible + + const degradedDocsLink = degradedDocsHref + ? { + label: flyoutShowAllText, + href: degradedDocsHref, + } + : undefined; + + return [ + { + title: flyoutDocsCountTotalText, + value: formatNumber(dataStreamDetails?.docsCount ?? 0, NUMBER_FORMAT), + }, + // dataStreamDetails.sizeBytes = null indicates it's Serverless where `_stats` API isn't available + ...(dataStreamDetails?.sizeBytes !== null // Only show when not in Serverless + ? [ + { + title: flyoutSizeText, + value: formatNumber(dataStreamDetails?.sizeBytes ?? 0, BYTE_NUMBER_FORMAT), + }, + ] + : []), + { + title: flyoutServicesText, + value: formatMetricValueForMax(countOfServices, MAX_HOSTS_METRIC_VALUE, NUMBER_FORMAT), + link: servicesLink, + }, + getHostsKpi(dataStreamDetails?.hosts, timeRange, hostsLocator), + { + title: flyoutDegradedDocsText, + value: formatNumber(dataStreamDetails?.degradedDocsCount ?? 0, NUMBER_FORMAT), + link: degradedDocsLink, + }, + ]; +} + +function getHostsKpi( + dataStreamHosts: DataStreamDetails['hosts'], + timeRange: TimeRangeConfig, + hostsLocator?: ReturnType< + typeof useKibanaContextForPlugin + >['services']['observabilityShared']['locators']['infra']['hostsLocator'] +) { + const hosts = dataStreamHosts ?? {}; + const hostKeys = Object.keys(hosts); + const countOfHosts = hostKeys + .map((key: string) => hosts[key].length) + .reduce( + ({ count, anyHostExceedsMax }, hostCount) => ({ + count: count + hostCount, + anyHostExceedsMax: anyHostExceedsMax || hostCount > MAX_HOSTS_METRIC_VALUE, + }), + { count: 0, anyHostExceedsMax: false } + ); + + // Create a query so from hostKeys so that (key: value OR key: value2) + const hostsKuery = hostKeys + .filter((key) => hosts[key].length > 0) + .map((key) => hosts[key].map((value) => `${key}: "${value}"`).join(' OR ')) + .join(' OR '); + const hostsUrl = hostsLocator?.getRedirectUrl({ + query: { language: 'kuery', query: hostsKuery }, + dateRange: { from: timeRange.from, to: timeRange.to }, + limit: countOfHosts.count, + }); + const hostsLink = hostsUrl + ? { + label: flyoutShowAllText, + href: hostsUrl, + } + : undefined; + + return { + title: flyoutHostsText, + value: formatMetricValueForMax( + countOfHosts.anyHostExceedsMax ? countOfHosts.count + 1 : countOfHosts.count, + countOfHosts.count, + NUMBER_FORMAT + ), + link: hostsLink, + }; +} + +/** + * Formats a metric value to show a '+' sign if it's above a max value e.g. 50+ + */ +function formatMetricValueForMax(value: number, max: number, numberFormat: string): string { + const exceedsMax = value > max; + const valueToShow = exceedsMax ? max : value; + return `${formatNumber(valueToShow, numberFormat)}${exceedsMax ? '+' : ''}`; +} diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_actions_menu.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_actions_menu.tsx index 7a3b2715f1782..9705cd8b5ffd2 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_actions_menu.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_actions_menu.tsx @@ -14,12 +14,18 @@ import { EuiContextMenuPanelDescriptor, EuiContextMenuPanelItemDescriptor, EuiPopover, + EuiSkeletonRectangle, } from '@elastic/eui'; import { css } from '@emotion/react'; import { RouterLinkProps } from '@kbn/router-utils/src/get_router_link_props'; import { Integration } from '../../../common/data_streams_stats/integration'; import { useDatasetQualityFlyout } from '../../hooks'; import { useFlyoutIntegrationActions } from '../../hooks/use_flyout_integration_actions'; + +const integrationActionsText = i18n.translate('xpack.datasetQuality.flyoutIntegrationActionsText', { + defaultMessage: 'Integration actions', +}); + const seeIntegrationText = i18n.translate('xpack.datasetQuality.flyoutSeeIntegrationActionText', { defaultMessage: 'See integration', }); @@ -32,7 +38,13 @@ const viewDashboardsText = i18n.translate('xpack.datasetQuality.flyoutViewDashbo defaultMessage: 'View dashboards', }); -export function IntegrationActionsMenu({ integration }: { integration: Integration }) { +export function IntegrationActionsMenu({ + integration, + dashboardsLoading, +}: { + integration: Integration; + dashboardsLoading: boolean; +}) { const { type, name } = useDatasetQualityFlyout().dataStreamStat!; const { dashboards = [], version, name: integrationName } = integration; const { @@ -46,6 +58,8 @@ export function IntegrationActionsMenu({ integration }: { integration: Integrati const actionButton = ( <EuiButtonIcon + title={integrationActionsText} + aria-label={integrationActionsText} iconType="boxesHorizontal" onClick={handleToggleMenu} data-test-subj="datasetQualityFlyoutIntegrationActionsButton" @@ -115,6 +129,13 @@ export function IntegrationActionsMenu({ integration }: { integration: Integrati name: viewDashboardsText, 'data-test-subj': 'datasetQualityFlyoutIntegrationActionViewDashboards', }); + } else if (dashboardsLoading) { + firstLevelItems.push({ + icon: 'dashboardApp', + name: <EuiSkeletonRectangle width={120} title={viewDashboardsText} />, + 'data-test-subj': 'datasetQualityFlyoutIntegrationActionDashboardsLoading', + disabled: true, + }); } const panel: EuiContextMenuPanelDescriptor[] = [ @@ -150,6 +171,7 @@ export function IntegrationActionsMenu({ integration }: { integration: Integrati name, type, version, + dashboardsLoading, ]); return ( diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_summary.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_summary.tsx index d77c68e4ac33b..1450e830eac1e 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_summary.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/components/flyout/integration_summary.tsx @@ -18,10 +18,18 @@ import { IntegrationIcon } from '../common'; import { FieldsList } from './fields_list'; import { IntegrationActionsMenu } from './integration_actions_menu'; -export function IntegrationSummary({ integration }: { integration: Integration }) { +export function IntegrationSummary({ + integration, + dashboardsLoading, +}: { + integration: Integration; + dashboardsLoading: boolean; +}) { const { name, version } = integration; - const integrationActionsMenu = <IntegrationActionsMenu integration={integration} />; + const integrationActionsMenu = ( + <IntegrationActionsMenu integration={integration} dashboardsLoading={dashboardsLoading} /> + ); return ( <FieldsList title={flyoutIntegrationDetailsText} @@ -42,10 +50,12 @@ export function IntegrationSummary({ integration }: { integration: Integration } </EuiFlexGroup> </EuiBadge> ), + isLoading: false, }, { fieldTitle: flyoutIntegrationVersionText, fieldValue: version, + isLoading: false, }, ]} /> diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_flyout.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_flyout.tsx index 15b1ba311db0a..aab764f6f6396 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_flyout.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_flyout.tsx @@ -6,6 +6,7 @@ */ import { useSelector } from '@xstate/react'; +import { useMemo } from 'react'; import { useDatasetQualityContext } from '../components/dataset_quality/context'; import { useKibanaContextForPlugin } from '../utils'; @@ -18,25 +19,39 @@ export const useDatasetQualityFlyout = () => { const { dataset: dataStreamStat, + datasetSettings: dataStreamSettings, datasetDetails: dataStreamDetails, insightsTimeRange, breakdownField, } = useSelector(service, (state) => state.context.flyout); const { timeRange } = useSelector(service, (state) => state.context.filters); - const dataStreamDetailsLoading = useSelector( - service, - (state) => - state.matches('datasets.loaded.flyoutOpen.fetching') || - state.matches('flyout.initializing.dataStreamDetails.fetching') + const dataStreamDetailsLoading = useSelector(service, (state) => + state.matches('flyout.initializing.dataStreamDetails.fetching') ); + const dataStreamSettingsLoading = useSelector(service, (state) => + state.matches('flyout.initializing.dataStreamSettings.fetching') + ); + + const datasetIntegrationsLoading = useSelector(service, (state) => + state.matches('flyout.initializing.integrationDashboards.fetching') + ); + + const loadingState = useMemo(() => { + return { + dataStreamDetailsLoading, + dataStreamSettingsLoading, + datasetIntegrationsLoading, + }; + }, [dataStreamDetailsLoading, dataStreamSettingsLoading, datasetIntegrationsLoading]); return { dataStreamStat, + dataStreamSettings, dataStreamDetails, - dataStreamDetailsLoading, fieldFormats, timeRange: insightsTimeRange ?? timeRange, breakdownField, + loadingState, }; }; diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_table.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_table.tsx index 116e15bd92c93..2d1980c74daee 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_table.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_dataset_quality_table.tsx @@ -61,10 +61,6 @@ export const useDatasetQualityTable = () => { const datasets = useSelector(service, (state) => state.context.datasets); - const isDatasetQualityPageIdle = useSelector(service, (state) => - state.matches('datasets.loaded.idle') - ); - const toggleInactiveDatasets = useCallback( () => service.send({ type: 'TOGGLE_INACTIVE_DATASETS' }), [service] @@ -86,7 +82,7 @@ export const useDatasetQualityTable = () => { return; } - if (isDatasetQualityPageIdle) { + if (!flyout?.insightsTimeRange) { service.send({ type: 'OPEN_FLYOUT', dataset: selectedDataset, @@ -99,7 +95,7 @@ export const useDatasetQualityTable = () => { dataset: selectedDataset, }); }, - [flyout?.dataset?.rawName, isDatasetQualityPageIdle, service] + [flyout?.dataset?.rawName, flyout?.insightsTimeRange, service] ); const isActive = useCallback( diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_degraded_docs_chart.tsx b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_degraded_docs_chart.tsx index 2e37f84a0abb1..6a92249477cb2 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_degraded_docs_chart.tsx +++ b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_degraded_docs_chart.tsx @@ -4,12 +4,15 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ + import { useCallback, useState, useMemo, useEffect } from 'react'; import { Action } from '@kbn/ui-actions-plugin/public'; +import { fieldSupportsBreakdown } from '@kbn/unified-histogram-plugin/public'; import { i18n } from '@kbn/i18n'; import { useEuiTheme } from '@elastic/eui'; -import { DataViewField } from '@kbn/data-views-plugin/common'; +import { type DataView, DataViewField } from '@kbn/data-views-plugin/common'; +import { useDatasetQualityContext } from '../components/dataset_quality/context'; import { DEFAULT_LOGS_DATA_VIEW } from '../../common/constants'; import { indexNameToDataStreamParts } from '../../common/utils'; import { getLensAttributes } from '../components/flyout/degraded_docs_trend/lens_attributes'; @@ -34,37 +37,47 @@ const ACTION_OPEN_IN_LENS = 'ACTION_OPEN_IN_LENS'; interface DegradedDocsChartDeps { dataStream?: string; - breakdownDataViewField?: DataViewField; + breakdownField?: string; } -export const useDegradedDocsChart = ({ - dataStream, - breakdownDataViewField, -}: DegradedDocsChartDeps) => { +export const useDegradedDocsChart = ({ dataStream }: DegradedDocsChartDeps) => { + const { euiTheme } = useEuiTheme(); const { services: { lens }, } = useKibanaContextForPlugin(); - const { euiTheme } = useEuiTheme(); + const { service } = useDatasetQualityContext(); - const { dataStreamStat, timeRange } = useDatasetQualityFlyout(); + const { dataStreamStat, timeRange, breakdownField } = useDatasetQualityFlyout(); const [isChartLoading, setIsChartLoading] = useState<boolean | undefined>(undefined); const [attributes, setAttributes] = useState<ReturnType<typeof getLensAttributes> | undefined>( undefined ); - const datasetTypeIndexPattern = dataStream - ? `${indexNameToDataStreamParts(dataStream).type}-*-*` - : undefined; const { dataView } = useCreateDataView({ - indexPatternString: datasetTypeIndexPattern ?? DEFAULT_LOGS_DATA_VIEW, + indexPatternString: getDataViewIndexPattern(dataStream), }); + + const breakdownDataViewField = useMemo( + () => getDataViewField(dataView, breakdownField), + [breakdownField, dataView] + ); const filterQuery = `_index: ${dataStream ?? 'match-none'}`; const handleChartLoading = (isLoading: boolean) => { setIsChartLoading(isLoading); }; + const handleBreakdownFieldChange = useCallback( + (field: DataViewField | undefined) => { + service.send({ + type: 'BREAKDOWN_FIELD_CHANGE', + breakdownField: field?.name ?? null, + }); + }, + [service] + ); + useEffect(() => { if (dataView) { const lensAttributes = getLensAttributes({ @@ -111,6 +124,7 @@ export const useDegradedDocsChart = ({ dataStreamStat: dataStreamStat!, query: { language: 'kuery', query: '_ignored:*' }, timeRangeConfig: timeRange, + breakdownField: breakdownDataViewField?.name, }); const getOpenInLogsExplorerAction = useMemo(() => { @@ -141,11 +155,27 @@ export const useDegradedDocsChart = ({ return { attributes, dataView, - filterQuery, + breakdown: { + dataViewField: breakdownDataViewField, + fieldSupportsBreakdown: breakdownDataViewField + ? fieldSupportsBreakdown(breakdownDataViewField) + : true, + onChange: handleBreakdownFieldChange, + }, extraActions, isChartLoading, - handleChartLoading, + onChartLoading: handleChartLoading, setAttributes, setIsChartLoading, }; }; + +function getDataViewIndexPattern(dataStream: string | undefined) { + return dataStream ? `${indexNameToDataStreamParts(dataStream).type}-*-*` : DEFAULT_LOGS_DATA_VIEW; +} + +function getDataViewField(dataView: DataView | undefined, fieldName: string | undefined) { + return fieldName && dataView + ? dataView.fields.find((field) => field.name === fieldName) + : undefined; +} diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_link_to_logs_explorer.ts b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_link_to_logs_explorer.ts index c1a857da1cc71..ff442f970ab21 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_link_to_logs_explorer.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/hooks/use_link_to_logs_explorer.ts @@ -21,10 +21,12 @@ export const useLinkToLogsExplorer = ({ dataStreamStat, query, timeRangeConfig, + breakdownField, }: { dataStreamStat: DataStreamStat | FlyoutDataset; query?: Query | AggregateQuery; timeRangeConfig?: TimeRangeConfig; + breakdownField?: string; }) => { const { services: { share }, @@ -48,6 +50,7 @@ export const useLinkToLogsExplorer = ({ values: [dataStreamStat.namespace], }, }, + breakdownField, }; const singleDatasetLocator = diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/data_stream_details_client.ts b/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/data_stream_details_client.ts index 1dd5b2d2220cd..3b95814397f3a 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/data_stream_details_client.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/data_stream_details_client.ts @@ -8,26 +8,50 @@ import { HttpStart } from '@kbn/core/public'; import { decodeOrThrow } from '@kbn/io-ts-utils'; import { + getDataStreamsSettingsResponseRt, getDataStreamsDetailsResponseRt, integrationDashboardsRT, } from '../../../common/api_types'; import { GetDataStreamsStatsError, + GetDataStreamSettingsParams, + GetDataStreamSettingsResponse, GetDataStreamDetailsParams, GetDataStreamDetailsResponse, GetIntegrationDashboardsParams, GetIntegrationDashboardsResponse, } from '../../../common/data_streams_stats'; -import { DataStreamDetails } from '../../../common/data_streams_stats'; +import { DataStreamDetails, DataStreamSettings } from '../../../common/data_streams_stats'; import { IDataStreamDetailsClient } from './types'; export class DataStreamDetailsClient implements IDataStreamDetailsClient { constructor(private readonly http: HttpStart) {} - public async getDataStreamDetails({ dataStream }: GetDataStreamDetailsParams) { + public async getDataStreamSettings({ dataStream }: GetDataStreamSettingsParams) { + const response = await this.http + .get<GetDataStreamSettingsResponse>( + `/internal/dataset_quality/data_streams/${dataStream}/settings` + ) + .catch((error) => { + throw new GetDataStreamsStatsError(`Failed to fetch data stream settings": ${error}`); + }); + + const dataStreamSettings = decodeOrThrow( + getDataStreamsSettingsResponseRt, + (message: string) => + new GetDataStreamsStatsError(`Failed to decode data stream settings response: ${message}"`) + )(response); + + return dataStreamSettings as DataStreamSettings; + } + + public async getDataStreamDetails({ dataStream, start, end }: GetDataStreamDetailsParams) { const response = await this.http .get<GetDataStreamDetailsResponse>( - `/internal/dataset_quality/data_streams/${dataStream}/details` + `/internal/dataset_quality/data_streams/${dataStream}/details`, + { + query: { start, end }, + } ) .catch((error) => { throw new GetDataStreamsStatsError(`Failed to fetch data stream details": ${error}`); diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/types.ts b/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/types.ts index 068b36bab4fb1..f85e05d0179f5 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/types.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/services/data_stream_details/types.ts @@ -7,6 +7,8 @@ import { HttpStart } from '@kbn/core/public'; import { + GetDataStreamSettingsParams, + DataStreamSettings, GetDataStreamDetailsParams, DataStreamDetails, GetIntegrationDashboardsParams, @@ -24,6 +26,7 @@ export interface DataStreamDetailsServiceStartDeps { } export interface IDataStreamDetailsClient { + getDataStreamSettings(params: GetDataStreamSettingsParams): Promise<DataStreamSettings>; getDataStreamDetails(params: GetDataStreamDetailsParams): Promise<DataStreamDetails>; getIntegrationDashboards( params: GetIntegrationDashboardsParams diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/notifications.ts b/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/notifications.ts index 4d399552ec5e8..3d88e6645fe47 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/notifications.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/notifications.ts @@ -26,6 +26,15 @@ export const fetchDatasetDetailsFailedNotifier = (toasts: IToasts, error: Error) }); }; +export const fetchDatasetSettingsFailedNotifier = (toasts: IToasts, error: Error) => { + toasts.addDanger({ + title: i18n.translate('xpack.datasetQuality.fetchDatasetSettingsFailed', { + defaultMessage: "Dataset settings couldn't be loaded.", + }), + text: error.message, + }); +}; + export const fetchDegradedStatsFailedNotifier = (toasts: IToasts, error: Error) => { toasts.addDanger({ title: i18n.translate('xpack.datasetQuality.fetchDegradedStatsFailed', { diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/state_machine.ts b/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/state_machine.ts index 39d630a7aa770..f13e2c7340851 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/state_machine.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/state_machine.ts @@ -12,6 +12,7 @@ import { Integration } from '../../../../common/data_streams_stats/integration'; import { IDataStreamDetailsClient } from '../../../services/data_stream_details'; import { DashboardType, + DataStreamSettings, DataStreamDetails, DataStreamStat, GetDataStreamsStatsQuery, @@ -24,6 +25,7 @@ import { IDataStreamsStatsClient } from '../../../services/data_streams_stats'; import { generateDatasets } from '../../../utils'; import { DEFAULT_CONTEXT } from './defaults'; import { + fetchDatasetSettingsFailedNotifier, fetchDatasetDetailsFailedNotifier, fetchDatasetStatsFailedNotifier, fetchDegradedStatsFailedNotifier, @@ -173,6 +175,27 @@ export const createPureDatasetQualityControllerStateMachine = ( initializing: { type: 'parallel', states: { + dataStreamSettings: { + initial: 'fetching', + states: { + fetching: { + invoke: { + src: 'loadDataStreamSettings', + onDone: { + target: 'done', + actions: ['storeDataStreamSettings'], + }, + onError: { + target: 'done', + actions: ['notifyFetchDatasetSettingsFailed'], + }, + }, + }, + done: { + type: 'final', + }, + }, + }, dataStreamDetails: { initial: 'fetching', states: { @@ -185,12 +208,20 @@ export const createPureDatasetQualityControllerStateMachine = ( }, onError: { target: 'done', - actions: ['fetchDatasetDetailsFailedNotifier'], + actions: ['notifyFetchDatasetDetailsFailed'], }, }, }, done: { - type: 'final', + on: { + UPDATE_INSIGHTS_TIME_RANGE: { + target: 'fetching', + actions: ['storeFlyoutOptions'], + }, + BREAKDOWN_FIELD_CHANGE: { + actions: ['storeFlyoutOptions'], + }, + }, }, }, }, @@ -226,12 +257,6 @@ export const createPureDatasetQualityControllerStateMachine = ( target: 'closed', actions: ['resetFlyoutOptions'], }, - UPDATE_INSIGHTS_TIME_RANGE: { - actions: ['storeFlyoutOptions'], - }, - BREAKDOWN_FIELD_CHANGE: { - actions: ['storeFlyoutOptions'], - }, }, }, closed: { @@ -328,28 +353,25 @@ export const createPureDatasetQualityControllerStateMachine = ( : {}; }), storeFlyoutOptions: assign((context, event) => { - return 'dataset' in event - ? { - flyout: { - ...context.flyout, - dataset: event.dataset as FlyoutDataset, - }, - } - : 'timeRange' in event - ? { - flyout: { - ...context.flyout, - insightsTimeRange: event.timeRange, - }, - } - : 'breakdownField' in event - ? { - flyout: { - ...context.flyout, - breakdownField: event.breakdownField ?? undefined, - }, - } - : {}; + const insightsTimeRange = + 'timeRange' in event + ? event.timeRange + : context.flyout?.insightsTimeRange ?? context.filters?.timeRange; + const dataset = + 'dataset' in event ? (event.dataset as FlyoutDataset) : context.flyout?.dataset; + const breakdownField = + 'breakdownField' in event + ? event.breakdownField ?? undefined + : context.flyout?.breakdownField; + + return { + flyout: { + ...context.flyout, + dataset, + insightsTimeRange, + breakdownField, + }, + }; }), resetFlyoutOptions: assign((_context, _event) => ({ flyout: undefined })), storeDataStreamStats: assign((_context, event) => { @@ -366,6 +388,16 @@ export const createPureDatasetQualityControllerStateMachine = ( } : {}; }), + storeDataStreamSettings: assign((context, event) => { + return 'data' in event + ? { + flyout: { + ...context.flyout, + datasetSettings: (event.data ?? {}) as DataStreamSettings, + }, + } + : {}; + }), storeDatasetDetails: assign((context, event) => { return 'data' in event ? { @@ -438,6 +470,8 @@ export const createDatasetQualityControllerStateMachine = ({ fetchDatasetStatsFailedNotifier(toasts, event.data), notifyFetchDegradedStatsFailed: (_context, event: DoneInvokeEvent<Error>) => fetchDegradedStatsFailedNotifier(toasts, event.data), + notifyFetchDatasetSettingsFailed: (_context, event: DoneInvokeEvent<Error>) => + fetchDatasetSettingsFailedNotifier(toasts, event.data), notifyFetchDatasetDetailsFailed: (_context, event: DoneInvokeEvent<Error>) => fetchDatasetDetailsFailedNotifier(toasts, event.data), notifyFetchIntegrationDashboardsFailed: (_context, event: DoneInvokeEvent<Error>) => @@ -466,14 +500,34 @@ export const createDatasetQualityControllerStateMachine = ({ type: context.type as GetIntegrationsParams['query']['type'], }); }, - loadDataStreamDetails: (context) => { + loadDataStreamSettings: (context) => { if (!context.flyout.dataset) { + fetchDatasetSettingsFailedNotifier(toasts, new Error(noDatasetSelected)); + + return Promise.resolve({}); + } + + const { type, name: dataset, namespace } = context.flyout.dataset; + + return dataStreamDetailsClient.getDataStreamSettings({ + dataStream: dataStreamPartsToIndexName({ + type: type as DataStreamType, + dataset, + namespace, + }), + }); + }, + loadDataStreamDetails: (context) => { + if (!context.flyout.dataset || !context.flyout.insightsTimeRange) { fetchDatasetDetailsFailedNotifier(toasts, new Error(noDatasetSelected)); return Promise.resolve({}); } const { type, name: dataset, namespace } = context.flyout.dataset; + const { startDate: start, endDate: end } = getDateISORange( + context.flyout.insightsTimeRange + ); return dataStreamDetailsClient.getDataStreamDetails({ dataStream: dataStreamPartsToIndexName({ @@ -481,6 +535,8 @@ export const createDatasetQualityControllerStateMachine = ({ dataset, namespace, }), + start, + end, }); }, loadIntegrationDashboards: (context) => { diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/types.ts b/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/types.ts index 5af18adf8313d..3cfb3e9c5a548 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/types.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/state_machines/dataset_quality_controller/src/types.ts @@ -13,11 +13,12 @@ import { DegradedDocsStat } from '../../../../common/data_streams_stats/malforme import { DashboardType, DataStreamDegradedDocsStatServiceResponse, + DataStreamSettings, DataStreamDetails, DataStreamStatServiceResponse, IntegrationsResponse, + DataStreamStat, } from '../../../../common/data_streams_stats'; -import { DataStreamStat } from '../../../../common/data_streams_stats/data_stream_stat'; export type FlyoutDataset = Omit< DataStreamStat, @@ -53,6 +54,7 @@ export interface WithTableOptions { export interface WithFlyoutOptions { flyout: { dataset?: FlyoutDataset; + datasetSettings?: DataStreamSettings; datasetDetails?: DataStreamDetails; insightsTimeRange?: TimeRangeConfig; breakdownField?: string; @@ -103,14 +105,6 @@ export type DatasetQualityControllerTypeState = value: 'datasets.loaded.idle'; context: DefaultDatasetQualityStateContext; } - | { - value: 'datasets.loaded.flyoutOpen.fetching'; - context: DefaultDatasetQualityStateContext; - } - | { - value: 'datasets.loaded.flyoutOpen'; - context: DefaultDatasetQualityStateContext; - } | { value: 'degradedDocs.fetching'; context: DefaultDatasetQualityStateContext; @@ -123,6 +117,10 @@ export type DatasetQualityControllerTypeState = value: 'integrations.fetching'; context: DefaultDatasetQualityStateContext; } + | { + value: 'flyout.initializing.dataStreamSettings.fetching'; + context: DefaultDatasetQualityStateContext; + } | { value: 'flyout.initializing.dataStreamDetails.fetching'; context: DefaultDatasetQualityStateContext; @@ -185,6 +183,8 @@ export type DatasetQualityControllerEvent = } | DoneInvokeEvent<DataStreamDegradedDocsStatServiceResponse> | DoneInvokeEvent<DashboardType> + | DoneInvokeEvent<DataStreamDetails> + | DoneInvokeEvent<DataStreamSettings> | DoneInvokeEvent<DataStreamStatServiceResponse> | DoneInvokeEvent<IntegrationsResponse> | DoneInvokeEvent<Error>; diff --git a/x-pack/plugins/observability_solution/dataset_quality/public/types.ts b/x-pack/plugins/observability_solution/dataset_quality/public/types.ts index b9755a8c28628..7da7875978740 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/public/types.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/public/types.ts @@ -12,8 +12,10 @@ import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; import type { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import type { LensPublicStart } from '@kbn/lens-plugin/public'; -import type { DatasetQualityProps } from './components/dataset_quality'; +import type { ObservabilitySharedPluginSetup } from '@kbn/observability-shared-plugin/public'; + import type { CreateDatasetQualityController } from './controller'; +import type { DatasetQualityProps } from './components/dataset_quality'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface DatasetQualityPluginSetup {} @@ -30,6 +32,7 @@ export interface DatasetQualityStartDeps { unifiedSearch: UnifiedSearchPublicPluginStart; lens: LensPublicStart; dataViews: DataViewsPublicPluginStart; + observabilityShared: ObservabilitySharedPluginSetup; } export interface DatasetQualitySetupDeps { diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_details.test.ts b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_details.test.ts index faaf3d1c44b6f..1b850ff2c9fd9 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_details.test.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_details.test.ts @@ -5,203 +5,175 @@ * 2.0. */ +import { SearchTotalHitsRelation } from '@elastic/elasticsearch/lib/api/types'; import { elasticsearchServiceMock } from '@kbn/core-elasticsearch-server-mocks'; +import { + findInventoryFields, + InventoryItemType, + inventoryModels, +} from '@kbn/metrics-data-access-plugin/common'; import { getDataStreamDetails } from '.'; const accessLogsDataStream = 'logs-nginx.access-default'; const errorLogsDataStream = 'logs-nginx.error-default'; -const dateStr1 = '1702998651925'; // .ds-logs-nginx.access-default-2023.12.19-000001 -const dateStr2 = '1703110671019'; // .ds-logs-nginx.access-default-2023.12.20-000002 -const dateStr3 = '1702998866744'; // .ds-logs-nginx.error-default-2023.12.19-000001 + +const defaultSummaryStats = { + degradedDocsCount: 98841, + docsCount: 617680, + hosts: { + 'aws.rds.db_instance.arn': [], + 'aws.s3.bucket.name': [], + 'aws.sqs.queue.name': [], + 'cloud.instance.id': ['0000000000009121', '0000000000009127', '0000000000009133'], + 'container.id': [], + 'host.name': ['synth-host'], + 'kubernetes.pod.uid': [], + }, + services: { + 'service.name': ['synth-service-0', 'synth-service-1', 'synth-service-2'], + }, + sizeBytes: 72596354, +}; + +const start = Number(new Date('2020-01-01T00:00:00.000Z')); +const end = Number(new Date('2020-01-30T00:00:00.000Z')); describe('getDataStreamDetails', () => { afterAll(() => { jest.clearAllMocks(); }); - it('throws error if index is not found', async () => { + it('returns {} if index is not found', async () => { const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); esClientMock.indices.getSettings.mockRejectedValue(MOCK_INDEX_ERROR); + esClientMock.search.mockRejectedValue(MOCK_INDEX_ERROR); + + const dataStreamDetails = await getDataStreamDetails({ + esClient: esClientMock, + dataStream: 'non-existent', + start, + end, + }); - try { - await getDataStreamDetails({ - esClient: esClientMock, - dataStream: 'non-existent', - }); - } catch (e) { - expect(e).toBe(MOCK_INDEX_ERROR); - } + expect(dataStreamDetails).toEqual({}); }); - it('returns creation date of a data stream', async () => { + it('returns summary of a data stream', async () => { const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); - esClientMock.indices.getSettings.mockReturnValue( - Promise.resolve(MOCK_NGINX_ERROR_INDEX_SETTINGS) - ); + esClientMock.indices.stats.mockReturnValue(Promise.resolve(MOCK_STATS_RESPONSE)); + esClientMock.search.mockReturnValue(Promise.resolve(MOCK_SEARCH_RESPONSE)); const dataStreamDetails = await getDataStreamDetails({ esClient: esClientMock, dataStream: errorLogsDataStream, + start, + end, }); - expect(dataStreamDetails).toEqual({ createdOn: Number(dateStr3) }); + + expect(dataStreamDetails).toEqual(defaultSummaryStats); }); - it('returns the earliest creation date of a data stream with multiple backing indices', async () => { + it('returns the correct service.name list', async () => { const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); - esClientMock.indices.getSettings.mockReturnValue( - Promise.resolve(MOCK_NGINX_ACCESS_INDEX_SETTINGS) + esClientMock.indices.stats.mockReturnValue(Promise.resolve(MOCK_STATS_RESPONSE)); + + const serviceName = 'service.name'; + const testServiceName = ['tst-srv-0', 'tst-srv-1']; + const mockSearchResponse = { ...MOCK_SEARCH_RESPONSE }; + mockSearchResponse.aggregations[serviceName].buckets = testServiceName.map((name) => ({ + key: name, + doc_count: 1, + })); + esClientMock.search.mockReturnValue(Promise.resolve(MOCK_SEARCH_RESPONSE)); + + const dataStreamDetails = await getDataStreamDetails({ + esClient: esClientMock, + dataStream: accessLogsDataStream, + start, + end, + }); + expect(dataStreamDetails.services).toEqual({ [serviceName]: testServiceName }); + }); + + it('returns the correct host.name list', async () => { + const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); + esClientMock.indices.stats.mockReturnValue(Promise.resolve(MOCK_STATS_RESPONSE)); + + const hostName = 'host.name'; + const testHostName = ['tst-host-0', 'tst-host-1']; + const hostFields = inventoryModels.map( + (model) => findInventoryFields(model.id as InventoryItemType).id ); + const mockSearchResponse = { ...MOCK_SEARCH_RESPONSE }; + // Make all hosts buckets to [] + hostFields.forEach((field) => { + mockSearchResponse.aggregations[field as 'host.name'] = { buckets: [] } as any; + }); + + // Set the host.name buckets to testHostName + mockSearchResponse.aggregations[hostName].buckets = testHostName.map((name) => ({ + key: name, + doc_count: 1, + })); + + esClientMock.search.mockReturnValue(Promise.resolve(MOCK_SEARCH_RESPONSE)); + const dataStreamDetails = await getDataStreamDetails({ esClient: esClientMock, dataStream: accessLogsDataStream, + start, + end, }); - expect(dataStreamDetails).toEqual({ createdOn: Number(dateStr1) }); + + // Expect all host fields to be empty + const emptyHosts = hostFields.reduce((acc, field) => ({ ...acc, [field]: [] }), {}); + + expect(dataStreamDetails.hosts).toEqual({ ...emptyHosts, [hostName]: testHostName }); }); -}); -const MOCK_NGINX_ACCESS_INDEX_SETTINGS = { - [`.ds-${accessLogsDataStream}-2023.12.19-000001`]: { - settings: { - index: { - mapping: { - total_fields: { - limit: 10000, - }, - ignore_malformed: true, - }, - hidden: true, - provided_name: '.ds-logs-nginx.access-default-2023.12.19-000001', - final_pipeline: '.fleet_final_pipeline-1', - query: { - default_field: [ - 'cloud.account.id', - 'cloud.availability_zone', - 'cloud.instance.id', - 'cloud.instance.name', - 'cloud.machine.type', - 'cloud.provider', - 'cloud.region', - ], - }, - creation_date: dateStr1, - number_of_replicas: '1', - uuid: 'uml9fMQqQUibZi2pKkc5sQ', - version: { - created: '8500007', - }, - lifecycle: { - name: 'logs', - indexing_complete: true, - }, - codec: 'best_compression', - routing: { - allocation: { - include: { - _tier_preference: 'data_hot', - }, - }, - }, - number_of_shards: '1', - default_pipeline: 'logs-nginx.access-1.17.0', - }, - }, - }, - [`.ds-${accessLogsDataStream}-2023.12.20-000002`]: { - settings: { - index: { - mapping: { - total_fields: { - limit: 10000, - }, - ignore_malformed: true, - }, - hidden: true, - provided_name: '.ds-logs-nginx.access-default-2023.12.20-000002', - final_pipeline: '.fleet_final_pipeline-1', - query: { - default_field: [ - 'user.name', - 'user_agent.device.name', - 'user_agent.name', - 'user_agent.original', - 'user_agent.os.full', - 'user_agent.os.name', - 'user_agent.os.version', - 'user_agent.version', - 'nginx.access.remote_ip_list', - ], - }, - creation_date: dateStr2, - number_of_replicas: '1', - uuid: 'il9vJlOXRdiv44wU6WNtUQ', - version: { - created: '8500007', - }, - lifecycle: { - name: 'logs', - }, - codec: 'best_compression', - routing: { - allocation: { - include: { - _tier_preference: 'data_hot', - }, - }, - }, - number_of_shards: '1', - default_pipeline: 'logs-nginx.access-1.17.0', - }, - }, - }, -}; + it('returns correct size in bytes', async () => { + const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); -const MOCK_NGINX_ERROR_INDEX_SETTINGS = { - [`.ds-${errorLogsDataStream}-2023.12.19-000001`]: { - settings: { - index: { - mapping: { - total_fields: { - limit: 10000, - }, - ignore_malformed: true, - }, - hidden: true, - provided_name: '.ds-logs-nginx.error-default-2023.12.19-000001', - final_pipeline: '.fleet_final_pipeline-1', - query: { - default_field: [ - 'host.type', - 'input.type', - 'log.file.path', - 'log.level', - 'ecs.version', - 'message', - 'tags', - ], - }, - creation_date: dateStr3, - number_of_replicas: '1', - uuid: 'fGPYUppSRU62MZ3toF0MkQ', - version: { - created: '8500007', - }, - lifecycle: { - name: 'logs', - }, - codec: 'best_compression', - routing: { - allocation: { - include: { - _tier_preference: 'data_hot', - }, - }, - }, - number_of_shards: '1', - default_pipeline: 'logs-nginx.error-1.17.0', - }, - }, - }, -}; + const docsCount = 536; + const storeDocsCount = 1220; + const storeSizeInBytes = 2048; + const expectedSizeInBytes = Math.ceil((storeSizeInBytes / storeDocsCount) * docsCount); + + const testStatsResponse = { ...MOCK_STATS_RESPONSE }; + testStatsResponse._all.total.docs.count = storeDocsCount; + testStatsResponse._all.total.store.size_in_bytes = storeSizeInBytes; + esClientMock.indices.stats.mockReturnValue(Promise.resolve(testStatsResponse)); + + const mockSearchResponse = { ...MOCK_SEARCH_RESPONSE }; + mockSearchResponse.aggregations.total_count.value = docsCount; + esClientMock.search.mockReturnValue(Promise.resolve(mockSearchResponse)); + + const dataStreamDetails = await getDataStreamDetails({ + esClient: esClientMock, + dataStream: accessLogsDataStream, + start, + end, + }); + expect(dataStreamDetails.sizeBytes).toEqual(expectedSizeInBytes); + }); + + // This covers https://github.com/elastic/kibana/issues/178954 + it('returns size as NaN for when sizeStatsAvailable is false (serverless mode)', async () => { + const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); + + esClientMock.indices.stats.mockReturnValue(Promise.resolve(MOCK_STATS_RESPONSE)); + esClientMock.search.mockReturnValue(Promise.resolve(MOCK_SEARCH_RESPONSE)); + + const dataStreamDetails = await getDataStreamDetails({ + esClient: esClientMock, + dataStream: accessLogsDataStream, + start, + end, + sizeStatsAvailable: false, + }); + expect(dataStreamDetails.sizeBytes).toBeNaN(); + }); +}); const MOCK_INDEX_ERROR = { error: { @@ -222,5 +194,142 @@ const MOCK_INDEX_ERROR = { index_uuid: '_na_', index: 'logs-nginx.error-default-01', }, - status: 404, + statusCode: 404, +}; + +const MOCK_SEARCH_RESPONSE = { + took: 2, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + total: { + value: 10000, + relation: 'gte' as SearchTotalHitsRelation, + }, + max_score: null, + hits: [], + }, + aggregations: { + total_count: { + value: 617680, + }, + degraded_count: { + doc_count: 98841, + }, + 'service.name': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'synth-service-0', + doc_count: 206116, + }, + { + key: 'synth-service-1', + doc_count: 206012, + }, + { + key: 'synth-service-2', + doc_count: 205552, + }, + ], + }, + 'host.name': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'synth-host', + doc_count: 617680, + }, + ], + }, + 'kubernetes.pod.uid': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + 'container.id': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + 'cloud.instance.id': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 614630, + buckets: [ + { + key: '0000000000009121', + doc_count: 61, + }, + { + key: '0000000000009127', + doc_count: 61, + }, + { + key: '0000000000009133', + doc_count: 61, + }, + ], + }, + 'aws.s3.bucket.name': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + 'aws.rds.db_instance.arn': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + 'aws.sqs.queue.name': { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + }, +}; + +const MOCK_STATS_RESPONSE = { + _shards: { + total: 2, + successful: 2, + failed: 0, + }, + _all: { + primaries: {}, + total: { + docs: { + count: 1235360, + deleted: 0, + }, + shard_stats: { + total_count: 2, + }, + store: { + size_in_bytes: 145192707, + total_data_set_size_in_bytes: 145192707, + reserved_in_bytes: 0, + }, + indexing: { + index_total: 1235059, + index_time_in_millis: 98509, + index_current: 0, + index_failed: 0, + delete_total: 0, + delete_time_in_millis: 0, + delete_current: 0, + noop_update_total: 0, + is_throttled: false, + throttle_time_in_millis: 0, + write_load: 0.00022633763414114222, + }, + }, + }, + indices: {}, }; diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_settings.test.ts b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_settings.test.ts new file mode 100644 index 0000000000000..dd2548d033c71 --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/get_data_stream_settings.test.ts @@ -0,0 +1,227 @@ +/* + * 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 { elasticsearchServiceMock } from '@kbn/core-elasticsearch-server-mocks'; + +import { getDataStreamSettings } from '.'; +const accessLogsDataStream = 'logs-nginx.access-default'; +const errorLogsDataStream = 'logs-nginx.error-default'; +const dateStr1 = '1702998651925'; // .ds-logs-nginx.access-default-2023.12.19-000001 +const dateStr2 = '1703110671019'; // .ds-logs-nginx.access-default-2023.12.20-000002 +const dateStr3 = '1702998866744'; // .ds-logs-nginx.error-default-2023.12.19-000001 + +describe('getDataStreamSettings', () => { + afterAll(() => { + jest.clearAllMocks(); + }); + + it('throws error if index is not found', async () => { + const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); + esClientMock.indices.getSettings.mockRejectedValue(MOCK_INDEX_ERROR); + + try { + await getDataStreamSettings({ + esClient: esClientMock, + dataStream: 'non-existent', + }); + } catch (e) { + expect(e).toBe(MOCK_INDEX_ERROR); + } + }); + + it('returns creation date of a data stream', async () => { + const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); + esClientMock.indices.getSettings.mockReturnValue( + Promise.resolve(MOCK_NGINX_ERROR_INDEX_SETTINGS) + ); + + const dataStreamSettings = await getDataStreamSettings({ + esClient: esClientMock, + dataStream: errorLogsDataStream, + }); + expect(dataStreamSettings).toEqual({ createdOn: Number(dateStr3) }); + }); + + it('returns the earliest creation date of a data stream with multiple backing indices', async () => { + const esClientMock = elasticsearchServiceMock.createElasticsearchClient(); + esClientMock.indices.getSettings.mockReturnValue( + Promise.resolve(MOCK_NGINX_ACCESS_INDEX_SETTINGS) + ); + + const dataStreamSettings = await getDataStreamSettings({ + esClient: esClientMock, + dataStream: accessLogsDataStream, + }); + expect(dataStreamSettings).toEqual({ createdOn: Number(dateStr1) }); + }); +}); + +const MOCK_NGINX_ACCESS_INDEX_SETTINGS = { + [`.ds-${accessLogsDataStream}-2023.12.19-000001`]: { + settings: { + index: { + mapping: { + total_fields: { + limit: 10000, + }, + ignore_malformed: true, + }, + hidden: true, + provided_name: '.ds-logs-nginx.access-default-2023.12.19-000001', + final_pipeline: '.fleet_final_pipeline-1', + query: { + default_field: [ + 'cloud.account.id', + 'cloud.availability_zone', + 'cloud.instance.id', + 'cloud.instance.name', + 'cloud.machine.type', + 'cloud.provider', + 'cloud.region', + ], + }, + creation_date: dateStr1, + number_of_replicas: '1', + uuid: 'uml9fMQqQUibZi2pKkc5sQ', + version: { + created: '8500007', + }, + lifecycle: { + name: 'logs', + indexing_complete: true, + }, + codec: 'best_compression', + routing: { + allocation: { + include: { + _tier_preference: 'data_hot', + }, + }, + }, + number_of_shards: '1', + default_pipeline: 'logs-nginx.access-1.17.0', + }, + }, + }, + [`.ds-${accessLogsDataStream}-2023.12.20-000002`]: { + settings: { + index: { + mapping: { + total_fields: { + limit: 10000, + }, + ignore_malformed: true, + }, + hidden: true, + provided_name: '.ds-logs-nginx.access-default-2023.12.20-000002', + final_pipeline: '.fleet_final_pipeline-1', + query: { + default_field: [ + 'user.name', + 'user_agent.device.name', + 'user_agent.name', + 'user_agent.original', + 'user_agent.os.full', + 'user_agent.os.name', + 'user_agent.os.version', + 'user_agent.version', + 'nginx.access.remote_ip_list', + ], + }, + creation_date: dateStr2, + number_of_replicas: '1', + uuid: 'il9vJlOXRdiv44wU6WNtUQ', + version: { + created: '8500007', + }, + lifecycle: { + name: 'logs', + }, + codec: 'best_compression', + routing: { + allocation: { + include: { + _tier_preference: 'data_hot', + }, + }, + }, + number_of_shards: '1', + default_pipeline: 'logs-nginx.access-1.17.0', + }, + }, + }, +}; + +const MOCK_NGINX_ERROR_INDEX_SETTINGS = { + [`.ds-${errorLogsDataStream}-2023.12.19-000001`]: { + settings: { + index: { + mapping: { + total_fields: { + limit: 10000, + }, + ignore_malformed: true, + }, + hidden: true, + provided_name: '.ds-logs-nginx.error-default-2023.12.19-000001', + final_pipeline: '.fleet_final_pipeline-1', + query: { + default_field: [ + 'host.type', + 'input.type', + 'log.file.path', + 'log.level', + 'ecs.version', + 'message', + 'tags', + ], + }, + creation_date: dateStr3, + number_of_replicas: '1', + uuid: 'fGPYUppSRU62MZ3toF0MkQ', + version: { + created: '8500007', + }, + lifecycle: { + name: 'logs', + }, + codec: 'best_compression', + routing: { + allocation: { + include: { + _tier_preference: 'data_hot', + }, + }, + }, + number_of_shards: '1', + default_pipeline: 'logs-nginx.error-1.17.0', + }, + }, + }, +}; + +const MOCK_INDEX_ERROR = { + error: { + root_cause: [ + { + type: 'index_not_found_exception', + reason: 'no such index [logs-nginx.error-default-01]', + 'resource.type': 'index_or_alias', + 'resource.id': 'logs-nginx.error-default-01', + index_uuid: '_na_', + index: 'logs-nginx.error-default-01', + }, + ], + type: 'index_not_found_exception', + reason: 'no such index [logs-nginx.error-default-01]', + 'resource.type': 'index_or_alias', + 'resource.id': 'logs-nginx.error-default-01', + index_uuid: '_na_', + index: 'logs-nginx.error-default-01', + }, + status: 404, +}; diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts index 65fa54babcc30..c6ee429c27f96 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts @@ -7,28 +7,163 @@ import { badRequest } from '@hapi/boom'; import type { ElasticsearchClient } from '@kbn/core/server'; -import { DataStreamDetails } from '../../../../common/api_types'; +import { + findInventoryFields, + InventoryItemType, + inventoryModels, +} from '@kbn/metrics-data-access-plugin/common'; +import { rangeQuery } from '@kbn/observability-plugin/server'; + +import { MAX_HOSTS_METRIC_VALUE } from '../../../../common/constants'; +import { _IGNORED } from '../../../../common/es_fields'; +import { DataStreamDetails, DataStreamSettings } from '../../../../common/api_types'; +import { createDatasetQualityESClient } from '../../../utils'; import { dataStreamService } from '../../../services'; -export async function getDataStreamDetails(args: { +export async function getDataStreamSettings({ + esClient, + dataStream, +}: { + esClient: ElasticsearchClient; + dataStream: string; +}): Promise<DataStreamSettings> { + throwIfInvalidDataStreamParams(dataStream); + + const createdOn = await getDataStreamCreatedOn(esClient, dataStream); + + return { + createdOn, + }; +} + +export async function getDataStreamDetails({ + esClient, + dataStream, + start, + end, + sizeStatsAvailable = true, +}: { esClient: ElasticsearchClient; dataStream: string; + start: number; + end: number; + sizeStatsAvailable?: boolean; // Only Needed to determine whether `_stats` endpoint is available https://github.com/elastic/kibana/issues/178954 }): Promise<DataStreamDetails> { - const { esClient, dataStream } = args; + throwIfInvalidDataStreamParams(dataStream); - if (!dataStream?.trim()) { - throw badRequest(`Data Stream name cannot be empty. Received value "${dataStream}"`); + try { + const dataStreamSummaryStats = await getDataStreamSummaryStats( + esClient, + dataStream, + start, + end + ); + + const whenSizeStatsNotAvailable = NaN; // This will indicate size cannot be calculated + const avgDocSizeInBytes = sizeStatsAvailable + ? dataStreamSummaryStats.docsCount > 0 + ? await getAvgDocSizeInBytes(esClient, dataStream) + : 0 + : whenSizeStatsNotAvailable; + const sizeBytes = Math.ceil(avgDocSizeInBytes * dataStreamSummaryStats.docsCount); + + return { + ...dataStreamSummaryStats, + sizeBytes, + }; + } catch (e) { + // Respond with empty object if data stream does not exist + if (e.statusCode === 404) { + return {}; + } + throw e; } +} +async function getDataStreamCreatedOn(esClient: ElasticsearchClient, dataStream: string) { const indexSettings = await dataStreamService.getDataSteamIndexSettings(esClient, dataStream); const indexesList = Object.values(indexSettings); - const indexCreationDate = indexesList + return indexesList .map((index) => Number(index.settings?.index?.creation_date)) .sort((a, b) => a - b)[0]; +} + +type TermAggregation = Record<string, { terms: { field: string; size: number } }>; + +const MAX_HOSTS = MAX_HOSTS_METRIC_VALUE + 1; // Adding 1 so that we can show e.g. '50+' + +// Gather service.name terms +const serviceNamesAgg: TermAggregation = { + ['service.name']: { terms: { field: 'service.name', size: MAX_HOSTS } }, +}; + +// Gather host terms like 'host', 'pod', 'container' +const hostsAgg: TermAggregation = inventoryModels + .map((model) => findInventoryFields(model.id as InventoryItemType)) + .reduce( + (acc, fields) => ({ ...acc, [fields.id]: { terms: { field: fields.id, size: MAX_HOSTS } } }), + {} as TermAggregation + ); + +async function getDataStreamSummaryStats( + esClient: ElasticsearchClient, + dataStream: string, + start: number, + end: number +): Promise<{ + docsCount: number; + degradedDocsCount: number; + services: Record<string, string[]>; + hosts: Record<string, string[]>; +}> { + const datasetQualityESClient = createDatasetQualityESClient(esClient); + + const response = await datasetQualityESClient.search({ + index: dataStream, + query: rangeQuery(start, end)[0], + size: 0, + aggs: { + total_count: { + value_count: { field: '_index' }, + }, + degraded_count: { + filter: { exists: { field: _IGNORED } }, + }, + ...serviceNamesAgg, + ...hostsAgg, + }, + }); + + const docsCount = Number(response.aggregations?.total_count.value ?? 0); + const degradedDocsCount = Number(response.aggregations?.degraded_count.doc_count ?? 0); return { - createdOn: indexCreationDate, + docsCount, + degradedDocsCount, + services: getTermsFromAgg(serviceNamesAgg, response.aggregations), + hosts: getTermsFromAgg(hostsAgg, response.aggregations), }; } + +async function getAvgDocSizeInBytes(esClient: ElasticsearchClient, index: string) { + const indexStats = await esClient.indices.stats({ index }); + const docCount = indexStats._all.total?.docs?.count ?? 0; + const sizeInBytes = indexStats._all.total?.store?.size_in_bytes ?? 0; + + return docCount ? sizeInBytes / docCount : 0; +} + +function getTermsFromAgg(termAgg: TermAggregation, aggregations: any) { + return Object.entries(termAgg).reduce((acc, [key, _value]) => { + const values = aggregations[key]?.buckets.map((bucket: any) => bucket.key) as string[]; + return { ...acc, [key]: values }; + }, {}); +} + +function throwIfInvalidDataStreamParams(dataStream?: string) { + if (!dataStream?.trim()) { + throw badRequest(`Data Stream name cannot be empty. Received value "${dataStream}"`); + } +} diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/routes.ts b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/routes.ts index a8475ed8cc8ef..6dd8590c91f0b 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/routes.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/routes.ts @@ -7,16 +7,17 @@ import * as t from 'io-ts'; import { keyBy, merge, values } from 'lodash'; -import { DataStreamType } from '../../../common/types'; import { DataStreamDetails, DataStreamsEstimatedDataInBytes, + DataStreamSettings, DataStreamStat, DegradedDocs, } from '../../../common/api_types'; +import { indexNameToDataStreamParts } from '../../../common/utils'; import { rangeRt, typeRt } from '../../types/default_api_types'; import { createDatasetQualityServerRoute } from '../create_datasets_quality_server_route'; -import { getDataStreamDetails } from './get_data_stream_details'; +import { getDataStreamDetails, getDataStreamSettings } from './get_data_stream_details'; import { getDataStreams } from './get_data_streams'; import { getDataStreamsStats } from './get_data_streams_stats'; import { getDegradedDocsPaginated } from './get_degraded_docs'; @@ -94,37 +95,71 @@ const degradedDocsRoute = createDatasetQualityServerRoute({ }, }); +const dataStreamSettingsRoute = createDatasetQualityServerRoute({ + endpoint: 'GET /internal/dataset_quality/data_streams/{dataStream}/settings', + params: t.type({ + path: t.type({ + dataStream: t.string, + }), + }), + options: { + tags: [], + }, + async handler(resources): Promise<DataStreamSettings> { + const { context, params } = resources; + const { dataStream } = params.path; + const coreContext = await context.core; + + // Query datastreams as the current user as the Kibana internal user may not have all the required permissions + const esClient = coreContext.elasticsearch.client.asCurrentUser; + + const dataStreamSettings = await getDataStreamSettings({ + esClient, + dataStream, + }); + + return dataStreamSettings; + }, +}); + const dataStreamDetailsRoute = createDatasetQualityServerRoute({ endpoint: 'GET /internal/dataset_quality/data_streams/{dataStream}/details', params: t.type({ path: t.type({ dataStream: t.string, }), + query: rangeRt, }), options: { tags: [], }, async handler(resources): Promise<DataStreamDetails> { - const { context, params } = resources; + const { context, params, getEsCapabilities } = resources; const { dataStream } = params.path; + const { start, end } = params.query; const coreContext = await context.core; // Query datastreams as the current user as the Kibana internal user may not have all the required permissions const esClient = coreContext.elasticsearch.client.asCurrentUser; - const [type, ...datasetQuery] = dataStream.split('-'); + const { type, dataset, namespace } = indexNameToDataStreamParts(dataStream); + const sizeStatsAvailable = !(await getEsCapabilities()).serverless; const [dataStreamsStats, dataStreamDetails] = await Promise.all([ getDataStreamsStats({ esClient, - type: type as DataStreamType, - datasetQuery: datasetQuery.join('-'), + type, + datasetQuery: `${dataset}-${namespace}`, }), - getDataStreamDetails({ esClient, dataStream }), + getDataStreamDetails({ esClient, dataStream, start, end, sizeStatsAvailable }), ]); return { - createdOn: dataStreamDetails?.createdOn, + docsCount: dataStreamDetails?.docsCount, + degradedDocsCount: dataStreamDetails?.degradedDocsCount, + services: dataStreamDetails?.services, + hosts: dataStreamDetails?.hosts, + sizeBytes: dataStreamDetails?.sizeBytes, lastActivity: dataStreamsStats.items?.[0]?.lastActivity, }; }, @@ -166,5 +201,6 @@ export const dataStreamsRouteRepository = { ...statsRoute, ...degradedDocsRoute, ...dataStreamDetailsRoute, + ...dataStreamSettingsRoute, ...estimatedDataInBytesRoute, }; diff --git a/x-pack/plugins/observability_solution/dataset_quality/tsconfig.json b/x-pack/plugins/observability_solution/dataset_quality/tsconfig.json index 461c69492c852..58b8cfaf987e2 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/tsconfig.json +++ b/x-pack/plugins/observability_solution/dataset_quality/tsconfig.json @@ -26,7 +26,6 @@ "@kbn/shared-ux-utility", "@kbn/ui-theme", "@kbn/core-notifications-browser", - "@kbn/formatters", "@kbn/data-service", "@kbn/observability-shared-plugin", "@kbn/data-plugin", @@ -42,7 +41,8 @@ "@kbn/deeplinks-management", "@kbn/deeplinks-analytics", "@kbn/core-elasticsearch-server", - "@kbn/ui-actions-plugin" + "@kbn/ui-actions-plugin", + "@kbn/metrics-data-access-plugin" ], "exclude": ["target/**/*"] } diff --git a/x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_details.spec.ts b/x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_details.spec.ts index 2c809802e795e..efa183d2d336b 100644 --- a/x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_details.spec.ts +++ b/x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_details.spec.ts @@ -10,18 +10,19 @@ import expect from '@kbn/expect'; import { DatasetQualityApiClientKey } from '../../common/config'; import { DatasetQualityApiError } from '../../common/dataset_quality_api_supertest'; import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { expectToReject, getDataStreamSettingsOfFirstIndex } from '../../utils'; +import { expectToReject } from '../../utils'; export default function ApiTest({ getService }: FtrProviderContext) { const registry = getService('registry'); const synthtrace = getService('logSynthtraceEsClient'); - const esClient = getService('es'); const datasetQualityApiClient = getService('datasetQualityApiClient'); const start = '2023-12-11T18:00:00.000Z'; const end = '2023-12-11T18:01:00.000Z'; const type = 'logs'; const dataset = 'nginx.access'; const namespace = 'default'; + const serviceName = 'my-service'; + const hostName = 'synth-host'; async function callApiAs(user: DatasetQualityApiClientKey, dataStream: string) { return await datasetQualityApiClient[user]({ @@ -30,6 +31,10 @@ export default function ApiTest({ getService }: FtrProviderContext) { path: { dataStream, }, + query: { + start, + end, + }, }, }); } @@ -50,6 +55,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { .namespace(namespace) .defaults({ 'log.file.path': '/my-service.log', + 'service.name': serviceName, + 'host.name': hostName, }) ), ]); @@ -71,13 +78,16 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(resp.body).empty(); }); - it('returns data stream details correctly', async () => { - const dataStreamSettings = await getDataStreamSettingsOfFirstIndex( - esClient, - `logs-${dataset}-${namespace}` - ); + it('returns "sizeBytes" correctly', async () => { + const resp = await callApiAs('datasetQualityLogsUser', `${type}-${dataset}-${namespace}`); + expect(isNaN(resp.body.sizeBytes as number)).to.be(false); + expect(resp.body.sizeBytes).to.be.greaterThan(0); + }); + + it('returns service.name and host.name correctly', async () => { const resp = await callApiAs('datasetQualityLogsUser', `${type}-${dataset}-${namespace}`); - expect(resp.body.createdOn).to.be(Number(dataStreamSettings?.index?.creation_date)); + expect(resp.body.services).to.eql({ ['service.name']: [serviceName] }); + expect(resp.body.hosts?.['host.name']).to.eql([hostName]); }); after(async () => { diff --git a/x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_settings.spec.ts b/x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_settings.spec.ts new file mode 100644 index 0000000000000..e6f75d53b6c77 --- /dev/null +++ b/x-pack/test/dataset_quality_api_integration/tests/data_streams/data_stream_settings.spec.ts @@ -0,0 +1,106 @@ +/* + * 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 { log, timerange } from '@kbn/apm-synthtrace-client'; +import expect from '@kbn/expect'; +import { DatasetQualityApiClientKey } from '../../common/config'; +import { DatasetQualityApiError } from '../../common/dataset_quality_api_supertest'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + expectToReject, + getDataStreamSettingsOfEarliestIndex, + rolloverDataStream, +} from '../../utils'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const registry = getService('registry'); + const synthtrace = getService('logSynthtraceEsClient'); + const esClient = getService('es'); + const datasetQualityApiClient = getService('datasetQualityApiClient'); + const start = '2023-12-11T18:00:00.000Z'; + const end = '2023-12-11T18:01:00.000Z'; + const type = 'logs'; + const dataset = 'nginx.access'; + const namespace = 'default'; + const serviceName = 'my-service'; + const hostName = 'synth-host'; + + async function callApiAs(user: DatasetQualityApiClientKey, dataStream: string) { + return await datasetQualityApiClient[user]({ + endpoint: 'GET /internal/dataset_quality/data_streams/{dataStream}/settings', + params: { + path: { + dataStream, + }, + }, + }); + } + + registry.when('DataStream Settings', { config: 'basic' }, () => { + describe('gets the data stream settings', () => { + before(async () => { + await synthtrace.index([ + timerange(start, end) + .interval('1m') + .rate(1) + .generator((timestamp) => + log + .create() + .message('This is a log message') + .timestamp(timestamp) + .dataset(dataset) + .namespace(namespace) + .defaults({ + 'log.file.path': '/my-service.log', + 'service.name': serviceName, + 'host.name': hostName, + }) + ), + ]); + }); + + it('returns error when dataStream param is not provided', async () => { + const expectedMessage = 'Data Stream name cannot be empty'; + const err = await expectToReject<DatasetQualityApiError>(() => + callApiAs('datasetQualityLogsUser', encodeURIComponent(' ')) + ); + expect(err.res.status).to.be(400); + expect(err.res.body.message.indexOf(expectedMessage)).to.greaterThan(-1); + }); + + it('returns {} if matching data stream is not available', async () => { + const nonExistentDataSet = 'Non-existent'; + const nonExistentDataStream = `${type}-${nonExistentDataSet}-${namespace}`; + const resp = await callApiAs('datasetQualityLogsUser', nonExistentDataStream); + expect(resp.body).empty(); + }); + + it('returns "createdOn" correctly', async () => { + const dataStreamSettings = await getDataStreamSettingsOfEarliestIndex( + esClient, + `${type}-${dataset}-${namespace}` + ); + const resp = await callApiAs('datasetQualityLogsUser', `${type}-${dataset}-${namespace}`); + expect(resp.body.createdOn).to.be(Number(dataStreamSettings?.index?.creation_date)); + }); + + it('returns "createdOn" correctly for rolled over dataStream', async () => { + await rolloverDataStream(esClient, `${type}-${dataset}-${namespace}`); + const dataStreamSettings = await getDataStreamSettingsOfEarliestIndex( + esClient, + `${type}-${dataset}-${namespace}` + ); + const resp = await callApiAs('datasetQualityLogsUser', `${type}-${dataset}-${namespace}`); + expect(resp.body.createdOn).to.be(Number(dataStreamSettings?.index?.creation_date)); + }); + + after(async () => { + await synthtrace.clean(); + }); + }); + }); +} diff --git a/x-pack/test/dataset_quality_api_integration/utils/data_stream.ts b/x-pack/test/dataset_quality_api_integration/utils/data_stream.ts index ff3a3cc95d1ac..bdf5187db0725 100644 --- a/x-pack/test/dataset_quality_api_integration/utils/data_stream.ts +++ b/x-pack/test/dataset_quality_api_integration/utils/data_stream.ts @@ -7,7 +7,20 @@ import { Client } from '@elastic/elasticsearch'; -export async function getDataStreamSettingsOfFirstIndex(es: Client, name: string) { +export async function rolloverDataStream(es: Client, name: string) { + return es.indices.rollover({ alias: name }); +} + +export async function getDataStreamSettingsOfEarliestIndex(es: Client, name: string) { const matchingIndexesObj = await es.indices.getSettings({ index: name }); - return Object.values(matchingIndexesObj ?? {})[0]?.settings; + + const matchingIndexes = Object.keys(matchingIndexesObj ?? {}); + matchingIndexes.sort((a, b) => { + return ( + Number(matchingIndexesObj[a].settings?.index?.creation_date) - + Number(matchingIndexesObj[b].settings?.index?.creation_date) + ); + }); + + return matchingIndexesObj[matchingIndexes[0]].settings; } diff --git a/x-pack/test/functional/apps/dataset_quality/data/logs_data.ts b/x-pack/test/functional/apps/dataset_quality/data/logs_data.ts index 3c9b7596feb64..68d96070990f0 100644 --- a/x-pack/test/functional/apps/dataset_quality/data/logs_data.ts +++ b/x-pack/test/functional/apps/dataset_quality/data/logs_data.ts @@ -28,12 +28,14 @@ export function getLogsForDataset({ count = 1, isMalformed = false, namespace = defaultNamespace, + services, }: { dataset: string; to: moment.MomentInput; count?: number; isMalformed?: boolean; namespace?: string; + services?: string[]; }) { return timerange(moment(to).subtract(count, 'minute'), moment(to)) .interval('1m') @@ -46,7 +48,9 @@ export function getLogsForDataset({ timestamp, dataset, MESSAGE_LOG_LEVELS[index % MESSAGE_LOG_LEVELS.length], - SERVICE_NAMES[index % SERVICE_NAMES.length], + services?.[index] ?? + services?.[index % services.length] ?? + SERVICE_NAMES[index % SERVICE_NAMES.length], CLUSTER[index % CLUSTER.length], CLOUD_PROVIDERS[index % CLOUD_PROVIDERS.length], CLOUD_REGION[index % CLOUD_REGION.length], @@ -108,7 +112,7 @@ export function createLogRecord( cloudProvider: string, cloudRegion: string, isMalformed = false, - namespace = defaultNamespace + namespace: string = defaultNamespace ): ReturnType<typeof log.create> { return log .create() diff --git a/x-pack/test/functional/apps/dataset_quality/dataset_quality_flyout.ts b/x-pack/test/functional/apps/dataset_quality/dataset_quality_flyout.ts index d5b2f0facfb37..a0daafef466b7 100644 --- a/x-pack/test/functional/apps/dataset_quality/dataset_quality_flyout.ts +++ b/x-pack/test/functional/apps/dataset_quality/dataset_quality_flyout.ts @@ -144,6 +144,139 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid expect(datasetSelectorText).to.eql(testDatasetName); }); + it('shows summary KPIs', async () => { + await PageObjects.datasetQuality.navigateTo(); + + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const summary = await PageObjects.datasetQuality.parseFlyoutKpis(); + expect(summary).to.eql({ + docsCountTotal: '0', + size: '0.0 B', + services: '0', + hosts: '0', + degradedDocs: '0', + }); + }); + + it('shows the updated KPIs', async () => { + const apacheAccessDatasetName = 'apache.access'; + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const summaryBefore = await PageObjects.datasetQuality.parseFlyoutKpis(); + + // Set time range to 3 days ago + const flyoutBodyContainer = await testSubjects.find( + PageObjects.datasetQuality.testSubjectSelectors.datasetQualityFlyoutBody + ); + await PageObjects.datasetQuality.setDatePickerLastXUnits(flyoutBodyContainer, 3, 'd'); + + // Index 2 doc 2 days ago + const time2DaysAgo = Date.now() - 2 * 24 * 60 * 60 * 1000; + await synthtrace.index( + getLogsForDataset({ + to: time2DaysAgo, + count: 2, + dataset: apacheAccessDatasetName, + isMalformed: false, + }) + ); + + // Index 5 degraded docs 2 days ago + await synthtrace.index( + getLogsForDataset({ + to: time2DaysAgo, + count: 5, + dataset: apacheAccessDatasetName, + isMalformed: true, + }) + ); + + await PageObjects.datasetQuality.refreshFlyout(); + const summaryAfter = await PageObjects.datasetQuality.parseFlyoutKpis(); + + expect(parseInt(summaryAfter.docsCountTotal, 10)).to.be.greaterThan( + parseInt(summaryBefore.docsCountTotal, 10) + ); + + expect(parseInt(summaryAfter.degradedDocs, 10)).to.be.greaterThan( + parseInt(summaryBefore.degradedDocs, 10) + ); + + expect(parseInt(summaryAfter.size, 10)).to.be.greaterThan(parseInt(summaryBefore.size, 10)); + expect(parseInt(summaryAfter.services, 10)).to.be.greaterThan( + parseInt(summaryBefore.services, 10) + ); + expect(parseInt(summaryAfter.hosts, 10)).to.be.greaterThan(parseInt(summaryBefore.hosts, 10)); + }); + + it('shows the right number of services', async () => { + const apacheAccessDatasetName = 'apache.access'; + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const summaryBefore = await PageObjects.datasetQuality.parseFlyoutKpis(); + const testServices = ['test-srv-1', 'test-srv-2']; + + // Index 2 docs with different services + const timeNow = Date.now(); + await synthtrace.index( + getLogsForDataset({ + to: timeNow, + count: 2, + dataset: apacheAccessDatasetName, + isMalformed: false, + services: testServices, + }) + ); + + await PageObjects.datasetQuality.refreshFlyout(); + const summaryAfter = await PageObjects.datasetQuality.parseFlyoutKpis(); + + expect(parseInt(summaryAfter.services, 10)).to.eql( + parseInt(summaryBefore.services, 10) + testServices.length + ); + }); + + it('goes to log explorer for degraded docs when show all is clicked', async () => { + const apacheAccessDatasetName = 'apache.access'; + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const degradedDocsShowAllSelector = `${PageObjects.datasetQuality.testSubjectSelectors.datasetQualityFlyoutKpiLink}-${PageObjects.datasetQuality.texts.degradedDocs}`; + await testSubjects.click(degradedDocsShowAllSelector); + await browser.switchTab(1); + + // Confirm dataset selector text in observability logs explorer + const datasetSelectorText = + await PageObjects.observabilityLogsExplorer.getDataSourceSelectorButtonText(); + expect(datasetSelectorText).to.contain(apacheAccessDatasetName); + + await browser.closeCurrentWindow(); + await browser.switchTab(0); + }); + + it('goes to infra hosts for hosts when show all is clicked', async () => { + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const hostsShowAllSelector = `${PageObjects.datasetQuality.testSubjectSelectors.datasetQualityFlyoutKpiLink}-${PageObjects.datasetQuality.texts.hosts}`; + await testSubjects.click(hostsShowAllSelector); + await browser.switchTab(1); + + // Confirm url contains metrics/hosts + await retry.tryForTime(5000, async () => { + const currentUrl = await browser.getCurrentUrl(); + const parsedUrl = new URL(currentUrl); + expect(parsedUrl.pathname).to.contain('/app/metrics/hosts'); + }); + + await browser.closeCurrentWindow(); + await browser.switchTab(0); + }); + it('Integration actions menu is present with correct actions', async () => { const apacheAccessDatasetName = 'apache.access'; const apacheAccessDatasetHumanName = 'Apache access logs'; diff --git a/x-pack/test/functional/apps/dataset_quality/dataset_quality_summary.ts b/x-pack/test/functional/apps/dataset_quality/dataset_quality_summary.ts index 1a072e622f62c..c3bc9ea3145a5 100644 --- a/x-pack/test/functional/apps/dataset_quality/dataset_quality_summary.ts +++ b/x-pack/test/functional/apps/dataset_quality/dataset_quality_summary.ts @@ -38,7 +38,7 @@ export default function ({ getService, getPageObjects }: DatasetQualityFtrProvid datasetHealthDegraded: '0', datasetHealthGood: '3', activeDatasets: '0 of 3', - estimatedData: '0 Bytes', + estimatedData: '0.0 B', }); }); diff --git a/x-pack/test/functional/page_objects/dataset_quality.ts b/x-pack/test/functional/page_objects/dataset_quality.ts index cd59faf3c9053..39c361c834b1f 100644 --- a/x-pack/test/functional/page_objects/dataset_quality.ts +++ b/x-pack/test/functional/page_objects/dataset_quality.ts @@ -34,6 +34,8 @@ type SummaryPanelKpi = Record< string >; +type FlyoutKpi = Record<'docsCountTotal' | 'size' | 'services' | 'hosts' | 'degradedDocs', string>; + export function DatasetQualityPageObject({ getPageObjects, getService }: FtrProviderContext) { const PageObjects = getPageObjects(['common']); const testSubjects = getService('testSubjects'); @@ -69,6 +71,8 @@ export function DatasetQualityPageObject({ getPageObjects, getService }: FtrProv datasetQualityNamespacesSelectable: 'datasetQualityNamespacesSelectable', datasetQualityNamespacesSelectableButton: 'datasetQualityNamespacesSelectableButton', datasetQualityDatasetHealthKpi: 'datasetQualityDatasetHealthKpi', + datasetQualityFlyoutKpiValue: 'datasetQualityFlyoutKpiValue', + datasetQualityFlyoutKpiLink: 'datasetQualityFlyoutKpiLink', superDatePickerToggleQuickMenuButton: 'superDatePickerToggleQuickMenuButton', superDatePickerApplyTimeButton: 'superDatePickerApplyTimeButton', @@ -112,7 +116,7 @@ export function DatasetQualityPageObject({ getPageObjects, getService }: FtrProv }, async waitUntilTableLoaded() { - await find.waitForDeletedByCssSelector('.euiBasicTable-loading'); + await find.waitForDeletedByCssSelector('.euiBasicTable-loading', 20 * 1000); }, async waitUntilSummaryPanelLoaded() { @@ -235,6 +239,16 @@ export function DatasetQualityPageObject({ getPageObjects, getService }: FtrProv return testSubjects.click(testSubjectSelectors.euiFlyoutCloseButton); }, + async refreshFlyout() { + const flyoutContainer: WebElementWrapper = await testSubjects.find( + testSubjectSelectors.datasetQualityFlyoutBody + ); + const refreshButton = await flyoutContainer.findByTestSubject( + testSubjectSelectors.superDatePickerApplyTimeButton + ); + return refreshButton.click(); + }, + async getFlyoutElementsByText(selector: string, text: string) { const flyoutContainer: WebElementWrapper = await testSubjects.find( testSubjectSelectors.datasetQualityFlyout @@ -270,12 +284,46 @@ export function DatasetQualityPageObject({ getPageObjects, getService }: FtrProv return elements.length > 0; }, + // `excludeKeys` needed to circumvent `_stats` not available in Serverless https://github.com/elastic/kibana/issues/178954 + // TODO: Remove `excludeKeys` when `_stats` is available in Serverless + async parseFlyoutKpis(excludeKeys: string[] = []): Promise<FlyoutKpi> { + const kpiTitleAndKeys = [ + { title: texts.docsCountTotal, key: 'docsCountTotal' }, + { title: texts.size, key: 'size' }, + { title: texts.services, key: 'services' }, + { title: texts.hosts, key: 'hosts' }, + { title: texts.degradedDocs, key: 'degradedDocs' }, + ].filter((item) => !excludeKeys.includes(item.key)); + + const kpiTexts = await Promise.all( + kpiTitleAndKeys.map(async ({ title, key }) => ({ + key, + value: await testSubjects.getVisibleText( + `${testSubjectSelectors.datasetQualityFlyoutKpiValue}-${title}` + ), + })) + ); + + return kpiTexts.reduce( + (acc, { key, value }) => ({ + ...acc, + [key]: value, + }), + {} as FlyoutKpi + ); + }, + async setDatePickerLastXUnits( container: WebElementWrapper, timeValue: number, unit: TimeUnitId ) { - await testSubjects.click(testSubjectSelectors.superDatePickerToggleQuickMenuButton); + // Only click the menu button found under the provided container + const datePickerToggleQuickMenuButton = await container.findByTestSubject( + testSubjectSelectors.superDatePickerToggleQuickMenuButton + ); + await datePickerToggleQuickMenuButton.click(); + const datePickerQuickMenu = await testSubjects.find( testSubjectSelectors.superDatePickerQuickMenu ); @@ -300,7 +348,9 @@ export function DatasetQualityPageObject({ getPageObjects, getService }: FtrProv await timeUnitSelect.focus(); await timeUnitSelect.type(unit); - (await datePickerQuickMenu.findByCssSelector(selectors.superDatePickerApplyButton)).click(); + await ( + await datePickerQuickMenu.findByCssSelector(selectors.superDatePickerApplyButton) + ).click(); return testSubjects.missingOrFail(testSubjectSelectors.superDatePickerQuickMenu); }, @@ -433,4 +483,9 @@ const texts = { datasetHealthGood: 'Good', activeDatasets: 'Active Datasets', estimatedData: 'Estimated Data', + docsCountTotal: 'Docs count (total)', + size: 'Size', + services: 'Services', + hosts: 'Hosts', + degradedDocs: 'Degraded docs', }; diff --git a/x-pack/test_serverless/api_integration/test_suites/common/reporting/generate_csv_discover.ts b/x-pack/test_serverless/api_integration/test_suites/common/reporting/generate_csv_discover.ts index def29fb09096c..9aafefdff51ce 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/reporting/generate_csv_discover.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/reporting/generate_csv_discover.ts @@ -11,7 +11,7 @@ import type { JobParamsCSV } from '@kbn/reporting-export-types-csv-common'; import type { Filter } from '@kbn/es-query'; import { FtrProviderContext } from '../../../ftr_provider_context'; -export default ({ getService }: FtrProviderContext) => { +export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const kibanaServer = getService('kibanaServer'); const reportingAPI = getService('svlReportingApi'); @@ -738,4 +738,4 @@ export default ({ getService }: FtrProviderContext) => { }); }); }); -}; +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/config.ts b/x-pack/test_serverless/api_integration/test_suites/observability/config.ts index 453a3b428ceff..792f1a766c1cd 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/config.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/config.ts @@ -6,7 +6,8 @@ */ import { createTestConfig } from '../../config.base'; -import { services } from './apm_api_integration/common/services'; +import { services as apmServices } from './apm_api_integration/common/services'; +import { services as datasetQualityServices } from './dataset_quality_api_integration/common/services'; export default createTestConfig({ serverlessProject: 'oblt', @@ -15,7 +16,7 @@ export default createTestConfig({ reportName: 'Serverless Observability API Integration Tests', }, suiteTags: { exclude: ['skipSvlOblt'] }, - services, + services: { ...apmServices, ...datasetQualityServices }, // include settings from project controller // https://github.com/elastic/project-controller/blob/main/internal/project/observability/config/elasticsearch.yml diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts new file mode 100644 index 0000000000000..2cdb6ec4fd765 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts @@ -0,0 +1,129 @@ +/* + * 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 { format } from 'url'; +import supertest from 'supertest'; +import request from 'superagent'; +import type { APIClientRequestParamsOf, APIReturnType } from '@kbn/dataset-quality-plugin/common'; +import { Config, kbnTestConfig, kibanaTestSuperuserServerless } from '@kbn/test'; +import type { APIEndpoint } from '@kbn/dataset-quality-plugin/server/routes'; +import { formatRequest } from '@kbn/server-route-repository'; +import { InheritedFtrProviderContext } from '../../../../services'; + +export function createDatasetQualityApiClient(st: supertest.SuperTest<supertest.Test>) { + return async <TEndpoint extends APIEndpoint>( + options: { + type?: 'form-data'; + endpoint: TEndpoint; + } & APIClientRequestParamsOf<TEndpoint> & { params?: { query?: { _inspect?: boolean } } } + ): Promise<SupertestReturnType<TEndpoint>> => { + const { endpoint, type } = options; + + const params = 'params' in options ? (options.params as Record<string, any>) : {}; + + const { method, pathname, version } = formatRequest(endpoint, params.path); + const url = format({ pathname, query: params?.query }); + + const headers: Record<string, string> = { + 'kbn-xsrf': 'foo', + 'x-elastic-internal-origin': 'foo', + }; + + if (version) { + headers['Elastic-Api-Version'] = version; + } + + let res: request.Response; + if (type === 'form-data') { + const fields: Array<[string, any]> = Object.entries(params.body); + const formDataRequest = st[method](url) + .set(headers) + .set('Content-type', 'multipart/form-data'); + + for (const field of fields) { + formDataRequest.field(field[0], field[1]); + } + + res = await formDataRequest; + } else if (params.body) { + res = await st[method](url).send(params.body).set(headers); + } else { + res = await st[method](url).set(headers); + } + + // supertest doesn't throw on http errors + if (res?.status !== 200) { + throw new DatasetQualityApiError(res, endpoint); + } + + return res; + }; +} + +type ApiErrorResponse = Omit<request.Response, 'body'> & { + body: { + statusCode: number; + error: string; + message: string; + attributes: object; + }; +}; + +export type DatasetQualityApiSupertest = ReturnType<typeof createDatasetQualityApiClient>; + +export class DatasetQualityApiError extends Error { + res: ApiErrorResponse; + + constructor(res: request.Response, endpoint: string) { + super( + `Unhandled DatasetQualityApiError. + Status: "${res.status}" + Endpoint: "${endpoint}" + Body: ${JSON.stringify(res.body)} + ` + ); + + this.res = res; + } +} + +async function getDatasetQualityApiClient({ svlSharedConfig }: { svlSharedConfig: Config }) { + const kibanaServer = svlSharedConfig.get('servers.kibana'); + const cAuthorities = svlSharedConfig.get('servers.kibana.certificateAuthorities'); + + const username = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).username; + const password = kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless).password; + + const url = format({ + ...kibanaServer, + auth: `${username}:${password}`, + }); + + return createDatasetQualityApiClient(supertest.agent(url, { ca: cAuthorities })); +} + +export interface SupertestReturnType<TEndpoint extends APIEndpoint> { + status: number; + body: APIReturnType<TEndpoint>; +} + +type DatasetQualityApiClientKey = 'slsUser'; +export type DatasetQualityApiClient = Record< + DatasetQualityApiClientKey, + Awaited<ReturnType<typeof getDatasetQualityApiClient>> +>; + +export async function getDatasetQualityApiClientService({ + getService, +}: InheritedFtrProviderContext): Promise<DatasetQualityApiClient> { + const svlSharedConfig = getService('config'); + + return { + slsUser: await getDatasetQualityApiClient({ + svlSharedConfig, + }), + }; +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/services.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/services.ts new file mode 100644 index 0000000000000..3c15e7fffae04 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/common/services.ts @@ -0,0 +1,38 @@ +/* + * 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 { createLogger, LogLevel, LogsSynthtraceEsClient } from '@kbn/apm-synthtrace'; +import { GenericFtrProviderContext } from '@kbn/test'; +import { + DatasetQualityApiClient, + getDatasetQualityApiClientService, +} from './dataset_quality_api_supertest'; +import { + InheritedServices, + InheritedFtrProviderContext, + services as inheritedServices, +} from '../../../../services'; + +export type DatasetQualityServices = InheritedServices & { + datasetQualityApiClient: ( + context: InheritedFtrProviderContext + ) => Promise<DatasetQualityApiClient>; + logSynthtraceEsClient: (context: InheritedFtrProviderContext) => Promise<LogsSynthtraceEsClient>; +}; + +export const services: DatasetQualityServices = { + ...inheritedServices, + datasetQualityApiClient: getDatasetQualityApiClientService, + logSynthtraceEsClient: async (context: InheritedFtrProviderContext) => + new LogsSynthtraceEsClient({ + client: context.getService('es'), + logger: createLogger(LogLevel.info), + refreshAfterIndex: true, + }), +}; + +export type DatasetQualityFtrContextProvider = GenericFtrProviderContext<typeof services, {}>; diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_details.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_details.ts new file mode 100644 index 0000000000000..1a4db10f140dc --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_details.ts @@ -0,0 +1,96 @@ +/* + * 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 { log, timerange } from '@kbn/apm-synthtrace-client'; +import expect from '@kbn/expect'; +import { expectToReject } from './utils'; +import { + DatasetQualityApiClient, + DatasetQualityApiError, +} from './common/dataset_quality_api_supertest'; +import { DatasetQualityFtrContextProvider } from './common/services'; + +export default function ({ getService }: DatasetQualityFtrContextProvider) { + const datasetQualityApiClient: DatasetQualityApiClient = getService('datasetQualityApiClient'); + const synthtrace = getService('logSynthtraceEsClient'); + const start = '2023-12-11T18:00:00.000Z'; + const end = '2023-12-11T18:01:00.000Z'; + const type = 'logs'; + const dataset = 'nginx.access'; + const namespace = 'default'; + const serviceName = 'my-service'; + const hostName = 'synth-host'; + + async function callApi(dataStream: string) { + return await datasetQualityApiClient.slsUser({ + endpoint: 'GET /internal/dataset_quality/data_streams/{dataStream}/details', + params: { + path: { + dataStream, + }, + query: { + start, + end, + }, + }, + }); + } + + describe('gets the data stream details', () => { + before(async () => { + await synthtrace.index([ + timerange(start, end) + .interval('1m') + .rate(1) + .generator((timestamp) => + log + .create() + .message('This is a log message') + .timestamp(timestamp) + .dataset(dataset) + .namespace(namespace) + .defaults({ + 'log.file.path': '/my-service.log', + 'service.name': serviceName, + 'host.name': hostName, + }) + ), + ]); + }); + + it('returns error when dataStream param is not provided', async () => { + const expectedMessage = 'Data Stream name cannot be empty'; + const err = await expectToReject<DatasetQualityApiError>(() => + callApi(encodeURIComponent(' ')) + ); + expect(err.res.status).to.be(400); + expect(err.res.body.message.indexOf(expectedMessage)).to.greaterThan(-1); + }); + + it('returns {} if matching data stream is not available', async () => { + const nonExistentDataSet = 'Non-existent'; + const nonExistentDataStream = `${type}-${nonExistentDataSet}-${namespace}`; + const resp = await callApi(nonExistentDataStream); + expect(resp.body).empty(); + }); + + it('returns "sizeBytes" as null in serverless', async () => { + const resp = await callApi(`${type}-${dataset}-${namespace}`); + expect(resp.body.sizeBytes).to.be(null); + }); + + it('returns service.name and host.name correctly', async () => { + const resp = await callApi(`${type}-${dataset}-${namespace}`); + expect(resp.body.services).to.eql({ ['service.name']: [serviceName] }); + expect(resp.body.hosts?.['host.name']).to.eql([hostName]); + }); + + after(async () => { + await synthtrace.clean(); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_settings.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_settings.ts new file mode 100644 index 0000000000000..a0ea813a83931 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/data_stream_settings.ts @@ -0,0 +1,101 @@ +/* + * 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 { log, timerange } from '@kbn/apm-synthtrace-client'; +import expect from '@kbn/expect'; +import { expectToReject, getDataStreamSettingsOfEarliestIndex, rolloverDataStream } from './utils'; +import { + DatasetQualityApiClient, + DatasetQualityApiError, +} from './common/dataset_quality_api_supertest'; +import { DatasetQualityFtrContextProvider } from './common/services'; + +export default function ({ getService }: DatasetQualityFtrContextProvider) { + const datasetQualityApiClient: DatasetQualityApiClient = getService('datasetQualityApiClient'); + const synthtrace = getService('logSynthtraceEsClient'); + const esClient = getService('es'); + const start = '2023-12-11T18:00:00.000Z'; + const end = '2023-12-11T18:01:00.000Z'; + const type = 'logs'; + const dataset = 'nginx.access'; + const namespace = 'default'; + const serviceName = 'my-service'; + const hostName = 'synth-host'; + + async function callApi(dataStream: string) { + return await datasetQualityApiClient.slsUser({ + endpoint: 'GET /internal/dataset_quality/data_streams/{dataStream}/settings', + params: { + path: { + dataStream, + }, + }, + }); + } + + describe('gets the data stream settings', () => { + before(async () => { + await synthtrace.index([ + timerange(start, end) + .interval('1m') + .rate(1) + .generator((timestamp) => + log + .create() + .message('This is a log message') + .timestamp(timestamp) + .dataset(dataset) + .namespace(namespace) + .defaults({ + 'log.file.path': '/my-service.log', + 'service.name': serviceName, + 'host.name': hostName, + }) + ), + ]); + }); + + it('returns error when dataStream param is not provided', async () => { + const expectedMessage = 'Data Stream name cannot be empty'; + const err = await expectToReject<DatasetQualityApiError>(() => + callApi(encodeURIComponent(' ')) + ); + expect(err.res.status).to.be(400); + expect(err.res.body.message.indexOf(expectedMessage)).to.greaterThan(-1); + }); + + it('returns {} if matching data stream is not available', async () => { + const nonExistentDataSet = 'Non-existent'; + const nonExistentDataStream = `${type}-${nonExistentDataSet}-${namespace}`; + const resp = await callApi(nonExistentDataStream); + expect(resp.body).empty(); + }); + + it('returns "createdOn" correctly', async () => { + const dataStreamSettings = await getDataStreamSettingsOfEarliestIndex( + esClient, + `${type}-${dataset}-${namespace}` + ); + const resp = await callApi(`${type}-${dataset}-${namespace}`); + expect(resp.body.createdOn).to.be(Number(dataStreamSettings?.index?.creation_date)); + }); + + it('returns "createdOn" correctly for rolled over dataStream', async () => { + await rolloverDataStream(esClient, `${type}-${dataset}-${namespace}`); + const dataStreamSettings = await getDataStreamSettingsOfEarliestIndex( + esClient, + `${type}-${dataset}-${namespace}` + ); + const resp = await callApi(`${type}-${dataset}-${namespace}`); + expect(resp.body.createdOn).to.be(Number(dataStreamSettings?.index?.creation_date)); + }); + + after(async () => { + await synthtrace.clean(); + }); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/index.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/index.ts new file mode 100644 index 0000000000000..f4022fd009833 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/index.ts @@ -0,0 +1,14 @@ +/* + * 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 { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Dataset Quality', function () { + loadTestFile(require.resolve('./data_stream_details')); + loadTestFile(require.resolve('./data_stream_settings')); + }); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/data_stream.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/data_stream.ts new file mode 100644 index 0000000000000..bdf5187db0725 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/data_stream.ts @@ -0,0 +1,26 @@ +/* + * 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 { Client } from '@elastic/elasticsearch'; + +export async function rolloverDataStream(es: Client, name: string) { + return es.indices.rollover({ alias: name }); +} + +export async function getDataStreamSettingsOfEarliestIndex(es: Client, name: string) { + const matchingIndexesObj = await es.indices.getSettings({ index: name }); + + const matchingIndexes = Object.keys(matchingIndexesObj ?? {}); + matchingIndexes.sort((a, b) => { + return ( + Number(matchingIndexesObj[a].settings?.index?.creation_date) - + Number(matchingIndexesObj[b].settings?.index?.creation_date) + ); + }); + + return matchingIndexesObj[matchingIndexes[0]].settings; +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/expect_to_reject.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/expect_to_reject.ts new file mode 100644 index 0000000000000..ae352c31d71a2 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/expect_to_reject.ts @@ -0,0 +1,17 @@ +/* + * 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 async function expectToReject<T extends Error>(fn: () => Promise<any>): Promise<T> { + let res: any; + try { + res = await fn(); + } catch (e) { + return e; + } + + throw new Error(`expectToReject resolved: "${JSON.stringify(res)}"`); +} diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/index.ts b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/index.ts new file mode 100644 index 0000000000000..0f273a5dddd10 --- /dev/null +++ b/x-pack/test_serverless/api_integration/test_suites/observability/dataset_quality_api_integration/utils/index.ts @@ -0,0 +1,9 @@ +/* + * 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 { expectToReject } from './expect_to_reject'; +export * from './data_stream'; diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/index.ts b/x-pack/test_serverless/api_integration/test_suites/observability/index.ts index acb33e0b4901b..0d4f4ffe52814 100644 --- a/x-pack/test_serverless/api_integration/test_suites/observability/index.ts +++ b/x-pack/test_serverless/api_integration/test_suites/observability/index.ts @@ -19,5 +19,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./es_query_rule/es_query_rule')); loadTestFile(require.resolve('./slos')); loadTestFile(require.resolve('./synthetics')); + loadTestFile(require.resolve('./dataset_quality_api_integration')); }); } diff --git a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/data/logs_data.ts b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/data/logs_data.ts index 0d635bcb2b0e4..68d96070990f0 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/data/logs_data.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/data/logs_data.ts @@ -28,12 +28,14 @@ export function getLogsForDataset({ count = 1, isMalformed = false, namespace = defaultNamespace, + services, }: { dataset: string; to: moment.MomentInput; count?: number; isMalformed?: boolean; namespace?: string; + services?: string[]; }) { return timerange(moment(to).subtract(count, 'minute'), moment(to)) .interval('1m') @@ -46,7 +48,9 @@ export function getLogsForDataset({ timestamp, dataset, MESSAGE_LOG_LEVELS[index % MESSAGE_LOG_LEVELS.length], - SERVICE_NAMES[index % SERVICE_NAMES.length], + services?.[index] ?? + services?.[index % services.length] ?? + SERVICE_NAMES[index % SERVICE_NAMES.length], CLUSTER[index % CLUSTER.length], CLOUD_PROVIDERS[index % CLOUD_PROVIDERS.length], CLOUD_REGION[index % CLOUD_REGION.length], diff --git a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts index cee287b9fa020..fa5243ec03ef7 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_flyout.ts @@ -29,9 +29,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); const browser = getService('browser'); const to = '2024-01-01T12:00:00.000Z'; + const excludeKeysFromServerless = ['size']; // https://github.com/elastic/kibana/issues/178954 - // FLAKY: https://github.com/elastic/kibana/issues/180994 - describe.skip('Dataset quality flyout', () => { + describe('Dataset quality flyout', () => { before(async () => { await PageObjects.svlCommonPage.loginWithRole('admin'); await synthtrace.index(getInitialTestLogs({ to, count: 4 })); @@ -85,7 +85,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(lastActivityTextExists).to.eql(true); }); - it('reflects the breakdown field state in url', async () => { + // FLAKY: https://github.com/elastic/kibana/issues/180994 + it.skip('reflects the breakdown field state in url', async () => { const testDatasetName = datasetNames[0]; await PageObjects.datasetQuality.openDatasetFlyout(testDatasetName); @@ -149,6 +150,149 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(datasetSelectorText).to.eql(testDatasetName); }); + it('shows summary KPIs', async () => { + await PageObjects.datasetQuality.navigateTo(); + + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const summary = await PageObjects.datasetQuality.parseFlyoutKpis(excludeKeysFromServerless); + expect(summary).to.eql({ + docsCountTotal: '0', + // size: '0.0 B', // `_stats` not available on Serverless + services: '0', + hosts: '0', + degradedDocs: '0', + }); + }); + + it('shows the updated KPIs', async () => { + const apacheAccessDatasetName = 'apache.access'; + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const summaryBefore = await PageObjects.datasetQuality.parseFlyoutKpis( + excludeKeysFromServerless + ); + + // Set time range to 3 days ago + const flyoutBodyContainer = await testSubjects.find( + PageObjects.datasetQuality.testSubjectSelectors.datasetQualityFlyoutBody + ); + await PageObjects.datasetQuality.setDatePickerLastXUnits(flyoutBodyContainer, 3, 'd'); + + // Index 2 doc 2 days ago + const time2DaysAgo = Date.now() - 2 * 24 * 60 * 60 * 1000; + await synthtrace.index( + getLogsForDataset({ + to: time2DaysAgo, + count: 2, + dataset: apacheAccessDatasetName, + isMalformed: false, + }) + ); + + // Index 5 degraded docs 2 days ago + await synthtrace.index( + getLogsForDataset({ + to: time2DaysAgo, + count: 5, + dataset: apacheAccessDatasetName, + isMalformed: true, + }) + ); + + await PageObjects.datasetQuality.refreshFlyout(); + const summaryAfter = await PageObjects.datasetQuality.parseFlyoutKpis( + excludeKeysFromServerless + ); + + expect(parseInt(summaryAfter.docsCountTotal, 10)).to.be.greaterThan( + parseInt(summaryBefore.docsCountTotal, 10) + ); + + expect(parseInt(summaryAfter.degradedDocs, 10)).to.be.greaterThan( + parseInt(summaryBefore.degradedDocs, 10) + ); + + // `_stats` not available on Serverless so we can't compare size // https://github.com/elastic/kibana/issues/178954 + // expect(parseInt(summaryAfter.size, 10)).to.be.greaterThan(parseInt(summaryBefore.size, 10)); + + expect(parseInt(summaryAfter.services, 10)).to.be.greaterThan( + parseInt(summaryBefore.services, 10) + ); + expect(parseInt(summaryAfter.hosts, 10)).to.be.greaterThan(parseInt(summaryBefore.hosts, 10)); + }); + + it('shows the right number of services', async () => { + const apacheAccessDatasetName = 'apache.access'; + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const summaryBefore = await PageObjects.datasetQuality.parseFlyoutKpis( + excludeKeysFromServerless + ); + const testServices = ['test-srv-1', 'test-srv-2']; + + // Index 2 docs with different services + const timeNow = Date.now(); + await synthtrace.index( + getLogsForDataset({ + to: timeNow, + count: 2, + dataset: apacheAccessDatasetName, + isMalformed: false, + services: testServices, + }) + ); + + await PageObjects.datasetQuality.refreshFlyout(); + const summaryAfter = await PageObjects.datasetQuality.parseFlyoutKpis( + excludeKeysFromServerless + ); + + expect(parseInt(summaryAfter.services, 10)).to.eql( + parseInt(summaryBefore.services, 10) + testServices.length + ); + }); + + it('goes to log explorer for degraded docs when show all is clicked', async () => { + const apacheAccessDatasetName = 'apache.access'; + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const degradedDocsShowAllSelector = `${PageObjects.datasetQuality.testSubjectSelectors.datasetQualityFlyoutKpiLink}-${PageObjects.datasetQuality.texts.degradedDocs}`; + await testSubjects.click(degradedDocsShowAllSelector); + await browser.switchTab(1); + + // Confirm dataset selector text in observability logs explorer + const datasetSelectorText = + await PageObjects.observabilityLogsExplorer.getDataSourceSelectorButtonText(); + expect(datasetSelectorText).to.contain(apacheAccessDatasetName); + + await browser.closeCurrentWindow(); + await browser.switchTab(0); + }); + + it('goes to infra hosts for hosts when show all is clicked', async () => { + const apacheAccessDatasetHumanName = 'Apache access logs'; + await PageObjects.datasetQuality.openDatasetFlyout(apacheAccessDatasetHumanName); + + const hostsShowAllSelector = `${PageObjects.datasetQuality.testSubjectSelectors.datasetQualityFlyoutKpiLink}-${PageObjects.datasetQuality.texts.hosts}`; + await testSubjects.click(hostsShowAllSelector); + await browser.switchTab(1); + + // Confirm url contains metrics/hosts + await retry.tryForTime(5000, async () => { + const currentUrl = await browser.getCurrentUrl(); + const parsedUrl = new URL(currentUrl); + expect(parsedUrl.pathname).to.contain('/app/metrics/hosts'); + }); + + await browser.closeCurrentWindow(); + await browser.switchTab(0); + }); + it('Integration actions menu is present with correct actions', async () => { const apacheAccessDatasetName = 'apache.access'; const apacheAccessDatasetHumanName = 'Apache access logs'; diff --git a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_summary.ts b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_summary.ts index 702b55c263a5c..f5a6fd31a25f3 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_summary.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/dataset_quality/dataset_quality_summary.ts @@ -40,7 +40,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { datasetHealthDegraded: '0', datasetHealthGood: '3', activeDatasets: '0 of 3', - // estimatedData: '0 Bytes', https://github.com/elastic/kibana/issues/178954 + // estimatedData: '0.0 B', https://github.com/elastic/kibana/issues/178954 }); }); @@ -131,7 +131,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(updatedActiveDatasets).to.eql('3 of 3'); - // TODO: Investigate. This fails on Serverless. + // TODO: `_stats` not available on Serverless. // https://github.com/elastic/kibana/issues/178954 // expect(_updatedEstimatedData).to.not.eql(_existingEstimatedData); }); }); diff --git a/x-pack/test_serverless/tsconfig.json b/x-pack/test_serverless/tsconfig.json index 21f7afafd3e2e..1df208cc8b81b 100644 --- a/x-pack/test_serverless/tsconfig.json +++ b/x-pack/test_serverless/tsconfig.json @@ -98,5 +98,6 @@ "@kbn/es-query", "@kbn/utility-types", "@kbn/synthetics-plugin", + "@kbn/dataset-quality-plugin" ] } From 53fa8bc87124711c158dbe810855639f8ac1099c Mon Sep 17 00:00:00 2001 From: Sergi Massaneda <sergi.massaneda@elastic.co> Date: Wed, 24 Apr 2024 13:25:12 +0200 Subject: [PATCH 111/183] [Security Solution] Network flows query "size": 0 (#181310) ## Summary Move the `"size": 0` prop to the body in the network flow aggregation queries --- .../factory/network/dns/__mocks__/index.ts | 4 ++-- .../factory/network/dns/query.dns_network.dsl.ts | 2 +- .../factory/network/http/__mocks__/index.ts | 4 ++-- .../factory/network/http/query.http_network.dsl.ts | 2 +- .../factory/network/top_countries/__mocks__/index.ts | 4 ++-- .../top_countries/query.top_countries_network.dsl.ts | 2 +- .../factory/network/top_n_flow/__mocks__/index.ts | 8 ++++---- .../network/top_n_flow/query.top_n_flow_network.dsl.ts | 10 +++++++--- 8 files changed, 20 insertions(+), 16 deletions(-) diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts index 7d89aae61439e..4e5c497c06463 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts @@ -197,8 +197,8 @@ export const formattedSearchStrategyResponse = { format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }, null, @@ -277,7 +277,7 @@ export const expectedDsl = { format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/query.dns_network.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/query.dns_network.dsl.ts index 122bc739c7187..cce16d8a7e5bc 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/query.dns_network.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/query.dns_network.dsl.ts @@ -131,8 +131,8 @@ export const buildDnsQuery = ({ format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts index 01ceb455b080c..b87c20c3f2810 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts @@ -673,8 +673,8 @@ export const formattedSearchStrategyResponse = { format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }, null, @@ -742,7 +742,7 @@ export const expectedDsl = { format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/query.http_network.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/query.http_network.dsl.ts index 4128de4c2ffbe..91b036bfcabb9 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/query.http_network.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/query.http_network.dsl.ts @@ -80,8 +80,8 @@ export const buildHttpQuery = ({ format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts index 8835a98621ea3..13c646df5a6b7 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts @@ -104,8 +104,8 @@ export const formattedSearchStrategyResponse = { ], }, }, + size: 0, }, - size: 0, track_total_hits: false, }, null, @@ -160,7 +160,7 @@ export const expectedDsl = { ], }, }, + size: 0, }, - size: 0, track_total_hits: false, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/query.top_countries_network.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/query.top_countries_network.dsl.ts index 72f339fb939bc..501e8122d50e0 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/query.top_countries_network.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/query.top_countries_network.dsl.ts @@ -66,8 +66,8 @@ export const buildTopCountriesQuery = ({ filter, }, }, + size: 0, }, - size: 0, track_total_hits: false, }; return dslQuery; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts index 7df0474bb29d9..00f0924f2a80b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts @@ -947,8 +947,8 @@ export const formattedSearchStrategyResponse: NetworkTopNFlowStrategyResponse = format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }, null, @@ -997,8 +997,8 @@ export const formattedCountStrategyResponse: NetworkTopNFlowCountStrategyRespons }, }, _source: false, + size: 0, }, - size: 0, track_total_hits: false, }, null, @@ -1098,8 +1098,8 @@ export const expectedDsl = { format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }; @@ -1137,7 +1137,7 @@ export const expectedCountDsl = { }, }, _source: false, + size: 0, }, - size: 0, track_total_hits: false, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/query.top_n_flow_network.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/query.top_n_flow_network.dsl.ts index 10a65e361a676..6e8154eafff9d 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/query.top_n_flow_network.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/query.top_n_flow_network.dsl.ts @@ -56,8 +56,8 @@ export const buildTopNFlowQuery = ({ format: 'strict_date_optional_time', }, ], + size: 0, }, - size: 0, track_total_hits: false, }; return dslQuery; @@ -75,8 +75,12 @@ export const buildTopNFlowCountQuery = ({ allow_no_indices: true, index: defaultIndex, ignore_unavailable: true, - body: { aggregations: getCountAgg(flowTarget), query, _source: false }, - size: 0, + body: { + aggregations: getCountAgg(flowTarget), + query, + _source: false, + size: 0, + }, track_total_hits: false, }; return dslQuery; From d4a9132ef5e174d4ccba15dcb7800d9f5b2e5302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?= <efeguerkan.yalaman@elastic.co> Date: Wed, 24 Apr 2024 13:29:13 +0200 Subject: [PATCH 112/183] [Search] Update connectors license (#181153) ## Summary Updates various connector configurations. - Box, Notion, Slack, Teams, and Zoom are set to run native. - Oracle, Outlook and Gmail are GA now. - GraphQL and OpenText Documentum added as Tech Preview connector clients. - Fixed a few tooltip issues. - Fixed a Teams `service_type` in integrations page. Note, waiting for icons for GraphQL and OpenText Documentum before merging. Screenshots below will have broken images until they are added. "Select Connector" with basic license: <img width="1008" alt="Screenshot 2024-04-18 at 15 33 30" src="https://github.com/elastic/kibana/assets/1410658/113237fb-94e0-465f-8134-f09fc871bc96"> <img width="1028" alt="Screenshot 2024-04-18 at 15 33 35" src="https://github.com/elastic/kibana/assets/1410658/c59d63bb-fd27-45d3-9e05-093fdf5af6d6"> Integrations tiles: <img width="1244" alt="Screenshot 2024-04-18 at 14 51 28" src="https://github.com/elastic/kibana/assets/1410658/314c2c0e-722e-400d-a933-3b99190181b2"> <img width="577" alt="Screenshot 2024-04-18 at 14 51 34" src="https://github.com/elastic/kibana/assets/1410658/56ef87b9-4ffc-4762-a37e-fa38a2a98c0c"> Native Upgrades: <img width="342" alt="Screenshot 2024-04-18 at 14 50 12" src="https://github.com/elastic/kibana/assets/1410658/324d006d-9f01-4761-be72-1346f88e47c0"> <img width="346" alt="Screenshot 2024-04-18 at 14 50 21" src="https://github.com/elastic/kibana/assets/1410658/d5d67838-1459-4a2a-9480-4c6e2fd6035b"> <img width="352" alt="Screenshot 2024-04-18 at 14 50 32" src="https://github.com/elastic/kibana/assets/1410658/4622d3bd-67b4-442b-9264-0d7ae889b8e7"> <img width="347" alt="Screenshot 2024-04-18 at 14 50 36" src="https://github.com/elastic/kibana/assets/1410658/929ea8fa-fadf-46ea-b23b-eaaa193e169e"> <img width="378" alt="Screenshot 2024-04-18 at 14 50 40" src="https://github.com/elastic/kibana/assets/1410658/44ae8fd6-5791-49c3-b4ef-7b7cb49f5038"> ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../types/native_connectors.ts | 610 +++++++++++++++++- .../apis/custom_integration/integrations.ts | 2 +- .../search_connectors/common/connectors.ts | 57 +- .../public/assets/icons/graphql.svg | 4 + .../translations/translations/fr-FR.json | 1 - .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 7 files changed, 652 insertions(+), 24 deletions(-) create mode 100644 x-pack/plugins/search_connectors/public/assets/icons/graphql.svg diff --git a/packages/kbn-search-connectors/types/native_connectors.ts b/packages/kbn-search-connectors/types/native_connectors.ts index 6108280478e2a..a044dd717ef4f 100644 --- a/packages/kbn-search-connectors/types/native_connectors.ts +++ b/packages/kbn-search-connectors/types/native_connectors.ts @@ -73,13 +73,12 @@ const ENABLE_DOCUMENT_LEVEL_SECURITY_LABEL = i18n.translate( } ); -const ENABLE_DOCUMENT_LEVEL_SECURITY_TOOLTIP = i18n.translate( - 'searchConnectors.nativeConnectors.enableDLS.tooltip', - { +const getEnableDocumentLevelSecurityTooltip = (serviceName: string) => + i18n.translate('searchConnectors.nativeConnectors.enableDLS.tooltip', { defaultMessage: - 'Document level security ensures identities and permissions set in Google Drive are maintained in Elasticsearch. This enables you to restrict and personalize read-access users and groups have to documents in this index. Access control syncs ensure this metadata is kept up to date in your Elasticsearch documents.', - } -); + 'Document level security ensures identities and permissions set in {serviceName} are maintained in Elasticsearch. This enables you to restrict and personalize read-access users and groups have to documents in this index. Access control syncs ensure this metadata is kept up to date in your Elasticsearch documents.', + values: { serviceName }, + }); const DATABASE_LABEL = i18n.translate('searchConnectors.nativeConnectors.databaseLabel', { defaultMessage: 'Database', @@ -246,6 +245,177 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde }), serviceType: 'azure_blob_storage', }, + box: { + configuration: { + path: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.box.pathLabel', { + defaultMessage: 'Path to fetch files/folders', + }), + options: [], + order: 1, + required: false, + sensitive: false, + tooltip: i18n.translate('searchConnectors.nativeConnectors.box.pathTooltip', { + defaultMessage: 'Path is ignored when Advanced Sync Rules are used. ', + }), + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + app_key: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.box.appKeyLabel', { + defaultMessage: 'App Key', + }), + options: [], + order: 2, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + app_secret: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.box.appSecretLabel', { + defaultMessage: 'App secret', + }), + options: [], + order: 3, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + refresh_token: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.box.refreshTokenLabel', { + defaultMessage: 'Refresh token', + }), + options: [], + order: 4, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + retry_count: { + default_value: 3, + depends_on: [], + display: DisplayType.NUMERIC, + label: RETRIES_PER_REQUEST_LABEL, + options: [], + order: 5, + required: false, + sensitive: false, + tooltip: null, + type: FieldType.INTEGER, + ui_restrictions: ['advanced'], + validations: [], + value: '', + }, + concurrent_downloads: { + default_value: 100, + depends_on: [], + display: DisplayType.NUMERIC, + label: MAX_CONCURRENT_DOWNLOADS_LABEL, + options: [], + order: 6, + required: false, + sensitive: false, + tooltip: null, + type: FieldType.INTEGER, + ui_restrictions: ['advanced'], + validations: [], + value: '', + }, + use_text_extraction_service: { + default_value: null, + depends_on: [], + display: DisplayType.TOGGLE, + label: USE_TEXT_EXTRACTION_SERVICE_LABEL, + options: [], + order: 7, + required: true, + sensitive: false, + tooltip: USE_TEXT_EXTRACTION_SERVICE_TOOLTIP, + type: FieldType.BOOLEAN, + ui_restrictions: ['advanced'], + validations: [], + value: false, + }, + use_document_level_security: { + default_value: null, + depends_on: [], + display: DisplayType.TOGGLE, + label: ENABLE_DOCUMENT_LEVEL_SECURITY_LABEL, + options: [], + order: 8, + required: true, + sensitive: false, + tooltip: getEnableDocumentLevelSecurityTooltip( + i18n.translate('searchConnectors.nativeConnectors.boxTooltip.name', { + defaultMessage: 'Box', + }) + ), + type: FieldType.BOOLEAN, + ui_restrictions: [], + validations: [], + value: false, + }, + include_inherited_users_and_groups: { + default_value: null, + depends_on: [ + { + field: 'use_document_level_security', + value: true, + }, + ], + display: DisplayType.TOGGLE, + label: i18n.translate('searchConnectors.nativeConnectors.box.includeInheritedUsersLabel', { + defaultMessage: 'Include groups and inherited users', + }), + options: [], + order: 9, + required: true, + sensitive: false, + tooltip: i18n.translate( + 'searchConnectors.nativeConnectors.box.includeInheritedUsersTooltip', + { + defaultMessage: + 'Include groups and inherited users when indexing permissions. Enabling this configurable field will cause a significant performance degradation.', + } + ), + type: FieldType.BOOLEAN, + ui_restrictions: [], + validations: [], + value: false, + }, + }, + features: {}, + name: i18n.translate('searchConnectors.nativeConnectors.box.name', { + defaultMessage: 'Box', + }), + serviceType: 'box', + }, confluence: { configuration: { data_source: { @@ -545,7 +715,11 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde order: 14, required: true, sensitive: false, - tooltip: ENABLE_DOCUMENT_LEVEL_SECURITY_TOOLTIP, + tooltip: getEnableDocumentLevelSecurityTooltip( + i18n.translate('searchConnectors.nativeConnectors.confluence.tooltipName', { + defaultMessage: 'Confluence', + }) + ), type: FieldType.BOOLEAN, ui_restrictions: [], validations: [], @@ -1381,7 +1555,11 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde order: 5, required: true, sensitive: false, - tooltip: ENABLE_DOCUMENT_LEVEL_SECURITY_TOOLTIP, + tooltip: getEnableDocumentLevelSecurityTooltip( + i18n.translate('searchConnectors.nativeConnectors.gdrive.tooltipName', { + defaultMessage: 'Google Drive', + }) + ), type: FieldType.BOOLEAN, ui_restrictions: [], validations: [], @@ -1769,7 +1947,11 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde order: 14, required: true, sensitive: false, - tooltip: ENABLE_DOCUMENT_LEVEL_SECURITY_TOOLTIP, + tooltip: getEnableDocumentLevelSecurityTooltip( + i18n.translate('searchConnectors.nativeConnectors.jiraTooltip.name', { + defaultMessage: 'Jira', + }) + ), type: FieldType.BOOLEAN, ui_restrictions: [], validations: [], @@ -1808,6 +1990,96 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde }), serviceType: 'jira', }, + microsoft_teams: { + configuration: { + tenant_id: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.microsoftTeams.tenantIdLabel', { + defaultMessage: 'Tenant ID', + }), + options: [], + order: 1, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + client_id: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.microsoftTeams.clientIdLabel', { + defaultMessage: 'Client ID', + }), + options: [], + order: 2, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + secret_value: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.microsoftTeams.secretValueLabel', { + defaultMessage: 'Secret value', + }), + options: [], + order: 3, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + username: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: USERNAME_LABEL, + options: [], + order: 4, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + password: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: PASSWORD_LABEL, + options: [], + order: 5, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + }, + features: {}, + name: i18n.translate('searchConnectors.nativeConnectors.microsoftTeams.name', { + defaultMessage: 'Microsoft Teams', + }), + serviceType: 'microsoft_teams', + }, mongodb: { configuration: { host: { @@ -2509,7 +2781,11 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde order: 6, required: true, sensitive: false, - tooltip: ENABLE_DOCUMENT_LEVEL_SECURITY_TOOLTIP, + tooltip: getEnableDocumentLevelSecurityTooltip( + i18n.translate('searchConnectors.nativeConnectors.networkDriveTooltip.name', { + defaultMessage: 'Network drive', + }) + ), type: FieldType.BOOLEAN, ui_restrictions: [], validations: [], @@ -2530,6 +2806,96 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde }), serviceType: 'network_drive', }, + notion: { + configuration: { + tenant_id: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.notion.tenantIdLabel', { + defaultMessage: 'Tenant ID', + }), + options: [], + order: 1, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + client_id: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.notion.clientIdLabel', { + defaultMessage: 'Client ID', + }), + options: [], + order: 2, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + secret_value: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.notion.secretValueLabel', { + defaultMessage: 'Secret value', + }), + options: [], + order: 3, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + username: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: USERNAME_LABEL, + options: [], + order: 4, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + password: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: PASSWORD_LABEL, + options: [], + order: 5, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + }, + features: {}, + name: i18n.translate('searchConnectors.nativeConnectors.notion.name', { + defaultMessage: 'Notion', + }), + serviceType: 'notion', + }, onedrive: { configuration: { client_id: { @@ -2623,7 +2989,11 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde order: 6, required: true, sensitive: false, - tooltip: ENABLE_DOCUMENT_LEVEL_SECURITY_TOOLTIP, + tooltip: getEnableDocumentLevelSecurityTooltip( + i18n.translate('searchConnectors.nativeConnectors.oneDriveTooltip.name', { + defaultMessage: 'OneDrive', + }) + ), type: FieldType.BOOLEAN, ui_restrictions: [], validations: [], @@ -4144,4 +4514,222 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde }), serviceType: 'sharepoint_online', }, + slack: { + configuration: { + token: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.slack.token.label', { + defaultMessage: 'Authentication Token', + }), + options: [], + order: 1, + required: true, + sensitive: true, + tooltip: i18n.translate('searchConnectors.nativeConnectors.slack.token.tooltip', { + defaultMessage: + 'The Slack Authentication Token for the slack application you created. See the docs for details.', + }), + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + fetch_last_n_days: { + default_value: null, + depends_on: [], + display: DisplayType.NUMERIC, + label: i18n.translate('searchConnectors.nativeConnectors.slack.fetchLastNDays.label', { + defaultMessage: 'Days of message history to fetch', + }), + options: [], + order: 2, + required: true, + sensitive: false, + tooltip: i18n.translate('searchConnectors.nativeConnectors.slack.fetchLastNDays.tooltip', { + defaultMessage: + 'How far back in time to request message history from slack. Messages older than this will not be indexed.', + }), + type: FieldType.INTEGER, + ui_restrictions: [], + validations: [], + value: '', + }, + auto_join_channels: { + default_value: null, + depends_on: [], + display: DisplayType.TOGGLE, + label: i18n.translate('searchConnectors.nativeConnectors.slack.autoJoinChannels.label', { + defaultMessage: 'Automatically join channels', + }), + options: [], + order: 3, + required: true, + sensitive: false, + tooltip: i18n.translate( + 'searchConnectors.nativeConnectors.slack.autoJoinChannels.tooltip', + { + defaultMessage: + 'The Slack application bot will only be able to read conversation history from channels it has joined. The default requires it to be manually invited to channels. Enabling this allows it to automatically invite itself into all public channels.', + } + ), + type: FieldType.BOOLEAN, + ui_restrictions: [], + validations: [], + value: false, + }, + sync_users: { + default_value: null, + depends_on: [], + display: DisplayType.TOGGLE, + label: i18n.translate('searchConnectors.nativeConnectors.slack.syncUsers.label', { + defaultMessage: 'Sync users', + }), + options: [], + order: 4, + required: true, + sensitive: false, + tooltip: i18n.translate('searchConnectors.nativeConnectors.slack.syncUsers.tooltip', { + defaultMessage: + 'Whether or not Slack Users should be indexed as documents in Elasticsearch.', + }), + type: FieldType.BOOLEAN, + ui_restrictions: [], + validations: [], + value: true, + }, + }, + features: {}, + name: i18n.translate('searchConnectors.nativeConnectors.slack.name', { + defaultMessage: 'Slack', + }), + serviceType: 'slack', + }, + zoom: { + configuration: { + account_id: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.zoom.accountId.label', { + defaultMessage: 'Account ID', + }), + options: [], + order: 1, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + client_id: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.zoom.clientId.label', { + defaultMessage: 'Client ID', + }), + options: [], + order: 2, + required: true, + sensitive: false, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + client_secret: { + default_value: null, + depends_on: [], + display: DisplayType.TEXTBOX, + label: i18n.translate('searchConnectors.nativeConnectors.zoom.clientSecret.label', { + defaultMessage: 'Client secret', + }), + options: [], + order: 3, + required: true, + sensitive: true, + tooltip: null, + type: FieldType.STRING, + ui_restrictions: [], + validations: [], + value: '', + }, + fetch_past_meeting_details: { + default_value: null, + depends_on: [], + display: DisplayType.TOGGLE, + label: i18n.translate( + 'searchConnectors.nativeConnectors.zoom.fetchPastMeetingDetails.label', + { + defaultMessage: 'Fetch past meeting details', + } + ), + options: [], + order: 4, + required: true, + sensitive: false, + tooltip: i18n.translate( + 'searchConnectors.nativeConnectors.zoom.fetchPastMeetingDetails.tooltip', + { + defaultMessage: + 'Enable this option to fetch past past meeting details. This setting can increase sync time.', + } + ), + type: FieldType.BOOLEAN, + ui_restrictions: [], + validations: [], + value: false, + }, + recording_age: { + default_value: null, + depends_on: [], + display: DisplayType.NUMERIC, + label: i18n.translate('searchConnectors.nativeConnectors.zoom.recordingAge.label', { + defaultMessage: 'Recording Age Limit (Months)', + }), + options: [], + order: 5, + required: true, + sensitive: false, + tooltip: i18n.translate('searchConnectors.nativeConnectors.zoom.recordingAge.tooltip', { + defaultMessage: + 'How far back in time to request recordings from zoom. Recordings older than this will not be indexed.', + }), + type: FieldType.INTEGER, + ui_restrictions: [], + validations: [ + { + type: 'greater_than', + constraint: -1, + }, + ], + value: '', + }, + use_text_extraction_service: { + default_value: null, + depends_on: [], + display: DisplayType.TOGGLE, + label: USE_TEXT_EXTRACTION_SERVICE_LABEL, + options: [], + order: 6, + required: true, + sensitive: false, + tooltip: USE_TEXT_EXTRACTION_SERVICE_TOOLTIP, + type: FieldType.BOOLEAN, + ui_restrictions: ['advanced'], + validations: [], + value: false, + }, + }, + features: {}, + name: i18n.translate('searchConnectors.nativeConnectors.zoom.name', { + defaultMessage: 'Zoom', + }), + serviceType: 'zoom', + }, }; diff --git a/test/api_integration/apis/custom_integration/integrations.ts b/test/api_integration/apis/custom_integration/integrations.ts index a924b416f30c8..13ea5a8dbe68a 100644 --- a/test/api_integration/apis/custom_integration/integrations.ts +++ b/test/api_integration/apis/custom_integration/integrations.ts @@ -22,7 +22,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.body).to.be.an('array'); - expect(resp.body.length).to.be(49); + expect(resp.body.length).to.be(51); // Test for sample data card expect(resp.body.findIndex((c: { id: string }) => c.id === 'sample_data_all')).to.be.above( diff --git a/x-pack/plugins/search_connectors/common/connectors.ts b/x-pack/plugins/search_connectors/common/connectors.ts index 9ffb1ee82254a..dd96c11487279 100644 --- a/x-pack/plugins/search_connectors/common/connectors.ts +++ b/x-pack/plugins/search_connectors/common/connectors.ts @@ -220,6 +220,24 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }), serviceType: 'google_drive', }, + { + categories: ['enterprise_search', 'elastic_stack', 'custom', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectorsPlugin.content.nativeConnectors.graphQL.description', + { + defaultMessage: 'Search over your content with GraphQL.', + } + ), + iconPath: 'graphql.svg', + isBeta: false, + isNative: false, + keywords: ['graphql', 'connector'], + name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.graphQL.name', { + defaultMessage: 'GraphQL', + }), + serviceType: 'graphql', + isTechPreview: true, + }, { categories: [ 'enterprise_search', @@ -317,7 +335,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ ), iconPath: 'notion.svg', isBeta: true, - isNative: false, + isNative: true, keywords: ['notion', 'connector'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.notion.name', { defaultMessage: 'Notion', @@ -452,7 +470,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ } ), iconPath: 'gmail.svg', - isBeta: true, + isBeta: false, isNative: true, keywords: ['gmail', 'connector'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.gmail.name', { @@ -460,6 +478,27 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }), serviceType: 'gmail', }, + { + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + description: i18n.translate( + 'searchConnectorsPlugin.content.nativeConnectors.openTextDocumentum.description', + { + defaultMessage: 'Search over your content on OpenText Documentum.', + } + ), + iconPath: 'connector.svg', + isBeta: false, + isNative: false, + isTechPreview: true, + keywords: ['opentext', 'documentum', 'connector'], + name: i18n.translate( + 'searchConnectorsPlugin.content.nativeConnectors.openTextDocumentum.name', + { + defaultMessage: 'OpenText Documentum', + } + ), + serviceType: 'opentext_documentum', + }, { categories: [ 'enterprise_search', @@ -476,7 +515,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ } ), iconPath: 'oracle.svg', - isBeta: true, + isBeta: false, isNative: true, keywords: ['oracle', 'sql', 'database', 'connector'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.oracle.name', { @@ -538,7 +577,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], iconPath: 'slack.svg', isBeta: false, - isNative: false, + isNative: true, isTechPreview: true, keywords: ['slack', 'connector'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.slack.name', { @@ -578,7 +617,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }), iconPath: 'box.svg', isBeta: false, - isNative: false, + isNative: true, isTechPreview: true, keywords: ['cloud', 'box'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.box.name', { @@ -602,7 +641,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ 'outlook', ], iconPath: 'outlook.svg', - isBeta: true, + isBeta: false, isNative: true, keywords: ['outlook', 'connector'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.outlook.name', { @@ -627,13 +666,13 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ ), iconPath: 'teams.svg', isBeta: false, - isNative: false, + isNative: true, isTechPreview: true, keywords: ['teams', 'connector'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.teams.name', { defaultMessage: 'Teams', }), - serviceType: 'teams', + serviceType: 'microsoft_teams', }, { categories: [ @@ -652,7 +691,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ ), iconPath: 'zoom.svg', isBeta: false, - isNative: false, + isNative: true, isTechPreview: true, keywords: ['zoom', 'connector'], name: i18n.translate('searchConnectorsPlugin.content.nativeConnectors.zoom.name', { diff --git a/x-pack/plugins/search_connectors/public/assets/icons/graphql.svg b/x-pack/plugins/search_connectors/public/assets/icons/graphql.svg new file mode 100644 index 0000000000000..99b540ae7b5a9 --- /dev/null +++ b/x-pack/plugins/search_connectors/public/assets/icons/graphql.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" fill="none" viewBox="0 0 64 64"> + <path fill="#E10098" fill-rule="evenodd" d="m32.002 4.5 23.815 13.75v27.5L32.002 59.5 8.186 45.75v-27.5L32.002 4.5ZM10.858 19.793v20.2l17.493-30.3-17.493 10.1ZM32.002 8.715 11.836 43.642h40.33L32.003 8.715Zm17.493 37.6H14.509l17.493 10.1 17.493-10.1Zm3.65-6.323L35.652 9.693l17.493 10.1v20.2Z" clip-rule="evenodd"/> + <path fill="#E10098" d="M32.002 11.671a5.628 5.628 0 1 0 0-11.256 5.628 5.628 0 0 0 0 11.256ZM54.48 24.65a5.628 5.628 0 1 0 0-11.256 5.628 5.628 0 0 0 0 11.255Zm0 25.956a5.628 5.628 0 1 0 0-11.256 5.628 5.628 0 0 0 0 11.256ZM32.002 63.585a5.628 5.628 0 1 0 0-11.256 5.628 5.628 0 0 0 0 11.256ZM9.519 50.606a5.628 5.628 0 1 0 0-11.256 5.628 5.628 0 0 0 0 11.256Zm0-25.956a5.628 5.628 0 1 0 0-11.256 5.628 5.628 0 0 0 0 11.255Z"/> +</svg> diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index d466b6de05150..38d5b7847a626 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -5619,7 +5619,6 @@ "searchConnectors.nativeConnectors.databaseLabel": "Base de données", "searchConnectors.nativeConnectors.dropbox.name": "Dropbox", "searchConnectors.nativeConnectors.enableDLS.label": "Activer la sécurité au niveau du document", - "searchConnectors.nativeConnectors.enableDLS.tooltip": "La sécurité au niveau du document préserve dans Elasticsearch les identités et permissions paramétrées dans Google Drive. Vous pouvez ainsi restreindre et personnaliser l'accès en lecture des utilisateurs et des groupes pour les documents dans cet index. La synchronisation de contrôle d'accès garantit que ces métadonnées sont correctement actualisées dans vos documents Elasticsearch.", "searchConnectors.nativeConnectors.enableSSL.label": "Activer SSL", "searchConnectors.nativeConnectors.gdrive.label": "Compte de service JSON Google Drive", "searchConnectors.nativeConnectors.gdrive.maxHTTPRequest.label": "Requêtes HTTP simultanées maximales", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a2b7a4293ffc7..7fe6ca3a6fdf5 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -5612,7 +5612,6 @@ "searchConnectors.nativeConnectors.databaseLabel": "データベース", "searchConnectors.nativeConnectors.dropbox.name": "Dropbox", "searchConnectors.nativeConnectors.enableDLS.label": "ドキュメントレベルのセキュリティを有効化", - "searchConnectors.nativeConnectors.enableDLS.tooltip": "ドキュメントレベルのセキュリティにより、Google Driveで設定されたIDと権限がElasticsearchでも維持されます。これにより、このインデックス内のドキュメントに対するユーザーやグループの読み取りアクセスを制限し、パーソナライズすることができます。アクセス制御の同期により、Elasticsearchドキュメント内のメタデータは常に最新の状態に保たれます。", "searchConnectors.nativeConnectors.enableSSL.label": "SSLを有効にする", "searchConnectors.nativeConnectors.gdrive.label": "Google DriveサービスアカウントJSON", "searchConnectors.nativeConnectors.gdrive.maxHTTPRequest.label": "最大同時HTTPリクエスト数", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 80c2ea8e3fe6c..d57e2b983cd87 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -5623,7 +5623,6 @@ "searchConnectors.nativeConnectors.databaseLabel": "数据库", "searchConnectors.nativeConnectors.dropbox.name": "Dropbox", "searchConnectors.nativeConnectors.enableDLS.label": "启用文档级别安全性", - "searchConnectors.nativeConnectors.enableDLS.tooltip": "文档级别安全性确保在 Elasticsearch 中维护在 Google 云端硬盘中设置的身份和权限。这样,您就可以限制用户和组对此索引中的文档具有的读取访问权限并对其进行个性化。访问控制同步将确保此元数据在 Elasticsearch 文档中保持最新。", "searchConnectors.nativeConnectors.enableSSL.label": "启用 SSL", "searchConnectors.nativeConnectors.gdrive.label": "Google 云端硬盘服务帐户 JSON", "searchConnectors.nativeConnectors.gdrive.maxHTTPRequest.label": "最大并发 HTTP 请求数", From 060d99bd1bf5fc53c9c712d3baebd278c27929b8 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet <pierre.gayvallet@elastic.co> Date: Wed, 24 Apr 2024 13:31:06 +0200 Subject: [PATCH 113/183] Use permanent cache for translation files on production (#181377) ## Summary Fix https://github.com/elastic/kibana/issues/83409 Use a permanent cache (`public, max-age=365d, immutable`) for translation files when in production (`dist`), similar to what we're doing for static assets. Translation files cache busting is a little tricky, because it doesn't only depend on the version (enabling or disabling a custom plugin can change the translations while not changing the build hash), so we're using a custom hash generated from the content of the current translation file (which was already used to generate the `etag` header previously). --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../i18n/core-i18n-server-internal/index.ts | 2 +- .../src/i18n_service.test.ts | 11 ++- .../src/i18n_service.ts | 36 +++++-- .../core-i18n-server-internal/src/index.ts | 1 + .../src/routes/index.ts | 14 ++- .../src/routes/translations.test.ts | 22 ++++- .../src/routes/translations.ts | 99 ++++++++++++------- .../src/i18n_service.mock.ts | 15 ++- .../core/i18n/core-i18n-server/src/types.ts | 5 + .../rendering_service.test.ts.snap | 32 +++--- .../src/rendering_service.tsx | 19 ++-- .../src/test_helpers/params.ts | 3 + .../src/types.ts | 4 + .../tsconfig.json | 3 + .../core-root-server-internal/src/server.ts | 9 +- .../api_integration/apis/core/translations.ts | 7 +- .../server_integration/http/platform/cache.ts | 2 +- .../test_suites/common/core/translations.ts | 7 +- 18 files changed, 209 insertions(+), 82 deletions(-) diff --git a/packages/core/i18n/core-i18n-server-internal/index.ts b/packages/core/i18n/core-i18n-server-internal/index.ts index dbb51964c10e5..e4709a8cd7b83 100644 --- a/packages/core/i18n/core-i18n-server-internal/index.ts +++ b/packages/core/i18n/core-i18n-server-internal/index.ts @@ -6,5 +6,5 @@ * Side Public License, v 1. */ -export type { I18nConfigType } from './src'; +export type { I18nConfigType, InternalI18nServicePreboot } from './src'; export { config, I18nService } from './src'; diff --git a/packages/core/i18n/core-i18n-server-internal/src/i18n_service.test.ts b/packages/core/i18n/core-i18n-server-internal/src/i18n_service.test.ts index 88ac8daac65e7..fe4129d8c5995 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/i18n_service.test.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/i18n_service.test.ts @@ -37,12 +37,13 @@ describe('I18nService', () => { let configService: ReturnType<typeof configServiceMock.create>; let httpPreboot: ReturnType<typeof httpServiceMock.createInternalPrebootContract>; let httpSetup: ReturnType<typeof httpServiceMock.createInternalSetupContract>; + let coreContext: ReturnType<typeof mockCoreContext.create>; beforeEach(() => { jest.clearAllMocks(); configService = getConfigService(); - const coreContext = mockCoreContext.create({ configService }); + coreContext = mockCoreContext.create({ configService }); service = new I18nService(coreContext); httpPreboot = httpServiceMock.createInternalPrebootContract(); @@ -73,13 +74,15 @@ describe('I18nService', () => { expect(initTranslationsMock).toHaveBeenCalledWith('en', translationFiles); }); - it('calls `registerRoutesMock` with the correct parameters', async () => { + it('calls `registerRoutes` with the correct parameters', async () => { await service.preboot({ pluginPaths: [], http: httpPreboot }); expect(registerRoutesMock).toHaveBeenCalledTimes(1); expect(registerRoutesMock).toHaveBeenCalledWith({ locale: 'en', router: expect.any(Object), + isDist: coreContext.env.packageInfo.dist, + translationHash: expect.any(String), }); }); }); @@ -114,13 +117,15 @@ describe('I18nService', () => { expect(initTranslationsMock).toHaveBeenCalledWith('en', translationFiles); }); - it('calls `registerRoutesMock` with the correct parameters', async () => { + it('calls `registerRoutes` with the correct parameters', async () => { await service.setup({ pluginPaths: [], http: httpSetup }); expect(registerRoutesMock).toHaveBeenCalledTimes(1); expect(registerRoutesMock).toHaveBeenCalledWith({ locale: 'en', router: expect.any(Object), + isDist: coreContext.env.packageInfo.dist, + translationHash: expect.any(String), }); }); diff --git a/packages/core/i18n/core-i18n-server-internal/src/i18n_service.ts b/packages/core/i18n/core-i18n-server-internal/src/i18n_service.ts index 7f48256479923..d7ff9d903680c 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/i18n_service.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/i18n_service.ts @@ -7,6 +7,8 @@ */ import { firstValueFrom } from 'rxjs'; +import { createHash } from 'crypto'; +import { i18n, Translation } from '@kbn/i18n'; import type { Logger } from '@kbn/logging'; import type { IConfigService } from '@kbn/config'; import type { CoreContext } from '@kbn/core-base-server-internal'; @@ -30,29 +32,42 @@ export interface SetupDeps { pluginPaths: string[]; } +export interface InternalI18nServicePreboot { + getTranslationHash(): string; +} + export class I18nService { private readonly log: Logger; private readonly configService: IConfigService; - constructor(coreContext: CoreContext) { + constructor(private readonly coreContext: CoreContext) { this.log = coreContext.logger.get('i18n'); this.configService = coreContext.configService; } - public async preboot({ pluginPaths, http }: PrebootDeps) { - const { locale } = await this.initTranslations(pluginPaths); - http.registerRoutes('', (router) => registerRoutes({ router, locale })); + public async preboot({ pluginPaths, http }: PrebootDeps): Promise<InternalI18nServicePreboot> { + const { locale, translationHash } = await this.initTranslations(pluginPaths); + const { dist: isDist } = this.coreContext.env.packageInfo; + http.registerRoutes('', (router) => + registerRoutes({ router, locale, isDist, translationHash }) + ); + + return { + getTranslationHash: () => translationHash, + }; } public async setup({ pluginPaths, http }: SetupDeps): Promise<I18nServiceSetup> { - const { locale, translationFiles } = await this.initTranslations(pluginPaths); + const { locale, translationFiles, translationHash } = await this.initTranslations(pluginPaths); const router = http.createRouter(''); - registerRoutes({ router, locale }); + const { dist: isDist } = this.coreContext.env.packageInfo; + registerRoutes({ router, locale, isDist, translationHash }); return { getLocale: () => locale, getTranslationFiles: () => translationFiles, + getTranslationHash: () => translationHash, }; } @@ -69,6 +84,13 @@ export class I18nService { this.log.debug(`Using translation files: [${translationFiles.join(', ')}]`); await initTranslations(locale, translationFiles); - return { locale, translationFiles }; + const translationHash = getTranslationHash(i18n.getTranslation()); + + return { locale, translationFiles, translationHash }; } } + +const getTranslationHash = (translations: Translation) => { + const serialized = JSON.stringify(translations); + return createHash('sha256').update(serialized).digest('hex').slice(0, 12); +}; diff --git a/packages/core/i18n/core-i18n-server-internal/src/index.ts b/packages/core/i18n/core-i18n-server-internal/src/index.ts index a87d88ec28dd7..9ef1fe5c96291 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/index.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/index.ts @@ -9,3 +9,4 @@ export { config } from './i18n_config'; export type { I18nConfigType } from './i18n_config'; export { I18nService } from './i18n_service'; +export type { InternalI18nServicePreboot } from './i18n_service'; diff --git a/packages/core/i18n/core-i18n-server-internal/src/routes/index.ts b/packages/core/i18n/core-i18n-server-internal/src/routes/index.ts index 09d49f2f23cab..64d3a21fa81c5 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/routes/index.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/routes/index.ts @@ -9,6 +9,16 @@ import type { IRouter } from '@kbn/core-http-server'; import { registerTranslationsRoute } from './translations'; -export const registerRoutes = ({ router, locale }: { router: IRouter; locale: string }) => { - registerTranslationsRoute(router, locale); +export const registerRoutes = ({ + router, + locale, + isDist, + translationHash, +}: { + router: IRouter; + locale: string; + isDist: boolean; + translationHash: string; +}) => { + registerTranslationsRoute({ router, locale, isDist, translationHash }); }; diff --git a/packages/core/i18n/core-i18n-server-internal/src/routes/translations.test.ts b/packages/core/i18n/core-i18n-server-internal/src/routes/translations.test.ts index 9d9f19c381577..a0a04b16033ac 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/routes/translations.test.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/routes/translations.test.ts @@ -12,11 +12,27 @@ import { registerTranslationsRoute } from './translations'; describe('registerTranslationsRoute', () => { test('registers route with expected options', () => { const router = mockRouter.create(); - registerTranslationsRoute(router, 'en'); - expect(router.get).toHaveBeenCalledTimes(1); + registerTranslationsRoute({ + router, + locale: 'en', + isDist: true, + translationHash: 'XXXX', + }); + expect(router.get).toHaveBeenCalledTimes(2); expect(router.get).toHaveBeenNthCalledWith( 1, - expect.objectContaining({ options: { access: 'public', authRequired: false } }), + expect.objectContaining({ + path: '/translations/{locale}.json', + options: { access: 'public', authRequired: false }, + }), + expect.any(Function) + ); + expect(router.get).toHaveBeenNthCalledWith( + 2, + expect.objectContaining({ + path: '/translations/XXXX/{locale}.json', + options: { access: 'public', authRequired: false }, + }), expect.any(Function) ); }); diff --git a/packages/core/i18n/core-i18n-server-internal/src/routes/translations.ts b/packages/core/i18n/core-i18n-server-internal/src/routes/translations.ts index 49a6779c7d3b2..369bc0c6c585f 100644 --- a/packages/core/i18n/core-i18n-server-internal/src/routes/translations.ts +++ b/packages/core/i18n/core-i18n-server-internal/src/routes/translations.ts @@ -6,54 +6,81 @@ * Side Public License, v 1. */ -import { createHash } from 'crypto'; import { i18n } from '@kbn/i18n'; import { schema } from '@kbn/config-schema'; import type { IRouter } from '@kbn/core-http-server'; +const MINUTE = 60; +const HOUR = 60 * MINUTE; +const DAY = 24 * HOUR; + interface TranslationCache { translations: string; hash: string; } -export const registerTranslationsRoute = (router: IRouter, locale: string) => { +export const registerTranslationsRoute = ({ + router, + locale, + translationHash, + isDist, +}: { + router: IRouter; + locale: string; + translationHash: string; + isDist: boolean; +}) => { let translationCache: TranslationCache; - router.get( - { - path: '/translations/{locale}.json', - validate: { - params: schema.object({ - locale: schema.string(), - }), - }, - options: { - access: 'public', - authRequired: false, - }, - }, - (ctx, req, res) => { - if (req.params.locale.toLowerCase() !== locale.toLowerCase()) { - return res.notFound({ - body: `Unknown locale: ${req.params.locale}`, - }); - } - if (!translationCache) { - const translations = JSON.stringify(i18n.getTranslation()); - const hash = createHash('sha1').update(translations).digest('hex'); - translationCache = { - translations, - hash, - }; - } - return res.ok({ - headers: { - 'content-type': 'application/json', - 'cache-control': 'must-revalidate', - etag: translationCache.hash, + ['/translations/{locale}.json', `/translations/${translationHash}/{locale}.json`].forEach( + (routePath) => { + router.get( + { + path: routePath, + validate: { + params: schema.object({ + locale: schema.string(), + }), + }, + options: { + access: 'public', + authRequired: false, + }, }, - body: translationCache.translations, - }); + (ctx, req, res) => { + if (req.params.locale.toLowerCase() !== locale.toLowerCase()) { + return res.notFound({ + body: `Unknown locale: ${req.params.locale}`, + }); + } + if (!translationCache) { + const translations = JSON.stringify(i18n.getTranslation()); + translationCache = { + translations, + hash: translationHash, + }; + } + + let headers: Record<string, string>; + if (isDist) { + headers = { + 'content-type': 'application/json', + 'cache-control': `public, max-age=${365 * DAY}, immutable`, + }; + } else { + headers = { + 'content-type': 'application/json', + 'cache-control': 'must-revalidate', + etag: translationCache.hash, + }; + } + + return res.ok({ + headers, + body: translationCache.translations, + }); + } + ); } ); }; diff --git a/packages/core/i18n/core-i18n-server-mocks/src/i18n_service.mock.ts b/packages/core/i18n/core-i18n-server-mocks/src/i18n_service.mock.ts index 41c6dadea85b9..bc954a93089b7 100644 --- a/packages/core/i18n/core-i18n-server-mocks/src/i18n_service.mock.ts +++ b/packages/core/i18n/core-i18n-server-mocks/src/i18n_service.mock.ts @@ -7,17 +7,29 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import type { I18nService } from '@kbn/core-i18n-server-internal'; +import type { I18nService, InternalI18nServicePreboot } from '@kbn/core-i18n-server-internal'; import type { I18nServiceSetup } from '@kbn/core-i18n-server'; const createSetupContractMock = () => { const mock: jest.Mocked<I18nServiceSetup> = { getLocale: jest.fn(), getTranslationFiles: jest.fn(), + getTranslationHash: jest.fn(), }; mock.getLocale.mockReturnValue('en'); mock.getTranslationFiles.mockReturnValue([]); + mock.getTranslationHash.mockReturnValue('MOCK_HASH'); + + return mock; +}; + +const createInternalPrebootMock = () => { + const mock: jest.Mocked<InternalI18nServicePreboot> = { + getTranslationHash: jest.fn(), + }; + + mock.getTranslationHash.mockReturnValue('MOCK_HASH'); return mock; }; @@ -38,4 +50,5 @@ const createMock = () => { export const i18nServiceMock = { create: createMock, createSetupContract: createSetupContractMock, + createInternalPrebootContract: createInternalPrebootMock, }; diff --git a/packages/core/i18n/core-i18n-server/src/types.ts b/packages/core/i18n/core-i18n-server/src/types.ts index 9c640612c9034..06b72d76c46fe 100644 --- a/packages/core/i18n/core-i18n-server/src/types.ts +++ b/packages/core/i18n/core-i18n-server/src/types.ts @@ -19,4 +19,9 @@ export interface I18nServiceSetup { * Return the absolute paths to translation files currently in use. */ getTranslationFiles(): string[]; + + /** + * Returns the hash generated from the current translations. + */ + getTranslationHash(): string; } diff --git a/packages/core/rendering/core-rendering-server-internal/src/__snapshots__/rendering_service.test.ts.snap b/packages/core/rendering/core-rendering-server-internal/src/__snapshots__/rendering_service.test.ts.snap index 250073318a3ac..69f534cf837b4 100644 --- a/packages/core/rendering/core-rendering-server-internal/src/__snapshots__/rendering_service.test.ts.snap +++ b/packages/core/rendering/core-rendering-server-internal/src/__snapshots__/rendering_service.test.ts.snap @@ -37,7 +37,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -117,7 +117,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -193,7 +193,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -273,7 +273,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -349,7 +349,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -425,7 +425,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -505,7 +505,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -581,7 +581,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -662,7 +662,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -742,7 +742,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -823,7 +823,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -908,7 +908,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -984,7 +984,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -1065,7 +1065,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -1150,7 +1150,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { @@ -1231,7 +1231,7 @@ Object { ], }, "i18n": Object { - "translationsUrl": "/mock-server-basepath/translations/en.json", + "translationsUrl": "/mock-server-basepath/translations/MOCK_HASH/en.json", }, "legacyMetadata": Object { "globalUiSettings": Object { diff --git a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx index 5b8f86a96697b..cf97bad34fc60 100644 --- a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx +++ b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { renderToStaticMarkup } from 'react-dom/server'; import { firstValueFrom, of } from 'rxjs'; import { catchError, take, timeout } from 'rxjs'; -import { i18n } from '@kbn/i18n'; +import { i18n as i18nLib } from '@kbn/i18n'; import type { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import type { CoreContext } from '@kbn/core-base-server-internal'; @@ -61,6 +61,7 @@ export class RenderingService { public async preboot({ http, uiPlugins, + i18n, }: RenderingPrebootDeps): Promise<InternalRenderingServicePreboot> { http.registerRoutes<InternalRenderingRequestHandlerContext>('', (router) => { registerBootstrapRoute({ @@ -75,7 +76,7 @@ export class RenderingService { }); return { - render: this.render.bind(this, { http, uiPlugins }), + render: this.render.bind(this, { http, uiPlugins, i18n }), }; } @@ -86,6 +87,7 @@ export class RenderingService { uiPlugins, customBranding, userSettings, + i18n, }: RenderingSetupDeps): Promise<InternalRenderingServiceSetup> { registerBootstrapRoute({ router: http.createRouter<InternalRenderingRequestHandlerContext>(''), @@ -106,6 +108,7 @@ export class RenderingService { status, customBranding, userSettings, + i18n, }), }; } @@ -119,7 +122,8 @@ export class RenderingService { }, { isAnonymousPage = false, vars, includeExposedConfigKeys }: IRenderOptions = {} ) { - const { elasticsearch, http, uiPlugins, status, customBranding, userSettings } = renderOptions; + const { elasticsearch, http, uiPlugins, status, customBranding, userSettings, i18n } = + renderOptions; const env = { mode: this.coreContext.env.mode, @@ -201,14 +205,17 @@ export class RenderingService { const loggingConfig = await getBrowserLoggingConfig(this.coreContext.configService); + const translationHash = i18n.getTranslationHash(); + const translationsUrl = `${serverBasePath}/translations/${translationHash}/${i18nLib.getLocale()}.json`; + const filteredPlugins = filterUiPlugins({ uiPlugins, isAnonymousPage }); const bootstrapScript = isAnonymousPage ? 'bootstrap-anonymous.js' : 'bootstrap.js'; const metadata: RenderingMetadata = { strictCsp: http.csp.strict, uiPublicUrl: `${staticAssetsHrefBase}/ui`, bootstrapScriptUrl: `${basePath}/${bootstrapScript}`, - i18n: i18n.translate, - locale: i18n.getLocale(), + i18n: i18nLib.translate, + locale: i18nLib.getLocale(), themeVersion, darkMode, stylesheetPaths: commonStylesheetPaths, @@ -233,7 +240,7 @@ export class RenderingService { anonymousStatusPage: status?.isStatusPageAnonymous() ?? false, i18n: { // TODO: Make this load as part of static assets! - translationsUrl: `${basePath}/translations/${i18n.getLocale()}.json`, + translationsUrl, }, theme: { darkMode, diff --git a/packages/core/rendering/core-rendering-server-internal/src/test_helpers/params.ts b/packages/core/rendering/core-rendering-server-internal/src/test_helpers/params.ts index 42c48d9e0bd21..d7b44157f4a6d 100644 --- a/packages/core/rendering/core-rendering-server-internal/src/test_helpers/params.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/test_helpers/params.ts @@ -12,6 +12,7 @@ import { elasticsearchServiceMock } from '@kbn/core-elasticsearch-server-mocks'; import { statusServiceMock } from '@kbn/core-status-server-mocks'; import { customBrandingServiceMock } from '@kbn/core-custom-branding-server-mocks'; import { userSettingsServiceMock } from '@kbn/core-user-settings-server-mocks'; +import { i18nServiceMock } from '@kbn/core-i18n-server-mocks'; const context = mockCoreContext.create(); const httpPreboot = httpServiceMock.createInternalPrebootContract(); @@ -33,6 +34,7 @@ export const mockRenderingServiceParams = context; export const mockRenderingPrebootDeps = { http: httpPreboot, uiPlugins: createUiPlugins(), + i18n: i18nServiceMock.createInternalPrebootContract(), }; export const mockRenderingSetupDeps = { elasticsearch, @@ -41,4 +43,5 @@ export const mockRenderingSetupDeps = { customBranding, status, userSettings, + i18n: i18nServiceMock.createSetupContract(), }; diff --git a/packages/core/rendering/core-rendering-server-internal/src/types.ts b/packages/core/rendering/core-rendering-server-internal/src/types.ts index e96353816e199..357f17182b2d5 100644 --- a/packages/core/rendering/core-rendering-server-internal/src/types.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/types.ts @@ -22,6 +22,8 @@ import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import type { InternalCustomBrandingSetup } from '@kbn/core-custom-branding-server-internal'; import type { CustomBranding } from '@kbn/core-custom-branding-common'; import type { InternalUserSettingsServiceSetup } from '@kbn/core-user-settings-server-internal'; +import type { I18nServiceSetup } from '@kbn/core-i18n-server'; +import type { InternalI18nServicePreboot } from '@kbn/core-i18n-server-internal'; /** @internal */ export interface RenderingMetadata { @@ -42,6 +44,7 @@ export interface RenderingMetadata { export interface RenderingPrebootDeps { http: InternalHttpServicePreboot; uiPlugins: UiPlugins; + i18n: InternalI18nServicePreboot; } /** @internal */ @@ -52,6 +55,7 @@ export interface RenderingSetupDeps { uiPlugins: UiPlugins; customBranding: InternalCustomBrandingSetup; userSettings: InternalUserSettingsServiceSetup; + i18n: I18nServiceSetup; } /** @internal */ diff --git a/packages/core/rendering/core-rendering-server-internal/tsconfig.json b/packages/core/rendering/core-rendering-server-internal/tsconfig.json index ba9dfdd87f307..e306dca24059c 100644 --- a/packages/core/rendering/core-rendering-server-internal/tsconfig.json +++ b/packages/core/rendering/core-rendering-server-internal/tsconfig.json @@ -41,6 +41,9 @@ "@kbn/core-user-settings-server-internal", "@kbn/core-logging-common-internal", "@kbn/core-logging-server-internal", + "@kbn/core-i18n-server", + "@kbn/core-i18n-server-internal", + "@kbn/core-i18n-server-mocks", ], "exclude": [ "target/**/*", diff --git a/packages/core/root/core-root-server-internal/src/server.ts b/packages/core/root/core-root-server-internal/src/server.ts index 1439fa19cb64d..fc34e151e657f 100644 --- a/packages/core/root/core-root-server-internal/src/server.ts +++ b/packages/core/root/core-root-server-internal/src/server.ts @@ -195,7 +195,7 @@ export class Server { const httpPreboot = await this.http.preboot({ context: contextServicePreboot }); // setup i18n prior to any other service, to have translations ready - await this.i18n.preboot({ http: httpPreboot, pluginPaths }); + const i18nPreboot = await this.i18n.preboot({ http: httpPreboot, pluginPaths }); this.capabilities.preboot({ http: httpPreboot }); @@ -203,7 +203,11 @@ export class Server { await this.status.preboot({ http: httpPreboot }); - const renderingPreboot = await this.rendering.preboot({ http: httpPreboot, uiPlugins }); + const renderingPreboot = await this.rendering.preboot({ + http: httpPreboot, + uiPlugins, + i18n: i18nPreboot, + }); const httpResourcesPreboot = this.httpResources.preboot({ http: httpPreboot, @@ -328,6 +332,7 @@ export class Server { uiPlugins, customBranding: customBrandingSetup, userSettings: userSettingsServiceSetup, + i18n: i18nServiceSetup, }); const httpResourcesSetup = this.httpResources.setup({ diff --git a/test/api_integration/apis/core/translations.ts b/test/api_integration/apis/core/translations.ts index 9e492556fdd96..c29cdbf28da77 100644 --- a/test/api_integration/apis/core/translations.ts +++ b/test/api_integration/apis/core/translations.ts @@ -18,8 +18,11 @@ export default function ({ getService }: FtrProviderContext) { expect(response.body.locale).to.eql('en'); expect(response.header).to.have.property('content-type', 'application/json; charset=utf-8'); - expect(response.header).to.have.property('cache-control', 'must-revalidate'); - expect(response.header).to.have.property('etag'); + expect(response.header).to.have.property( + 'cache-control', + 'public, max-age=31536000, immutable' + ); + expect(response.header).not.to.have.property('etag'); }); }); diff --git a/test/server_integration/http/platform/cache.ts b/test/server_integration/http/platform/cache.ts index 6e1cd8ab39db0..80d0bbfebd5bd 100644 --- a/test/server_integration/http/platform/cache.ts +++ b/test/server_integration/http/platform/cache.ts @@ -22,7 +22,7 @@ export default function ({ getService }: FtrProviderContext) { it('allows translation bundles to be cached', async () => { await supertest .get('/translations/en.json') - .expect('Cache-Control', 'must-revalidate') + .expect('Cache-Control', 'public, max-age=31536000, immutable') .expect(200); }); diff --git a/x-pack/test_serverless/api_integration/test_suites/common/core/translations.ts b/x-pack/test_serverless/api_integration/test_suites/common/core/translations.ts index 26b4302bf2c71..b982799f4a71b 100644 --- a/x-pack/test_serverless/api_integration/test_suites/common/core/translations.ts +++ b/x-pack/test_serverless/api_integration/test_suites/common/core/translations.ts @@ -17,8 +17,11 @@ export default function ({ getService }: FtrProviderContext) { expect(response.body.locale).to.eql('en'); expect(response.header).to.have.property('content-type', 'application/json; charset=utf-8'); - expect(response.header).to.have.property('cache-control', 'must-revalidate'); - expect(response.header).to.have.property('etag'); + expect(response.header).to.have.property( + 'cache-control', + 'public, max-age=31536000, immutable' + ); + expect(response.header).not.to.have.property('etag'); }); }); From 910e7f72523d0b015ec496aa967e76c61cf6c489 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:34:11 +0200 Subject: [PATCH 114/183] [Ent Search] Update Notebooks in console text (#181462) Closes https://github.com/elastic/search-docs-team/issues/100 - Update Introduction notebook to explain the what, how, and why of notebooks, clarify that available as preview (not actually runnable in our UI) currently, how to use in Colab and locally, link to Search Labs - Update notebook preview snippets to concise descriptions - Update link to search labs notebooks, update button text - General rewordings ## Before https://github.com/elastic/kibana/assets/32779855/a17d9b26-814b-4303-aac6-a8ef0a178ecf ## After https://github.com/elastic/kibana/assets/32779855/c8cfd685-c89b-4726-b89d-babcc7fbc3cf --- .../search_notebooks/common/constants.ts | 39 +++++++++++++++++-- .../components/search_labs_button_panel.tsx | 4 +- .../public/components/search_notebooks.tsx | 2 +- .../server/lib/notebook_catalog.ts | 12 +++--- 4 files changed, 44 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/search_notebooks/common/constants.ts b/x-pack/plugins/search_notebooks/common/constants.ts index 0a6a065751b82..46cc4b339003b 100644 --- a/x-pack/plugins/search_notebooks/common/constants.ts +++ b/x-pack/plugins/search_notebooks/common/constants.ts @@ -11,25 +11,56 @@ import { Notebook } from './types'; export const INTRODUCTION_NOTEBOOK: Notebook = { id: 'introduction', title: i18n.translate('xpack.searchNotebooks.introductionNotebook.title', { - defaultMessage: 'What are Jupyter Notebooks?', + defaultMessage: 'Jupyter notebooks', }), description: i18n.translate('xpack.searchNotebooks.introductionNotebook.description', { defaultMessage: - 'Jupyter Notebooks are an open-source document format for sharing interactive code embedded in narrative text.', + 'Learn all about Jupyter notebooks, how to preview them in the UI, and how to run them.', }), notebook: { cells: [ { cell_type: 'markdown', source: [ - '# What are Jupyter Notebooks\n', + '# What are Jupyter notebooks?\n', '\n', 'Jupyter Notebooks combine executable code and rich Markdown documentation in a single interactive document. Easy to run, edit and share, they enable collaboration in fields like data science, scientific computing, and machine learning.', + '\n', + '\n', + 'Notebooks are composed of cells, which can contain Markdown text like this, or Python code like the cell below.\n', ], }, { cell_type: 'code', - source: ['print("Hello world!!!")'], + source: ['print("Hello world!!!")\n'], + }, + { + cell_type: 'markdown', + source: [ + '\nNotebooks are a great way to test and prototype code, and share results with others. In our notebooks we use the official [Elasticsearch Python client](https://elasticsearch-py.readthedocs.io/en/latest/) to call the Elasticsearch APIs.', + ], + }, + { + cell_type: 'markdown', + source: [ + '## Elastic Jupyter notebooks\n', + '\n', + 'You can **preview** a number of our Jupyter notebooks right here in the UI. Check out the next section for how to **run** notebooks.\n', + '\nFind all of our available notebooks in the `elasticsearch-labs` [GitHub repository](https://github.com/elastic/elasticsearch-labs).', + '\n', + '## How to run notebooks\n', + '\n', + 'You can run notebooks in two ways:', + '\n', + '- **Run in Colab**: You can run all our notebooks in Google [Colab](https://colab.research.google.com), a free, zero configuration, in-browser notebook execution environment. Just click the `Open in Colab` button at the top of a notebook to test it in Colab.\n', + '- **Run locally**: You can also download the notebooks from the repository and run them locally using tools like [JupyterLab](https://jupyter.org/install).\n', + '\n', + 'ℹ️ Just make sure to copy your **Elasticsearch endpoint and API key** so the notebook can run against your deployment.\n', + '\n', + '## Learn more\n', + '\n', + 'Check out [Elastic Search Labs](https://www.elastic.co/search-labs) for all the latest advanced content for Elasticsearch users, including additional Python examples.', + ], }, ], }, diff --git a/x-pack/plugins/search_notebooks/public/components/search_labs_button_panel.tsx b/x-pack/plugins/search_notebooks/public/components/search_labs_button_panel.tsx index d0682aacd1b73..53f982e9dc371 100644 --- a/x-pack/plugins/search_notebooks/public/components/search_labs_button_panel.tsx +++ b/x-pack/plugins/search_notebooks/public/components/search_labs_button_panel.tsx @@ -13,7 +13,7 @@ export const SearchLabsButtonPanel = () => { <EuiPanel hasShadow={false}> <EuiFlexGroup justifyContent="center"> <EuiButton - href="https://github.com/elastic/elasticsearch-labs" + href="https://github.com/elastic/elasticsearch-labs/tree/main/notebooks" target="_blank" iconSide="right" iconType="popout" @@ -21,7 +21,7 @@ export const SearchLabsButtonPanel = () => { data-telemetry-id="console-notebooks-search-labs-btn" > {i18n.translate('xpack.searchNotebooks.searchLabsLink', { - defaultMessage: 'See more at Elastic Search Labs', + defaultMessage: 'Browse all our notebooks', })} </EuiButton> </EuiFlexGroup> diff --git a/x-pack/plugins/search_notebooks/public/components/search_notebooks.tsx b/x-pack/plugins/search_notebooks/public/components/search_notebooks.tsx index 312090de46755..127de94877c22 100644 --- a/x-pack/plugins/search_notebooks/public/components/search_notebooks.tsx +++ b/x-pack/plugins/search_notebooks/public/components/search_notebooks.tsx @@ -70,7 +70,7 @@ export const SearchNotebooks = () => { /> <TitlePanel> {i18n.translate('xpack.searchNotebooks.notebooksList.availableNotebooks.title', { - defaultMessage: 'Available Notebooks', + defaultMessage: 'Notebook previews', })} </TitlePanel> <NotebooksList diff --git a/x-pack/plugins/search_notebooks/server/lib/notebook_catalog.ts b/x-pack/plugins/search_notebooks/server/lib/notebook_catalog.ts index 6c3740e7f142e..1034e14b0bd7e 100644 --- a/x-pack/plugins/search_notebooks/server/lib/notebook_catalog.ts +++ b/x-pack/plugins/search_notebooks/server/lib/notebook_catalog.ts @@ -24,7 +24,7 @@ export const DEFAULT_NOTEBOOKS: NotebookCatalog = { }), description: i18n.translate('xpack.searchNotebooks.notebooksCatalog.quickStart.description', { defaultMessage: - "This interactive notebook will introduce you to some basic operations with Elasticsearch, using the official Elasticsearch Python client. You'll perform semantic search using Sentence Transformers for text embedding. Learn how to integrate traditional text-based search with semantic search, for a hybrid search system.", + 'Learn how to create a simple hybrid search system that combines semantic search and lexical (keyword) search.', }), }, { @@ -35,8 +35,7 @@ export const DEFAULT_NOTEBOOKS: NotebookCatalog = { description: i18n.translate( 'xpack.searchNotebooks.notebooksCatalog.keywordQueryFiltering.description', { - defaultMessage: - 'This interactive notebook will introduce you to the basic Elasticsearch queries, using the official Elasticsearch Python client. Before getting started on this section you should work through our quick start, as you will be using the same dataset.', + defaultMessage: 'Learn the basics of Elasticsearch queries and filters.', } ), }, @@ -49,7 +48,7 @@ export const DEFAULT_NOTEBOOKS: NotebookCatalog = { 'xpack.searchNotebooks.notebooksCatalog.hybridSearch.description', { defaultMessage: - 'This interactive notebook will use the reciprocal rank fusion algorithm to combine the results of BM25 and kNN semantic search.', + 'Learn how to use the reciprocal rank fusion algorithm to combine the results of BM25 and kNN semantic search.', } ), }, @@ -59,7 +58,8 @@ export const DEFAULT_NOTEBOOKS: NotebookCatalog = { defaultMessage: 'Semantic Search using ELSER v2 text expansion', }), description: i18n.translate('xpack.searchNotebooks.notebooksCatalog.elser.description', { - defaultMessage: 'Learn how to use ELSER for text expansion-powered semantic search.', + defaultMessage: + "Learn how to use ELSER, Elastic's retrieval model for text expansion-powered semantic search that works out of the box.", }), }, { @@ -71,7 +71,7 @@ export const DEFAULT_NOTEBOOKS: NotebookCatalog = { 'xpack.searchNotebooks.notebooksCatalog.multilingual.description', { defaultMessage: - "In this example we'll use a multilingual embedding model 'multilingual-e5-base' to perform search on a dataset of mixed language documents.", + 'Learn how to use a multilingual embedding model to search over a dataset of mixed language documents.', } ), }, From e2c39c93ac745c87ecba0c8354f0b14ed0d3e70b Mon Sep 17 00:00:00 2001 From: Antonio <antonio.coelho@elastic.co> Date: Wed, 24 Apr 2024 13:43:58 +0200 Subject: [PATCH 115/183] [Cases] Fix failing test: `useCreateCaseModal ` (#181386) Fixes #174205 ## Summary The failing test was rendering the opened modal and not doing anything with it. I removed that block and the execution time locally went from 200+ ms to around 4. --- .../components/use_create_case_modal/index.test.tsx | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx index fa7e0213166ee..ab5bd1bd10dfe 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx @@ -7,7 +7,6 @@ import React from 'react'; import { renderHook, act } from '@testing-library/react-hooks'; -import { render, act as reactAct } from '@testing-library/react'; import { useKibana } from '../../common/lib/kibana'; import type { UseCreateCaseModalProps, UseCreateCaseModalReturnedValues } from '.'; @@ -19,8 +18,7 @@ jest.mock('../../common/lib/kibana'); const useKibanaMock = useKibana as jest.Mocked<typeof useKibana>; const onCaseCreated = jest.fn(); -// FLAKY: https://github.com/elastic/kibana/issues/174205 -describe.skip('useCreateCaseModal', () => { +describe('useCreateCaseModal', () => { let navigateToApp: jest.Mock; beforeEach(() => { @@ -95,14 +93,6 @@ describe.skip('useCreateCaseModal', () => { act(() => { result.current.openModal(); - }); - - await reactAct(async () => { - const modal = result.current.modal; - render(<TestProviders>{modal}</TestProviders>); - }); - - act(() => { result.current.modal.props.onSuccess({ id: 'case-id' }); }); From 2bd49f5ae4816c75a87a371e58ca2b7ea73d4bd4 Mon Sep 17 00:00:00 2001 From: Dima Arnautov <dmitrii.arnautov@elastic.co> Date: Wed, 24 Apr 2024 13:55:03 +0200 Subject: [PATCH 116/183] [ML] AIOps: Fix query string for the metric chart (#181314) ## Summary Fixes https://github.com/elastic/kibana/issues/179814 Query string from the Unified Search query bar was applying to the change point agg request, but wasn't in sync with the query service to correctly render the chart preview. With the PR the query string is synchronized and metric charts are rendered correctly. ### Checklist - [ ] [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 --- .../change_point_detection_context.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx index eabfc277b7f9f..75f4820316e30 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx @@ -132,7 +132,7 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { const { uiSettings, data: { - query: { filterManager }, + query: { filterManager, queryString }, }, } = useAiopsAppContext(); @@ -241,11 +241,18 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { if (requestParamsFromUrl.filters) { filterManager.setFilters(requestParamsFromUrl.filters); } + if (requestParamsFromUrl.query) { + queryString.setQuery(requestParamsFromUrl.query); + } if (globalFilters) { filterManager?.addFilters(globalFilters); } + return () => { + filterManager?.removeAll(); + queryString.clearQuery(); + }; }, - [requestParamsFromUrl.filters, filterManager] + [requestParamsFromUrl.filters, requestParamsFromUrl.query, filterManager, queryString] ); const combinedQuery = useMemo(() => { From 923b10baafd81f76321a7ae1f5105c183418fac9 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet <pierre.gayvallet@elastic.co> Date: Wed, 24 Apr 2024 14:35:06 +0200 Subject: [PATCH 117/183] Fix `maps` plugin async route registration (#181518) ## Summary Async registration is bad, especially when promise rejections are not caught. The PR adapts the routes registration to be synchronous --- .../server/data_indexing/indexing_routes.ts | 5 ++-- x-pack/plugins/maps/server/mvt/mvt_routes.ts | 8 +++---- x-pack/plugins/maps/server/plugin.ts | 2 +- x-pack/plugins/maps/server/routes.ts | 24 ++++++++++++++----- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts b/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts index 94fbb94165514..e7cb10427a297 100644 --- a/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts +++ b/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts @@ -26,11 +26,11 @@ import { getMatchingIndexes } from './get_indexes_matching_pattern'; export function initIndexingRoutes({ router, logger, - dataPlugin, + getDataPlugin, }: { router: IRouter<DataRequestHandlerContext>; logger: Logger; - dataPlugin: DataPluginStart; + getDataPlugin: () => Promise<DataPluginStart>; securityPlugin?: SecurityPluginStart; }) { router.versioned @@ -58,6 +58,7 @@ export function initIndexingRoutes({ async (context, request, response) => { const coreContext = await context.core; const { index, mappings } = request.body; + const dataPlugin = await getDataPlugin(); const indexPatternsService = await dataPlugin.indexPatterns.dataViewsServiceFactory( coreContext.savedObjects.client, coreContext.elasticsearch.client.asCurrentUser, diff --git a/x-pack/plugins/maps/server/mvt/mvt_routes.ts b/x-pack/plugins/maps/server/mvt/mvt_routes.ts index 1cd53f02f83c6..f768eb93dd9a3 100644 --- a/x-pack/plugins/maps/server/mvt/mvt_routes.ts +++ b/x-pack/plugins/maps/server/mvt/mvt_routes.ts @@ -27,11 +27,11 @@ const CACHE_TIMEOUT_SECONDS = 60 * 60; export function initMVTRoutes({ router, logger, - core, + getCore, }: { router: IRouter<DataRequestHandlerContext>; logger: Logger; - core: CoreStart; + getCore: () => Promise<CoreStart>; }) { router.versioned .get({ @@ -93,7 +93,7 @@ export function initMVTRoutes({ abortController: makeAbortController(request), body: tileRequest.body, context, - core, + core: await getCore(), executionContext: makeExecutionContext({ type: 'server', name: APP_ID, @@ -173,7 +173,7 @@ export function initMVTRoutes({ abortController: makeAbortController(request), body: tileRequest.body, context, - core, + core: await getCore(), executionContext: makeExecutionContext({ type: 'server', name: APP_ID, diff --git a/x-pack/plugins/maps/server/plugin.ts b/x-pack/plugins/maps/server/plugin.ts index dffd3e8a23aaa..8d926952d1bd0 100644 --- a/x-pack/plugins/maps/server/plugin.ts +++ b/x-pack/plugins/maps/server/plugin.ts @@ -145,7 +145,7 @@ export class MapsPlugin implements Plugin { ); } - setup(core: CoreSetup, plugins: SetupDeps) { + setup(core: CoreSetup<StartDeps>, plugins: SetupDeps) { const getFilterMigrations = plugins.data.query.filterManager.getAllMigrations.bind( plugins.data.query.filterManager ); diff --git a/x-pack/plugins/maps/server/routes.ts b/x-pack/plugins/maps/server/routes.ts index 07bf8fefd9d14..32f7a9e6c18ea 100644 --- a/x-pack/plugins/maps/server/routes.ts +++ b/x-pack/plugins/maps/server/routes.ts @@ -8,7 +8,7 @@ import { schema } from '@kbn/config-schema'; import fs from 'fs'; import path from 'path'; -import { CoreSetup, CoreStart, IRouter, Logger } from '@kbn/core/server'; +import { CoreSetup, IRouter, Logger } from '@kbn/core/server'; import { DataRequestHandlerContext } from '@kbn/data-plugin/server'; import { INDEX_SETTINGS_API_PATH, FONTS_API_PATH } from '../common/constants'; import { getIndexPatternSettings } from './lib/get_index_pattern_settings'; @@ -16,10 +16,8 @@ import { initMVTRoutes } from './mvt/mvt_routes'; import { initIndexingRoutes } from './data_indexing/indexing_routes'; import { StartDeps } from './types'; -export async function initRoutes(coreSetup: CoreSetup, logger: Logger): Promise<void> { +export function initRoutes(coreSetup: CoreSetup<StartDeps>, logger: Logger) { const router: IRouter<DataRequestHandlerContext> = coreSetup.http.createRouter(); - const [coreStart, { data: dataPlugin }]: [CoreStart, StartDeps] = - (await coreSetup.getStartServices()) as unknown as [CoreStart, StartDeps]; router.versioned .get({ @@ -109,6 +107,20 @@ export async function initRoutes(coreSetup: CoreSetup, logger: Logger): Promise< } ); - initMVTRoutes({ router, logger, core: coreStart }); - initIndexingRoutes({ router, logger, dataPlugin }); + initMVTRoutes({ + router, + logger, + getCore: async () => { + const [core] = await coreSetup.getStartServices(); + return core; + }, + }); + initIndexingRoutes({ + router, + logger, + getDataPlugin: async () => { + const [, { data }] = await coreSetup.getStartServices(); + return data; + }, + }); } From 58562c95656d37ad458d204f1e1810c63b7b2456 Mon Sep 17 00:00:00 2001 From: Pablo Machado <pablo.nevesmachado@elastic.co> Date: Wed, 24 Apr 2024 14:59:48 +0200 Subject: [PATCH 118/183] [SecuritySolutions] Fix entity analytics UI issues on dark mode (#181431) ## Summary We were using the wrong colour variables in a couple of places. These changes only impact the dark mode UI. Fixed pages: ![Screenshot 2024-04-23 at 14 55 20](https://github.com/elastic/kibana/assets/1490444/4b330c43-559d-4542-ab6b-46e98b69ce19) ![Screenshot 2024-04-23 at 14 36 12](https://github.com/elastic/kibana/assets/1490444/0b47b893-e9f2-4a54-b7c6-d055f2bb91a6) . --- .../components/file_picker_step.tsx | 2 +- .../shared/components/entity_table/columns.tsx | 6 +++--- .../components/side_panel/new_user_detail/columns.tsx | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx index efe70c77f4c8f..942b3a18c2c21 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/asset_criticality_file_uploader/components/file_picker_step.tsx @@ -137,7 +137,7 @@ export const AssetCriticalityFilePickerStep: React.FC<AssetCriticalityFilePicker <EuiCodeBlock language="csv" css={css` - background-color: ${euiTheme.colors.ghost}; + background-color: ${euiTheme.colors.emptyShade}; `} paddingSize="s" lineNumbers diff --git a/x-pack/plugins/security_solution/public/flyout/entity_details/shared/components/entity_table/columns.tsx b/x-pack/plugins/security_solution/public/flyout/entity_details/shared/components/entity_table/columns.tsx index e97ab9b4accae..4466c2e31df46 100644 --- a/x-pack/plugins/security_solution/public/flyout/entity_details/shared/components/entity_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/flyout/entity_details/shared/components/entity_table/columns.tsx @@ -7,7 +7,7 @@ import { css } from '@emotion/react'; import React from 'react'; -import { euiLightVars } from '@kbn/ui-theme'; +import { euiThemeVars } from '@kbn/ui-theme'; import { FormattedMessage } from '@kbn/i18n-react'; import { DefaultFieldRenderer } from '../../../../../timelines/components/field_renderers/field_renderers'; import { getEmptyTagValue } from '../../../../../common/components/empty_value'; @@ -32,8 +32,8 @@ export const getEntityTableColumns = <T extends BasicEntityData>( <span data-test-subj="entity-table-label" css={css` - font-weight: ${euiLightVars.euiFontWeightMedium}; - color: ${euiLightVars.euiTitleColor}; + font-weight: ${euiThemeVars.euiFontWeightMedium}; + color: ${euiThemeVars.euiTitleColor}; `} > {label ?? field} diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/new_user_detail/columns.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/new_user_detail/columns.tsx index da4e82976d515..fc3aeb6aedd9f 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/new_user_detail/columns.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/new_user_detail/columns.tsx @@ -7,7 +7,7 @@ import { css } from '@emotion/react'; import React from 'react'; -import { euiLightVars } from '@kbn/ui-theme'; +import { euiThemeVars } from '@kbn/ui-theme'; import type { EuiBasicTableColumn } from '@elastic/eui'; import { SourcererScopeName } from '../../../../common/store/sourcerer/model'; import { DefaultFieldRenderer } from '../../field_renderers/field_renderers'; @@ -21,8 +21,8 @@ const fieldColumn: EuiBasicTableColumn<ManagedUserTable> = { render: (label: string, { field }) => ( <span css={css` - font-weight: ${euiLightVars.euiFontWeightMedium}; - color: ${euiLightVars.euiTitleColor}; + font-weight: ${euiThemeVars.euiFontWeightMedium}; + color: ${euiThemeVars.euiTitleColor}; `} > {label ?? field} From 707ec552d9a303dae2ebb4603e8fd4ca157ff6d4 Mon Sep 17 00:00:00 2001 From: Abdul Wahab Zahid <awahab07@yahoo.com> Date: Wed, 24 Apr 2024 15:27:08 +0200 Subject: [PATCH 119/183] [Dataset quality] Pass breakdown field over to logs explorer from degraded docs chart (#181509) ## Summary The PR adds the `breakdownField` param in `LogsExplorerNavigationParams` so that when "Explorer data in Logs Explorer" is clicked on Degraded Docs chart on Dataset Quality flyout while the chart has a breakdown field selected, the field is passed over to Logs Explorer. https://github.com/elastic/kibana/assets/2748376/b380ac85-e40e-451b-983f-41c68f87ed7b --- .../observability/locators/logs_explorer.ts | 4 ++ .../common/locators/locators.test.ts | 48 +++++++++++++++++++ .../locators/utils/construct_locator_path.ts | 12 ++++- 3 files changed, 63 insertions(+), 1 deletion(-) diff --git a/packages/deeplinks/observability/locators/logs_explorer.ts b/packages/deeplinks/observability/locators/logs_explorer.ts index 1442e7afe02cd..39a28f91e7c11 100644 --- a/packages/deeplinks/observability/locators/logs_explorer.ts +++ b/packages/deeplinks/observability/locators/logs_explorer.ts @@ -68,6 +68,10 @@ export interface LogsExplorerNavigationParams extends SerializableRecord { * Optionally apply curated filter controls */ filterControls?: FilterControls; + /** + * Optionally set chart's breakdown field + */ + breakdownField?: string; } export interface LogsExplorerLocatorParams extends LogsExplorerNavigationParams { diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts index cdc50af3f5471..6761953c62325 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/locators.test.ts @@ -99,6 +99,21 @@ describe('Observability Logs Explorer Locators', () => { }); }); + it('should allow specifying breakdown field', async () => { + const params: AllDatasetsLocatorParams = { + breakdownField: 'service.name', + }; + + const { allDatasetsLocator } = await setup(); + const location = await allDatasetsLocator.getLocation(params); + + expect(location).toMatchObject({ + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, + path: '/?pageState=(breakdownField:service.name,dataSourceSelection:(selectionType:all),v:2)', + state: {}, + }); + }); + it('should allow specifying columns', async () => { const params: AllDatasetsLocatorParams = { columns: [{ field: '_source', type: 'document-field' }], @@ -211,6 +226,22 @@ describe('Observability Logs Explorer Locators', () => { }); }); + it('should allow specifying breakdown field', async () => { + const params: ObsLogsExplorerDataViewLocatorParams = { + id: 'data-view-id', + breakdownField: 'service.name', + }; + + const { dataViewLocator } = await setup(); + const location = await dataViewLocator.getLocation(params); + + expect(location).toMatchObject({ + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, + path: `/?pageState=(breakdownField:service.name,dataSourceSelection:(selection:(dataView:(dataType:unresolved,id:data-view-id)),selectionType:dataView),v:2)`, + state: {}, + }); + }); + it('should allow specifying columns', async () => { const params: ObsLogsExplorerDataViewLocatorParams = { id: 'data-view-id', @@ -331,6 +362,23 @@ describe('Observability Logs Explorer Locators', () => { }); }); + it('should allow specifying breakdown field', async () => { + const params: SingleDatasetLocatorParams = { + integration, + dataset, + breakdownField: 'service.name', + }; + + const { singleDatasetLocator } = await setup(); + const location = await singleDatasetLocator.getLocation(params); + + expect(location).toMatchObject({ + app: OBSERVABILITY_LOGS_EXPLORER_APP_ID, + path: `/?pageState=(breakdownField:service.name,dataSourceSelection:(selection:(dataset:(name:'logs-test-*-*',title:test),name:Test),selectionType:unresolved),v:2)`, + state: {}, + }); + }); + it('should allow specifying columns', async () => { const params: SingleDatasetLocatorParams = { integration, diff --git a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts index eb96fb81ae2f3..fd1a0249b32f8 100644 --- a/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts +++ b/x-pack/plugins/observability_solution/observability_logs_explorer/common/locators/utils/construct_locator_path.ts @@ -35,7 +35,16 @@ interface LocatorPathConstructionParams { export const constructLocatorPath = async (params: LocatorPathConstructionParams) => { const { dataSourceSelection, - locatorParams: { filterControls, filters, query, refreshInterval, timeRange, columns, origin }, + locatorParams: { + filterControls, + filters, + query, + refreshInterval, + timeRange, + columns, + origin, + breakdownField, + }, useHash, } = params; @@ -47,6 +56,7 @@ export const constructLocatorPath = async (params: LocatorPathConstructionParams query, refreshInterval, time: timeRange, + breakdownField, columns: columns?.map((column) => { return column.type === 'smart-field' ? SMART_FALLBACK_FIELDS[column.smartField] : column; }), From 42fa118b7dd4e0ec9108ca056d5f705d6f5617e9 Mon Sep 17 00:00:00 2001 From: Christos Nasikas <christos.nasikas@elastic.co> Date: Wed, 24 Apr 2024 16:38:24 +0300 Subject: [PATCH 120/183] [Cases] Populate user info from fake requests (#180671) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Set a system user name when the request is fake. This is helpful to show user information to the case created by the case action. ## Testing 1. Create a rule with a case action 2. In the created case verify that the `elastic/kibana` user is shown and not the `Unknown` user <img width="2297" alt="Screenshot 2024-04-22 at 10 37 46 PM" src="https://github.com/elastic/kibana/assets/7871006/abfcec4c-f2a4-4663-84e0-1816ada69167"> ### Checklist Delete any items that are not applicable to this PR. - [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 ### For maintainers - [x] 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) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../actions_client/actions_client.mock.ts | 2 +- .../actions_authorization.mock.ts | 2 +- x-pack/plugins/actions/server/feature.ts | 2 +- x-pack/plugins/actions/tsconfig.json | 3 +- .../plugins/cases/common/constants/index.ts | 1 + .../cases/server/client/factory.test.ts | 124 ++++++++++++++++++ x-pack/plugins/cases/server/client/factory.ts | 10 +- x-pack/plugins/cases/server/client/mocks.ts | 36 ++++- x-pack/plugins/cases/server/plugin.test.ts | 4 +- x-pack/plugins/cases/tsconfig.json | 1 + 10 files changed, 176 insertions(+), 9 deletions(-) create mode 100644 x-pack/plugins/cases/server/client/factory.test.ts diff --git a/x-pack/plugins/actions/server/actions_client/actions_client.mock.ts b/x-pack/plugins/actions/server/actions_client/actions_client.mock.ts index d58476738b9be..433e3850cae2a 100644 --- a/x-pack/plugins/actions/server/actions_client/actions_client.mock.ts +++ b/x-pack/plugins/actions/server/actions_client/actions_client.mock.ts @@ -6,7 +6,7 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import { ActionsClient } from './actions_client'; +import type { ActionsClient } from './actions_client'; type ActionsClientContract = PublicMethodsOf<ActionsClient>; export type ActionsClientMock = jest.Mocked<ActionsClientContract>; diff --git a/x-pack/plugins/actions/server/authorization/actions_authorization.mock.ts b/x-pack/plugins/actions/server/authorization/actions_authorization.mock.ts index 20e95f1560c5a..ba106d014c28d 100644 --- a/x-pack/plugins/actions/server/authorization/actions_authorization.mock.ts +++ b/x-pack/plugins/actions/server/authorization/actions_authorization.mock.ts @@ -6,7 +6,7 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import { ActionsAuthorization } from './actions_authorization'; +import type { ActionsAuthorization } from './actions_authorization'; export type ActionsAuthorizationMock = jest.Mocked<PublicMethodsOf<ActionsAuthorization>>; diff --git a/x-pack/plugins/actions/server/feature.ts b/x-pack/plugins/actions/server/feature.ts index b44aaf61cad62..9fc48b705d25b 100644 --- a/x-pack/plugins/actions/server/feature.ts +++ b/x-pack/plugins/actions/server/feature.ts @@ -5,8 +5,8 @@ * 2.0. */ +import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; import { i18n } from '@kbn/i18n'; -import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; import { ACTION_SAVED_OBJECT_TYPE, ACTION_TASK_PARAMS_SAVED_OBJECT_TYPE, diff --git a/x-pack/plugins/actions/tsconfig.json b/x-pack/plugins/actions/tsconfig.json index 76ca916bc0ad0..d060287d24143 100644 --- a/x-pack/plugins/actions/tsconfig.json +++ b/x-pack/plugins/actions/tsconfig.json @@ -46,7 +46,8 @@ "@kbn/actions-types", "@kbn/core-http-server", "@kbn/core-test-helpers-kbn-server", - "@kbn/security-plugin-types-server" + "@kbn/security-plugin-types-server", + "@kbn/core-application-common" ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/cases/common/constants/index.ts b/x-pack/plugins/cases/common/constants/index.ts index 6b6b914826b61..a8868010d2312 100644 --- a/x-pack/plugins/cases/common/constants/index.ts +++ b/x-pack/plugins/cases/common/constants/index.ts @@ -192,6 +192,7 @@ export const GET_CONNECTORS_CONFIGURE_API_TAG = 'casesGetConnectorsConfigure'; export const DEFAULT_USER_SIZE = 10; export const MAX_ASSIGNEES_PER_CASE = 10; export const NO_ASSIGNEES_FILTERING_KEYWORD = 'none'; +export const KIBANA_SYSTEM_USERNAME = 'elastic/kibana'; /** * Delays diff --git a/x-pack/plugins/cases/server/client/factory.test.ts b/x-pack/plugins/cases/server/client/factory.test.ts new file mode 100644 index 0000000000000..69147e888aeec --- /dev/null +++ b/x-pack/plugins/cases/server/client/factory.test.ts @@ -0,0 +1,124 @@ +/* + * 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 { coreMock, httpServerMock, loggingSystemMock } from '@kbn/core/server/mocks'; +import { CasesClientFactory } from './factory'; +import { createCasesClientFactoryMockArgs } from './mocks'; +import { createCasesClient } from './client'; +import type { FakeRawRequest } from '@kbn/core-http-server'; +import { CoreKibanaRequest } from '@kbn/core-http-router-server-internal'; + +jest.mock('./client'); + +describe('CasesClientFactory', () => { + const coreStart = coreMock.createStart(); + const request = httpServerMock.createKibanaRequest(); + + const rawRequest: FakeRawRequest = { + headers: {}, + path: '/', + }; + + const fakeRequest = CoreKibanaRequest.from(rawRequest); + const createCasesClientMocked = createCasesClient as jest.Mock; + const logger = loggingSystemMock.createLogger(); + const args = createCasesClientFactoryMockArgs(); + let casesClientFactory: CasesClientFactory; + + args.featuresPluginStart.getKibanaFeatures.mockReturnValue([]); + + beforeEach(() => { + casesClientFactory = new CasesClientFactory(logger); + casesClientFactory.initialize(args); + jest.clearAllMocks(); + }); + + describe('user info', () => { + it('constructs the user info from user profiles', async () => { + const scopedClusterClient = coreStart.elasticsearch.client.asScoped(request).asCurrentUser; + args.securityPluginStart.userProfiles.getCurrent.mockResolvedValueOnce({ + // @ts-expect-error: not all fields are needed + user: { username: 'my_user', full_name: 'My user', email: 'elastic@elastic.co' }, + }); + + await casesClientFactory.create({ + request, + savedObjectsService: coreStart.savedObjects, + scopedClusterClient, + }); + + expect(args.securityPluginStart.userProfiles.getCurrent).toHaveBeenCalled(); + expect(args.securityPluginStart.authc.getCurrentUser).not.toHaveBeenCalled(); + expect(createCasesClientMocked.mock.calls[0][0].user).toEqual({ + username: 'my_user', + full_name: 'My user', + email: 'elastic@elastic.co', + }); + }); + + it('constructs the user info from the authc service if the user profile is not available', async () => { + const scopedClusterClient = coreStart.elasticsearch.client.asScoped(request).asCurrentUser; + // @ts-expect-error: not all fields are needed + args.securityPluginStart.authc.getCurrentUser.mockReturnValueOnce({ + username: 'my_user_2', + full_name: 'My user 2', + email: 'elastic2@elastic.co', + }); + + await casesClientFactory.create({ + request, + savedObjectsService: coreStart.savedObjects, + scopedClusterClient, + }); + + expect(args.securityPluginStart.userProfiles.getCurrent).toHaveBeenCalled(); + expect(args.securityPluginStart.authc.getCurrentUser).toHaveBeenCalled(); + expect(createCasesClientMocked.mock.calls[0][0].user).toEqual({ + username: 'my_user_2', + full_name: 'My user 2', + email: 'elastic2@elastic.co', + }); + }); + + it('constructs the user info from fake requests correctly', async () => { + const scopedClusterClient = + coreStart.elasticsearch.client.asScoped(fakeRequest).asCurrentUser; + + await casesClientFactory.create({ + request: fakeRequest, + savedObjectsService: coreStart.savedObjects, + scopedClusterClient, + }); + + expect(args.securityPluginStart.userProfiles.getCurrent).toHaveBeenCalled(); + expect(args.securityPluginStart.authc.getCurrentUser).toHaveBeenCalled(); + expect(createCasesClientMocked.mock.calls[0][0].user).toEqual({ + username: 'elastic/kibana', + full_name: null, + email: null, + }); + }); + + it('return null for all user fields if it cannot find the user info', async () => { + const scopedClusterClient = coreStart.elasticsearch.client.asScoped(request).asCurrentUser; + + await casesClientFactory.create({ + request, + savedObjectsService: coreStart.savedObjects, + scopedClusterClient, + }); + + expect(args.securityPluginStart.userProfiles.getCurrent).toHaveBeenCalled(); + expect(args.securityPluginStart.authc.getCurrentUser).toHaveBeenCalled(); + expect(createCasesClientMocked.mock.calls[0][0].user).toEqual({ + username: null, + full_name: null, + email: null, + }); + }); + }); +}); diff --git a/x-pack/plugins/cases/server/client/factory.ts b/x-pack/plugins/cases/server/client/factory.ts index 137cf69e0763a..5bb04c1da9e86 100644 --- a/x-pack/plugins/cases/server/client/factory.ts +++ b/x-pack/plugins/cases/server/client/factory.ts @@ -34,7 +34,7 @@ import type { import type { PublicMethodsOf } from '@kbn/utility-types'; import { DEFAULT_SPACE_ID } from '@kbn/spaces-plugin/common'; import type { FilesStart } from '@kbn/files-plugin/server'; -import { SAVED_OBJECT_TYPES } from '../../common/constants'; +import { KIBANA_SYSTEM_USERNAME, SAVED_OBJECT_TYPES } from '../../common/constants'; import { Authorization } from '../authorization/authorization'; import { CaseConfigureService, @@ -286,6 +286,14 @@ export class CasesClientFactory { this.logger.debug(`Failed to retrieve user info from authc: ${error}`); } + if (request.isFakeRequest) { + return { + username: KIBANA_SYSTEM_USERNAME, + full_name: null, + email: null, + }; + } + return { username: null, full_name: null, diff --git a/x-pack/plugins/cases/server/client/mocks.ts b/x-pack/plugins/cases/server/client/mocks.ts index 608a9ae2ff510..3de350f5a3981 100644 --- a/x-pack/plugins/cases/server/client/mocks.ts +++ b/x-pack/plugins/cases/server/client/mocks.ts @@ -9,12 +9,20 @@ import type { PublicContract, PublicMethodsOf } from '@kbn/utility-types'; import { loggingSystemMock, savedObjectsClientMock } from '@kbn/core/server/mocks'; import type { ISavedObjectsSerializer } from '@kbn/core-saved-objects-server'; -import { createFileServiceMock } from '@kbn/files-plugin/server/mocks'; +import { + createFileServiceFactoryMock, + createFileServiceMock, +} from '@kbn/files-plugin/server/mocks'; import { securityMock } from '@kbn/security-plugin/server/mocks'; import { actionsClientMock } from '@kbn/actions-plugin/server/actions_client/actions_client.mock'; import { makeLensEmbeddableFactory } from '@kbn/lens-plugin/server/embeddable/make_lens_embeddable_factory'; import { serializerMock } from '@kbn/core-saved-objects-base-server-mocks'; - +import { spacesMock } from '@kbn/spaces-plugin/server/mocks'; +import { featuresPluginMock } from '@kbn/features-plugin/server/mocks'; +import { actionsMock } from '@kbn/actions-plugin/server/mocks'; +import { notificationsMock } from '@kbn/notifications-plugin/server/mocks'; +import { licensingMock } from '@kbn/licensing-plugin/server/mocks'; +import { alertsMock } from '@kbn/alerting-plugin/server/mocks'; import type { CasesSearchRequest } from '../../common/types/api'; import type { CasesClient, CasesClientInternal } from '.'; import type { AttachmentsSubClient } from './attachments/client'; @@ -214,6 +222,30 @@ export const createCasesClientMockArgs = () => { }; }; +export const createCasesClientFactoryMockArgs = () => { + return { + securityPluginSetup: securityMock.createSetup(), + securityPluginStart: securityMock.createStart(), + spacesPluginStart: spacesMock.createStart(), + featuresPluginStart: featuresPluginMock.createSetup(), + actionsPluginStart: actionsMock.createStart(), + licensingPluginStart: licensingMock.createStart(), + notifications: notificationsMock.createStart(), + ruleRegistry: { getRacClientWithRequest: jest.fn(), alerting: alertsMock.createStart() }, + filesPluginStart: { fileServiceFactory: createFileServiceFactoryMock() }, + publicBaseUrl: 'https//example.com', + lensEmbeddableFactory: jest.fn().mockReturnValue( + makeLensEmbeddableFactory( + () => ({}), + () => ({}), + {} + ) + ), + externalReferenceAttachmentTypeRegistry: createExternalReferenceAttachmentTypeRegistryMock(), + persistableStateAttachmentTypeRegistry: createPersistableStateAttachmentTypeRegistryMock(), + }; +}; + export const createCasesClientMockSearchRequest = ( overwrites?: CasesSearchRequest ): CasesSearchRequest => ({ diff --git a/x-pack/plugins/cases/server/plugin.test.ts b/x-pack/plugins/cases/server/plugin.test.ts index 8c669f6de0e68..ac328f25de391 100644 --- a/x-pack/plugins/cases/server/plugin.test.ts +++ b/x-pack/plugins/cases/server/plugin.test.ts @@ -11,7 +11,7 @@ import { coreMock } from '@kbn/core/server/mocks'; import { usageCollectionPluginMock } from '@kbn/usage-collection-plugin/server/mocks'; import { licensingMock } from '@kbn/licensing-plugin/server/mocks'; import { featuresPluginMock } from '@kbn/features-plugin/server/mocks'; -import { createFilesSetupMock } from '@kbn/files-plugin/server/mocks'; +import { createFileServiceFactoryMock, createFilesSetupMock } from '@kbn/files-plugin/server/mocks'; import { securityMock } from '@kbn/security-plugin/server/mocks'; import { makeLensEmbeddableFactory } from '@kbn/lens-plugin/server/embeddable/make_lens_embeddable_factory'; import { taskManagerMock } from '@kbn/task-manager-plugin/server/mocks'; @@ -69,7 +69,7 @@ describe('Cases Plugin', () => { pluginsStart = { licensing: licensingMock.createStart(), actions: actionsMock.createStart(), - files: { fileServiceFactory: { asScoped: jest.fn(), asInternal: jest.fn() } }, + files: { fileServiceFactory: createFileServiceFactoryMock() }, features: featuresPluginMock.createStart(), security: securityMock.createStart(), notifications: notificationsMock.createStart(), diff --git a/x-pack/plugins/cases/tsconfig.json b/x-pack/plugins/cases/tsconfig.json index b5a426c3f9c0b..535f4e5e106dc 100644 --- a/x-pack/plugins/cases/tsconfig.json +++ b/x-pack/plugins/cases/tsconfig.json @@ -74,6 +74,7 @@ "@kbn/core-logging-server-mocks", "@kbn/core-logging-browser-mocks", "@kbn/data-views-plugin", + "@kbn/core-http-router-server-internal", ], "exclude": [ "target/**/*", From 05478009c69f5993207f8db1f93f1230f4006a96 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leysens <jeanlouis.leysens@elastic.co> Date: Wed, 24 Apr 2024 16:09:46 +0200 Subject: [PATCH 121/183] [HTTP/OAS] Support `deprecated` field (#181240) --- packages/kbn-config-schema/index.ts | 2 ++ .../kbn-config-schema/src/oas_meta_fields.ts | 1 + .../kbn-config-schema/src/types/type.test.ts | 24 ++++++++++++++----- packages/kbn-config-schema/src/types/type.ts | 14 +++++++++-- .../__snapshots__/generate_oas.test.ts.snap | 4 ++++ .../src/generate_oas.test.util.ts | 7 +++++- .../post_process_mutations/mutations/index.ts | 3 ++- .../post_process_mutations/mutations/utils.ts | 8 +++++++ 8 files changed, 53 insertions(+), 10 deletions(-) diff --git a/packages/kbn-config-schema/index.ts b/packages/kbn-config-schema/index.ts index dfb701f0a039c..c5b46932463db 100644 --- a/packages/kbn-config-schema/index.ts +++ b/packages/kbn-config-schema/index.ts @@ -246,6 +246,7 @@ export type Schema = typeof schema; import { META_FIELD_X_OAS_REF_ID, META_FIELD_X_OAS_OPTIONAL, + META_FIELD_X_OAS_DEPRECATED, META_FIELD_X_OAS_MAX_LENGTH, META_FIELD_X_OAS_MIN_LENGTH, META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES, @@ -254,6 +255,7 @@ import { export const metaFields = Object.freeze({ META_FIELD_X_OAS_REF_ID, META_FIELD_X_OAS_OPTIONAL, + META_FIELD_X_OAS_DEPRECATED, META_FIELD_X_OAS_MAX_LENGTH, META_FIELD_X_OAS_MIN_LENGTH, META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES, diff --git a/packages/kbn-config-schema/src/oas_meta_fields.ts b/packages/kbn-config-schema/src/oas_meta_fields.ts index 44422793558d4..ad04f9b30ef16 100644 --- a/packages/kbn-config-schema/src/oas_meta_fields.ts +++ b/packages/kbn-config-schema/src/oas_meta_fields.ts @@ -16,3 +16,4 @@ export const META_FIELD_X_OAS_MAX_LENGTH = 'x-oas-max-length' as const; export const META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES = 'x-oas-get-additional-properties' as const; export const META_FIELD_X_OAS_REF_ID = 'x-oas-ref-id' as const; +export const META_FIELD_X_OAS_DEPRECATED = 'x-oas-deprecated' as const; diff --git a/packages/kbn-config-schema/src/types/type.test.ts b/packages/kbn-config-schema/src/types/type.test.ts index 4d6636a55b9ca..a4784af2e8b62 100644 --- a/packages/kbn-config-schema/src/types/type.test.ts +++ b/packages/kbn-config-schema/src/types/type.test.ts @@ -9,7 +9,7 @@ import { get } from 'lodash'; import { internals } from '../internals'; import { Type, TypeOptions } from './type'; -import { META_FIELD_X_OAS_REF_ID } from '../oas_meta_fields'; +import { META_FIELD_X_OAS_REF_ID, META_FIELD_X_OAS_DEPRECATED } from '../oas_meta_fields'; class MyType extends Type<any> { constructor(opts: TypeOptions<any> = {}) { @@ -17,9 +17,21 @@ class MyType extends Type<any> { } } -test('meta', () => { - const type = new MyType({ meta: { description: 'my description', id: 'foo' } }); - const meta = type.getSchema().describe(); - expect(get(meta, 'flags.description')).toBe('my description'); - expect(get(meta, `metas[0].${META_FIELD_X_OAS_REF_ID}`)).toBe('foo'); +describe('meta', () => { + it('sets meta when provided', () => { + const type = new MyType({ + meta: { description: 'my description', id: 'foo', deprecated: true }, + }); + const meta = type.getSchema().describe(); + expect(get(meta, 'flags.description')).toBe('my description'); + expect(get(meta, `metas[0].${META_FIELD_X_OAS_REF_ID}`)).toBe('foo'); + expect(get(meta, `metas[1].${META_FIELD_X_OAS_DEPRECATED}`)).toBe(true); + }); + + it('does not set meta when no provided', () => { + const type = new MyType(); + const meta = type.getSchema().describe(); + expect(get(meta, 'flags.description')).toBeUndefined(); + expect(get(meta, 'metas')).toBeUndefined(); + }); }); diff --git a/packages/kbn-config-schema/src/types/type.ts b/packages/kbn-config-schema/src/types/type.ts index 1e312cc7adc7e..80ed3f90fdd2a 100644 --- a/packages/kbn-config-schema/src/types/type.ts +++ b/packages/kbn-config-schema/src/types/type.ts @@ -7,16 +7,23 @@ */ import type { AnySchema, CustomValidator, ErrorReport } from 'joi'; -import { META_FIELD_X_OAS_REF_ID } from '../oas_meta_fields'; +import { META_FIELD_X_OAS_DEPRECATED, META_FIELD_X_OAS_REF_ID } from '../oas_meta_fields'; import { SchemaTypeError, ValidationError } from '../errors'; import { Reference } from '../references'; -/** Meta fields used when introspecting runtime validation */ +/** + * Meta fields used when introspecting runtime validation. Most notably for + * generating OpenAPI spec. + */ export interface TypeMeta { /** * A human-friendly description of this type to be used in documentation. */ description?: string; + /** + * Whether this field is deprecated. + */ + deprecated?: boolean; /** * A string that uniquely identifies this schema. Used when generating OAS * to create refs instead of inline schemas. @@ -108,6 +115,9 @@ export abstract class Type<V> { if (options.meta.id) { schema = schema.meta({ [META_FIELD_X_OAS_REF_ID]: options.meta.id }); } + if (options.meta.deprecated) { + schema = schema.meta({ [META_FIELD_X_OAS_DEPRECATED]: true }); + } } // Attach generic error handler only if it hasn't been attached yet since diff --git a/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap b/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap index 42deee2907f43..aac31188c4985 100644 --- a/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap +++ b/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap @@ -155,6 +155,10 @@ Object { "schema": Object { "additionalProperties": false, "properties": Object { + "deprecatedFoo": Object { + "deprecated": true, + "type": "string", + }, "foo": Object { "type": "string", }, diff --git a/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts b/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts index e435065f0089f..41a2458619000 100644 --- a/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts +++ b/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts @@ -79,7 +79,12 @@ const getVersionedRouterDefaults = () => ({ fn: jest.fn(), options: { validate: { - request: { body: schema.object({ foo: schema.string() }) }, + request: { + body: schema.object({ + foo: schema.string(), + deprecatedFoo: schema.maybe(schema.string({ meta: { deprecated: true } })), + }), + }, response: { [200]: { body: schema.object({ fooResponse: schema.string() }) }, }, diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts index 4f5b31030695e..e200ba7d1ec27 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts @@ -10,7 +10,7 @@ import Joi from 'joi'; import { metaFields } from '@kbn/config-schema'; import type { OpenAPIV3 } from 'openapi-types'; import { parse } from '../../parse'; -import { deleteField, stripBadDefault } from './utils'; +import { deleteField, stripBadDefault, processDeprecated } from './utils'; import { IContext } from '../context'; const { @@ -62,6 +62,7 @@ export const processMap = (ctx: IContext, schema: OpenAPIV3.SchemaObject): void }; export const processAny = (schema: OpenAPIV3.SchemaObject): void => { + processDeprecated(schema); stripBadDefault(schema); }; diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts index 5bad28b276d10..eacc005936a28 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts @@ -7,6 +7,7 @@ */ import type { OpenAPIV3 } from 'openapi-types'; +import { metaFields } from '@kbn/config-schema'; export const stripBadDefault = (schema: OpenAPIV3.SchemaObject): void => { if (schema.default?.special === 'deep') { @@ -26,6 +27,13 @@ export const stripBadDefault = (schema: OpenAPIV3.SchemaObject): void => { } }; +export const processDeprecated = (schema: OpenAPIV3.SchemaObject): void => { + if (metaFields.META_FIELD_X_OAS_DEPRECATED in schema) { + schema.deprecated = true; + deleteField(schema, metaFields.META_FIELD_X_OAS_DEPRECATED); + } +}; + /** Just for type convenience */ export const deleteField = (schema: Record<any, unknown>, field: string): void => { delete schema[field]; From d5999c339a615a4e7cbd23741747dffa984da678 Mon Sep 17 00:00:00 2001 From: Dima Arnautov <dmitrii.arnautov@elastic.co> Date: Wed, 24 Apr 2024 16:29:06 +0200 Subject: [PATCH 122/183] [ML] Fix responsive layout for Trained Models table (#181541) ## Summary Closes https://github.com/elastic/kibana/issues/181530 - Sets percentage width for all columns - Sets responsive breakpoint - Makes Deployment stats table responsive as well ![Apr-24-2024 12-16-48](https://github.com/elastic/kibana/assets/5236598/2a14ffb9-de15-45e9-b8bc-276e10080864) ### Checklist - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- .../nodes_overview/allocated_models.tsx | 29 ++++++++++--------- .../model_management/model_actions.tsx | 6 ++-- .../model_management/models_list.tsx | 15 +++++----- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/allocated_models.tsx b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/allocated_models.tsx index f0ff64eae6445..4a31112255d92 100644 --- a/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/allocated_models.tsx +++ b/x-pack/plugins/ml/public/application/memory_usage/nodes_overview/allocated_models.tsx @@ -41,21 +41,22 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ const columns: Array<EuiBasicTableColumn<AllocatedModel>> = [ { + width: '10%', id: 'deployment_id', field: 'deployment_id', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.deploymentIdHeader', { defaultMessage: 'ID', }), - width: '150px', sortable: true, truncateText: false, + isExpander: false, 'data-test-subj': 'mlAllocatedModelsTableDeploymentId', }, { + width: '8%', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelRoutingStateHeader', { defaultMessage: 'Routing state', }), - width: '100px', 'data-test-subj': 'mlAllocatedModelsTableRoutingState', render: (v: AllocatedModel) => { const { routing_state: routingState, reason } = v.node.routing_state; @@ -68,32 +69,32 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ }, }, { + width: '8%', id: 'node_name', field: 'node.name', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.nodeNameHeader', { defaultMessage: 'Node name', }), - width: '150px', sortable: true, truncateText: false, 'data-test-subj': 'mlAllocatedModelsTableNodeName', }, { + width: '10%', id: 'model_id', field: 'model_id', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelNameHeader', { defaultMessage: 'Name', }), - width: '250px', sortable: true, truncateText: false, 'data-test-subj': 'mlAllocatedModelsTableName', }, { + width: '8%', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelSizeHeader', { defaultMessage: 'Size', }), - width: '100px', truncateText: true, 'data-test-subj': 'mlAllocatedModelsTableSize', render: (v: AllocatedModel) => { @@ -101,6 +102,7 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ }, }, { + width: '8%', name: ( <EuiToolTip content={i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.allocationTooltip', { @@ -115,7 +117,6 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ </span> </EuiToolTip> ), - width: '100px', truncateText: false, 'data-test-subj': 'mlAllocatedModelsTableAllocation', render: (v: AllocatedModel) => { @@ -129,6 +130,7 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ }, }, { + width: '8%', name: ( <EuiToolTip content={i18n.translate( @@ -150,11 +152,11 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ </EuiToolTip> ), field: 'node.throughput_last_minute', - width: '100px', truncateText: false, 'data-test-subj': 'mlAllocatedModelsTableThroughput', }, { + width: '8%', name: ( <EuiToolTip display={'block'} @@ -186,7 +188,6 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ </EuiFlexGroup> </EuiToolTip> ), - width: '100px', truncateText: false, 'data-test-subj': 'mlAllocatedModelsTableAvgInferenceTime', render: (v: AllocatedModel) => { @@ -196,56 +197,56 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ }, }, { + width: '8%', name: i18n.translate( 'xpack.ml.trainedModels.nodesList.modelsList.modelInferenceCountHeader', { defaultMessage: 'Inference count', } ), - width: '100px', 'data-test-subj': 'mlAllocatedModelsTableInferenceCount', render: (v: AllocatedModel) => { return v.node.inference_count; }, }, { + width: '12%', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelStartTimeHeader', { defaultMessage: 'Start time', }), - width: '200px', 'data-test-subj': 'mlAllocatedModelsTableStartedTime', render: (v: AllocatedModel) => { return dateFormatter(v.node.start_time); }, }, { + width: '12%', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelLastAccessHeader', { defaultMessage: 'Last access', }), - width: '200px', 'data-test-subj': 'mlAllocatedModelsTableInferenceCount', render: (v: AllocatedModel) => { return v.node.last_access ? dateFormatter(v.node.last_access) : '-'; }, }, { + width: '8%', name: i18n.translate( 'xpack.ml.trainedModels.nodesList.modelsList.modelNumberOfPendingRequestsHeader', { defaultMessage: 'Pending requests', } ), - width: '100px', 'data-test-subj': 'mlAllocatedModelsTableNumberOfPendingRequests', render: (v: AllocatedModel) => { return v.node.number_of_pending_requests; }, }, { + width: '8%', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.errorCountHeader', { defaultMessage: 'Errors', }), - width: '60px', 'data-test-subj': 'mlAllocatedModelsTableErrorCount', render: (v: AllocatedModel) => { return v.node.error_count ?? 0; @@ -255,6 +256,7 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ return ( <EuiInMemoryTable<AllocatedModel> + responsiveBreakpoint={'xl'} allowNeutralSort={false} columns={columns} items={models} @@ -264,7 +266,6 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ })} onTableChange={() => {}} data-test-subj={'mlNodesAllocatedModels'} - css={{ overflow: 'auto' }} /> ); }; diff --git a/x-pack/plugins/ml/public/application/model_management/model_actions.tsx b/x-pack/plugins/ml/public/application/model_management/model_actions.tsx index c3b726d8bd2d6..5d690a7a58fd8 100644 --- a/x-pack/plugins/ml/public/application/model_management/model_actions.tsx +++ b/x-pack/plugins/ml/public/application/model_management/model_actions.tsx @@ -199,9 +199,8 @@ export function useModelActions({ } ), 'data-test-subj': 'mlModelsTableRowStartDeploymentAction', - // @ts-ignore EUI has a type check issue when type "button" is combined with an icon. icon: 'play', - type: 'button', + type: 'icon', isPrimary: true, enabled: (item) => { return canStartStopTrainedModels && !isLoading && item.state !== MODEL_STATE.DOWNLOADING; @@ -409,9 +408,8 @@ export function useModelActions({ defaultMessage: 'Download', }), 'data-test-subj': 'mlModelsTableRowDownloadModelAction', - // @ts-ignore EUI has a type check issue when type "button" is combined with an icon. icon: 'download', - type: 'button', + type: 'icon', isPrimary: true, available: (item) => canCreateTrainedModels && diff --git a/x-pack/plugins/ml/public/application/model_management/models_list.tsx b/x-pack/plugins/ml/public/application/model_management/models_list.tsx index 8f4a9ae1e55f1..242db5904252d 100644 --- a/x-pack/plugins/ml/public/application/model_management/models_list.tsx +++ b/x-pack/plugins/ml/public/application/model_management/models_list.tsx @@ -486,7 +486,7 @@ export const ModelsList: FC<Props> = ({ const columns: Array<EuiBasicTableColumn<ModelItem>> = [ { align: 'left', - width: '40px', + width: '32px', isExpander: true, render: (item: ModelItem) => { if (!item.stats) { @@ -512,7 +512,7 @@ export const ModelsList: FC<Props> = ({ }, { name: modelIdColumnName, - width: '215px', + width: '15%', sortable: ({ model_id: modelId }: ModelItem) => modelId, truncateText: false, textOnly: false, @@ -533,7 +533,6 @@ export const ModelsList: FC<Props> = ({ }, }, { - width: '300px', name: i18n.translate('xpack.ml.trainedModels.modelsList.modelDescriptionHeader', { defaultMessage: 'Description', }), @@ -567,6 +566,7 @@ export const ModelsList: FC<Props> = ({ }, }, { + width: '15%', field: ModelsTableToConfigMapping.type, name: i18n.translate('xpack.ml.trainedModels.modelsList.typeHeader', { defaultMessage: 'Type', @@ -586,9 +586,9 @@ export const ModelsList: FC<Props> = ({ </EuiFlexGroup> ), 'data-test-subj': 'mlModelsTableColumnType', - width: '130px', }, { + width: '10%', field: 'state', name: i18n.translate('xpack.ml.trainedModels.modelsList.stateHeader', { defaultMessage: 'State', @@ -604,9 +604,9 @@ export const ModelsList: FC<Props> = ({ ) : null; }, 'data-test-subj': 'mlModelsTableColumnDeploymentState', - width: '130px', }, { + width: '20%', field: ModelsTableToConfigMapping.createdAt, name: i18n.translate('xpack.ml.trainedModels.modelsList.createdAtHeader', { defaultMessage: 'Created at', @@ -615,10 +615,9 @@ export const ModelsList: FC<Props> = ({ render: (v: number) => dateFormatter(v), sortable: true, 'data-test-subj': 'mlModelsTableColumnCreatedAt', - width: '210px', }, { - width: '150px', + width: '15%', name: i18n.translate('xpack.ml.trainedModels.modelsList.actionsHeader', { defaultMessage: 'Actions', }), @@ -768,7 +767,7 @@ export const ModelsList: FC<Props> = ({ <EuiSpacer size="m" /> <div data-test-subj="mlModelsTableContainer"> <EuiInMemoryTable<ModelItem> - css={{ overflowX: 'auto' }} + responsiveBreakpoint={'xl'} allowNeutralSort={false} columns={columns} itemIdToExpandedRowMap={itemIdToExpandedRowMap} From d635c6deeba5891b548eea9e04fb7e144cc9eac5 Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Wed, 24 Apr 2024 17:14:49 +0200 Subject: [PATCH 123/183] [Fleet] allow fleet-server agent upgrade to newer than fleet-server (#181575) ## Summary Closes https://github.com/elastic/kibana/issues/181394 Allow upgrade fleet-server even if fleet-server version is older than the upgrade version. See testing steps in the linked issue. ### 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 --- .../agent_upgrade_modal/index.test.tsx | 37 +++++++++++++++++++ .../components/agent_upgrade_modal/index.tsx | 5 +++ 2 files changed, 42 insertions(+) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx index dc08d052a9152..a71329168d054 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.test.tsx @@ -334,6 +334,43 @@ describe('AgentUpgradeAgentModal', () => { expect(el).not.toBeDisabled(); }); }); + + it('should enable submit button for a single fleet-server when version is greater than maxFleetServerVersion', async () => { + mockSendGetAgentsAvailableVersions.mockClear(); + mockSendGetAgentsAvailableVersions.mockResolvedValue({ + data: { + items: ['8.10.4', '8.10.2', '8.9.0', '8.8.0'], + }, + }); + mockSendAllFleetServerAgents.mockResolvedValue({ + allFleetServerAgents: [ + { id: 'fleet-server', local_metadata: { elastic: { agent: { version: '8.9.0' } } } }, + ] as any, + }); + + const { utils } = renderAgentUpgradeAgentModal({ + agents: [ + { + id: 'fleet-server', + local_metadata: { + elastic: { + agent: { version: '8.9.0', upgradeable: true }, + }, + host: { hostname: 'host00001' }, + }, + }, + ] as any, + agentCount: 1, + }); + + await waitFor(() => { + const container = utils.getByTestId('agentUpgradeModal.VersionCombobox'); + const input = within(container).getByRole<HTMLInputElement>('combobox'); + expect(input?.value).toEqual('8.10.2'); + const el = utils.getByTestId('confirmModalConfirmButton'); + expect(el).toBeEnabled(); + }); + }); }); describe('restart upgrade', () => { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx index 89531c2b01181..a82cef810f9cc 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_upgrade_modal/index.tsx @@ -287,6 +287,9 @@ export const AgentUpgradeAgentModal: React.FunctionComponent<AgentUpgradeAgentMo const { startDatetime, onChangeStartDateTime, initialDatetime, minTime, maxTime } = useScheduleDateTime(); + const isSingleAgentFleetServer = + isSingleAgent && fleetServerAgents.map((agent) => agent.id).includes(agents[0].id); + const isSubmitButtonDisabled = useMemo( () => isSubmitting || @@ -294,6 +297,7 @@ export const AgentUpgradeAgentModal: React.FunctionComponent<AgentUpgradeAgentMo !selectedVersion[0].value || (isSingleAgent && !isAgentUpgradeableToVersion(agents[0], selectedVersion[0].value)) || (isSingleAgent && + !isSingleAgentFleetServer && !isAgentVersionLessThanFleetServer(selectedVersion[0].value, fleetServerAgents)), [ agents, @@ -303,6 +307,7 @@ export const AgentUpgradeAgentModal: React.FunctionComponent<AgentUpgradeAgentMo isUpdating, selectedVersion, updatingAgents, + isSingleAgentFleetServer, ] ); From 18e6bf2caedf1362f9ecb45f67683112795b6fbf Mon Sep 17 00:00:00 2001 From: Khristinin Nikita <nikita.khristinin@elastic.co> Date: Wed, 24 Apr 2024 17:21:25 +0200 Subject: [PATCH 124/183] Value list UI and telemetry (#180929) ## Add telemetry and change UI copy for value list: <img width="1469" alt="Screenshot 2024-04-17 at 15 09 47" src="https://github.com/elastic/kibana/assets/7609147/6c69c7ed-f8ac-49d0-9a9c-ede199993aaa"> <img width="1432" alt="Screenshot 2024-04-17 at 15 09 41" src="https://github.com/elastic/kibana/assets/7609147/a5641217-61b0-40a5-afc8-6f1a936be007"> <img width="1576" alt="Screenshot 2024-04-17 at 15 09 30" src="https://github.com/elastic/kibana/assets/7609147/fd26254e-fc69-4565-85df-8621f6ba7c7a"> <img width="804" alt="Screenshot 2024-04-17 at 15 09 24" src="https://github.com/elastic/kibana/assets/7609147/0bb76536-3388-41d1-b6cb-9c00992b361e"> <img width="1484" alt="Screenshot 2024-04-17 at 15 09 18" src="https://github.com/elastic/kibana/assets/7609147/5bf6fcee-01fe-408f-b923-b5824dde7394"> --------- Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../public/common/lib/telemetry/constants.ts | 7 +++++ .../translations.ts | 2 +- .../detection_engine/rules/translations.ts | 2 +- .../components/add_list_item_popover.tsx | 4 +-- .../components/delete_list_item.tsx | 2 ++ .../inline_edit_list_item_value.tsx | 2 ++ .../value_list/components/list_item_table.tsx | 2 ++ .../components/show_value_list_modal.tsx | 6 ++++- .../components/upload_list_item.tsx | 2 ++ .../public/value_list/translations.ts | 27 +++++++++---------- .../value_lists/value_list_items.cy.ts | 2 +- 11 files changed, 37 insertions(+), 21 deletions(-) diff --git a/x-pack/plugins/security_solution/public/common/lib/telemetry/constants.ts b/x-pack/plugins/security_solution/public/common/lib/telemetry/constants.ts index 72c38f1cc69b5..052a3296d8414 100644 --- a/x-pack/plugins/security_solution/public/common/lib/telemetry/constants.ts +++ b/x-pack/plugins/security_solution/public/common/lib/telemetry/constants.ts @@ -34,6 +34,13 @@ export enum TELEMETRY_EVENT { // Landing page - dashboard DASHBOARD = 'navigate_to_dashboard', CREATE_DASHBOARD = 'create_dashboard', + + // value list + OPEN_VALUE_LIST_MODAL = 'open_value_list_modal', + CREATE_VALUE_LIST_ITEM = 'create_value_list_item', + DELETE_VALUE_LIST_ITEM = 'delete_value_list_item', + EDIT_VALUE_LIST_ITEM = 'edit_value_list_item', + ADDITIONAL_UPLOAD_VALUE_LIST_ITEM = 'additinonal_upload_value_list_item', } export enum TelemetryEventTypes { diff --git a/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/translations.ts b/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/translations.ts index 37fbfaf09f6d8..caea46a2417d0 100644 --- a/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/translations.ts +++ b/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/translations.ts @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; export const VALUE_LISTS_FLYOUT_TITLE = i18n.translate( 'xpack.securitySolution.lists.importValueListTitle', { - defaultMessage: 'Import value lists', + defaultMessage: 'Manage value lists', } ); diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts index a7823f39abb70..7ceb3fa661ba6 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts @@ -23,7 +23,7 @@ export const IMPORT_RULE = i18n.translate( export const IMPORT_VALUE_LISTS = i18n.translate( 'xpack.securitySolution.lists.detectionEngine.rules.importValueListsButton', { - defaultMessage: 'Import value lists', + defaultMessage: 'Manage value lists', } ); diff --git a/x-pack/plugins/security_solution/public/value_list/components/add_list_item_popover.tsx b/x-pack/plugins/security_solution/public/value_list/components/add_list_item_popover.tsx index 6dabd24f3f8ac..1a0a41c602641 100644 --- a/x-pack/plugins/security_solution/public/value_list/components/add_list_item_popover.tsx +++ b/x-pack/plugins/security_solution/public/value_list/components/add_list_item_popover.tsx @@ -23,10 +23,10 @@ import { SUCCESSFULLY_ADDED_ITEM, VALUE_REQUIRED, VALUE_LABEL, - ADD_VALUE_LIST_PLACEHOLDER, ADDING_LIST_ITEM_BUTTON, ADD_LIST_ITEM_BUTTON, } from '../translations'; +import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../common/lib/telemetry'; export const AddListItemPopover = ({ listId }: { listId: string }) => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); @@ -53,6 +53,7 @@ export const AddListItemPopover = ({ listId }: { listId: string }) => { } }, onSubmit: async (values) => { + track(METRIC_TYPE.COUNT, TELEMETRY_EVENT.CREATE_VALUE_LIST_ITEM); await createListItemMutation.mutateAsync({ listId, value: values.value, http }); setIsPopoverOpen(false); formik.resetForm(); @@ -93,7 +94,6 @@ export const AddListItemPopover = ({ listId }: { listId: string }) => { name="value" icon="listAdd" data-test-subj="value-list-item-add-input" - placeholder={ADD_VALUE_LIST_PLACEHOLDER} isInvalid={!!formik.errors.value} /> </EuiFormRow> diff --git a/x-pack/plugins/security_solution/public/value_list/components/delete_list_item.tsx b/x-pack/plugins/security_solution/public/value_list/components/delete_list_item.tsx index d9ad65a60cf0b..520d9668f5ad5 100644 --- a/x-pack/plugins/security_solution/public/value_list/components/delete_list_item.tsx +++ b/x-pack/plugins/security_solution/public/value_list/components/delete_list_item.tsx @@ -11,6 +11,7 @@ import { useDeleteListItemMutation } from '@kbn/securitysolution-list-hooks'; import { useAppToasts } from '../../common/hooks/use_app_toasts'; import { useKibana } from '../../common/lib/kibana'; import { SUCCESSFULLY_DELETED_ITEM } from '../translations'; +import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../common/lib/telemetry'; const toastOptions = { toastLifeTimeMs: 5000, @@ -32,6 +33,7 @@ export const DeleteListItem = ({ id, value }: { id: string; value: string }) => }); const deleteListItem = useCallback(() => { + track(METRIC_TYPE.COUNT, TELEMETRY_EVENT.DELETE_VALUE_LIST_ITEM); deleteListItemMutation.mutate({ id, http }); }, [deleteListItemMutation, id, http]); diff --git a/x-pack/plugins/security_solution/public/value_list/components/inline_edit_list_item_value.tsx b/x-pack/plugins/security_solution/public/value_list/components/inline_edit_list_item_value.tsx index 4ef639bcdbebb..d8777a8d83d00 100644 --- a/x-pack/plugins/security_solution/public/value_list/components/inline_edit_list_item_value.tsx +++ b/x-pack/plugins/security_solution/public/value_list/components/inline_edit_list_item_value.tsx @@ -12,6 +12,7 @@ import { usePatchListItemMutation } from '@kbn/securitysolution-list-hooks'; import { useAppToasts } from '../../common/hooks/use_app_toasts'; import { useKibana } from '../../common/lib/kibana/kibana_react'; import { EDIT_TEXT_INLINE_LABEL, SUCCESSFULLY_UPDATED_LIST_ITEM } from '../translations'; +import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../common/lib/telemetry'; const toastOptions = { toastLifeTimeMs: 5000, @@ -41,6 +42,7 @@ export const InlineEditListItemValue = ({ listItem }: { listItem: ListItemSchema const onSave = useCallback( async (newValue) => { + track(METRIC_TYPE.COUNT, TELEMETRY_EVENT.EDIT_VALUE_LIST_ITEM); await patchListItemMutation.mutateAsync({ id: listItem.id, value: newValue, diff --git a/x-pack/plugins/security_solution/public/value_list/components/list_item_table.tsx b/x-pack/plugins/security_solution/public/value_list/components/list_item_table.tsx index 50226ea047acc..11ecd486aa452 100644 --- a/x-pack/plugins/security_solution/public/value_list/components/list_item_table.tsx +++ b/x-pack/plugins/security_solution/public/value_list/components/list_item_table.tsx @@ -20,6 +20,7 @@ import { FAILED_TO_FETCH_LIST_ITEM, DELETE_LIST_ITEM, DELETE_LIST_ITEM_DESCRIPTION, + NOT_FOUND_ITEMS, } from '../translations'; export const ListItemTable = ({ @@ -80,6 +81,7 @@ export const ListItemTable = ({ error={isError ? FAILED_TO_FETCH_LIST_ITEM : undefined} loading={loading} onChange={onChange} + noItemsMessage={NOT_FOUND_ITEMS} /> ); }; diff --git a/x-pack/plugins/security_solution/public/value_list/components/show_value_list_modal.tsx b/x-pack/plugins/security_solution/public/value_list/components/show_value_list_modal.tsx index 0cf0608425b2f..96ab0ab599ee4 100644 --- a/x-pack/plugins/security_solution/public/value_list/components/show_value_list_modal.tsx +++ b/x-pack/plugins/security_solution/public/value_list/components/show_value_list_modal.tsx @@ -10,6 +10,7 @@ import React, { useState, useCallback } from 'react'; import { useListsPrivileges } from '../../detections/containers/detection_engine/lists/use_lists_privileges'; import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features'; import { ValueListModal } from './value_list_modal'; +import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../common/lib/telemetry'; export const ShowValueListModal = ({ listId, @@ -27,7 +28,10 @@ export const ShowValueListModal = ({ ); const onCloseModal = useCallback(() => setShowModal(false), []); - const onShowModal = useCallback(() => setShowModal(true), []); + const onShowModal = useCallback(() => { + track(METRIC_TYPE.CLICK, TELEMETRY_EVENT.OPEN_VALUE_LIST_MODAL); + setShowModal(true); + }, []); if (loading) return null; diff --git a/x-pack/plugins/security_solution/public/value_list/components/upload_list_item.tsx b/x-pack/plugins/security_solution/public/value_list/components/upload_list_item.tsx index 7e43629a6578c..3fe12339fe095 100644 --- a/x-pack/plugins/security_solution/public/value_list/components/upload_list_item.tsx +++ b/x-pack/plugins/security_solution/public/value_list/components/upload_list_item.tsx @@ -20,6 +20,7 @@ import { FAILED_TO_UPLOAD_LIST_ITEM, SUCCESSFULY_UPLOAD_LIST_ITEMS, } from '../translations'; +import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../common/lib/telemetry'; const validFileTypes = ['text/csv', 'text/plain']; @@ -45,6 +46,7 @@ export const UploadListItem = ({ listId, type }: { listId: string; type: ListTyp const handleImport = useCallback(() => { if (!importState.loading && file) { ctrl.current = new AbortController(); + track(METRIC_TYPE.COUNT, TELEMETRY_EVENT.ADDITIONAL_UPLOAD_VALUE_LIST_ITEM); importList({ file, listId, diff --git a/x-pack/plugins/security_solution/public/value_list/translations.ts b/x-pack/plugins/security_solution/public/value_list/translations.ts index 62b81fa61cab2..d97ece63dbe15 100644 --- a/x-pack/plugins/security_solution/public/value_list/translations.ts +++ b/x-pack/plugins/security_solution/public/value_list/translations.ts @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; export const ADD_LIST_ITEM = i18n.translate('xpack.securitySolution.listItems.addListItem', { - defaultMessage: 'Add list item', + defaultMessage: 'Create list item', }); export const SUCCESSFULLY_ADDED_ITEM = i18n.translate( @@ -23,20 +23,13 @@ export const VALUE_REQUIRED = i18n.translate('xpack.securitySolution.listItems.v }); export const VALUE_LABEL = i18n.translate('xpack.securitySolution.listItems.valueLabel', { - defaultMessage: 'Value', + defaultMessage: 'Enter a new value for the list', }); -export const ADD_VALUE_LIST_PLACEHOLDER = i18n.translate( - 'xpack.securitySolution.listItems.addValueListPlaceholder', - { - defaultMessage: 'Add list item..', - } -); - export const ADD_LIST_ITEM_BUTTON = i18n.translate( 'xpack.securitySolution.listItems.addListItemButton', { - defaultMessage: 'Add', + defaultMessage: 'Add list item', } ); @@ -75,19 +68,19 @@ export const COLUMN_VALUE = i18n.translate('xpack.securitySolution.listItems.col export const COLUMN_UPDATED_AT = i18n.translate( 'xpack.securitySolution.listItems.columnUpdatedAt', { - defaultMessage: 'Updated At', + defaultMessage: 'Updated at', } ); export const COLUMN_UPDATED_BY = i18n.translate( 'xpack.securitySolution.listItems.columnUpdatedBy', { - defaultMessage: 'Updated By', + defaultMessage: 'Updated by', } ); export const COLUMN_ACTIONS = i18n.translate('xpack.securitySolution.listItems.columnActions', { - defaultMessage: 'Actions', + defaultMessage: 'Action', }); export const FAILED_TO_FETCH_LIST_ITEM = i18n.translate( @@ -131,7 +124,7 @@ export const FAILED_TO_UPLOAD_LIST_ITEM_TITLE = i18n.translate( ); export const UPLOAD_TOOLTIP = i18n.translate('xpack.securitySolution.listItems.uploadTooltip', { - defaultMessage: 'All items from the file will be added as new items', + defaultMessage: 'All items from the file will be added to the value list.', }); export const UPLOAD_FILE_PICKER_INITAL_PROMT_TEXT = i18n.translate( @@ -163,6 +156,10 @@ export const INFO_TOTAL_ITEMS = i18n.translate('xpack.securitySolution.listItems export const getInfoTotalItems = (listType: string) => i18n.translate('xpack.securitySolution.listItems.searchBar', { - defaultMessage: 'Filter your data using KQL syntax - {listType}:*', + defaultMessage: 'Filter your data using KQL syntax, for example: {listType}:*', values: { listType }, }); + +export const NOT_FOUND_ITEMS = i18n.translate('xpack.securitySolution.listItems.notFoundItems', { + defaultMessage: '0 list items match your search criteria.', +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts index c8fd74fa64397..79933ea4d7f33 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/value_lists/value_list_items.cy.ts @@ -88,7 +88,7 @@ describe( getValueListItemsTableRow().should('have.length', perPage); searchValueListItemsModal('keyword:not_exists'); getValueListItemsTableRow().should('have.length', 1); - cy.get(VALUE_LIST_ITEMS_MODAL_TABLE).contains('No items found'); + cy.get(VALUE_LIST_ITEMS_MODAL_TABLE).contains('0 list items match your search criteria.'); searchValueListItemsModal('keyword:*or*'); getValueListItemsTableRow().should('have.length', 4); From f2f5ec927c8439b536e874ff04e081ec95758fad Mon Sep 17 00:00:00 2001 From: Jon <jon@elastic.co> Date: Wed, 24 Apr 2024 10:26:11 -0500 Subject: [PATCH 125/183] [build/serverless] Do not use spot instances (#181578) This build step doesn't support retries, if the docker image has already been uploaded once it exits early. We want to rule out spot preemptions as a cause of failure. --- .buildkite/pipelines/artifacts_container_image.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.buildkite/pipelines/artifacts_container_image.yml b/.buildkite/pipelines/artifacts_container_image.yml index 972fada9ddde2..63744d64aba92 100644 --- a/.buildkite/pipelines/artifacts_container_image.yml +++ b/.buildkite/pipelines/artifacts_container_image.yml @@ -2,9 +2,5 @@ steps: - command: .buildkite/scripts/steps/artifacts/docker_image.sh label: Build serverless container images agents: - queue: n2-16-spot + queue: c2-16 timeout_in_minutes: 60 - retry: - automatic: - - exit_status: '-1' - limit: 3 From 4cf38adac29c7a65ab142ba428cdc3ae0648f2c4 Mon Sep 17 00:00:00 2001 From: "Eyo O. Eyo" <7893459+eokoneyo@users.noreply.github.com> Date: Wed, 24 Apr 2024 16:30:35 +0100 Subject: [PATCH 126/183] [ES|QL] Multiline query in expanded mode shows undefined for line number (#181544) ## Summary closes https://github.com/elastic/kibana/issues/180570 Thanks to @drewdaemon for the preliminary investigation to the root cause of the issue, see https://github.com/elastic/kibana/issues/180570#issuecomment-2059590022. Building off of this, I noticed there's actually a first render pass where the code editor renders just fine, but for some reason it renders again ~causing~ which in turn causes the issue to happen see <img width="1728" alt="Screenshot 2024-04-24 at 01 48 18" src="https://github.com/elastic/kibana/assets/7893459/cc575b48-ef18-4920-9a40-14b53ed71e2d"> From the image above we see that the editor has it's line numbers rendered appropriately but then there's another render triggered which causes the issue, we'll notice that the dynamic overlay instance in the image above have their property of `_shouldRender` marked as false, this is because a render already happened see line 97 from the same image where said dynamic overlay is marked as rendered; <img width="450" alt="Screenshot 2024-04-24 at 09 09 51" src="https://github.com/elastic/kibana/assets/7893459/c82e5c61-da34-417c-92b0-0eddde84b37f"> See [here](https://github.com/microsoft/vscode/blob/a3944f74adb303047355e8c7d4b401bfba4e1a0d/src/vs/editor/common/viewEventHandler.ts#L30-L32) for the definition of `onDidRender`. This then makes it such that for the next render pass the render result isn't available. My assumption is that because we are updating the layout value of the editor, on every model change without actually taking into consideration the state of the editor it causes the editor to go out of sync, see <img width="413" alt="Screenshot 2024-04-24 at 09 31 45" src="https://github.com/elastic/kibana/assets/7893459/ed1b94e2-d894-493e-a378-6dc0fcffd684"> To counteract this, this PR introduces a guard that only updates the editor height when the event received actually has a diff in `contentHeight` property. Alongside this computation of the editor height is now inferred by reading values provided by the editor itself and not the DOM element of the editor. ## Visuals https://github.com/elastic/kibana/assets/7893459/26bb60ad-9ea1-41fe-854a-5c8a7be2e29d <!--### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) --> --- .../src/text_based_languages_editor.styles.ts | 2 +- .../src/text_based_languages_editor.tsx | 45 ++++++++----------- 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/packages/kbn-text-based-editor/src/text_based_languages_editor.styles.ts b/packages/kbn-text-based-editor/src/text_based_languages_editor.styles.ts index 8d8bd72eb8dcd..8e5fbb1974a55 100644 --- a/packages/kbn-text-based-editor/src/text_based_languages_editor.styles.ts +++ b/packages/kbn-text-based-editor/src/text_based_languages_editor.styles.ts @@ -12,7 +12,7 @@ export const EDITOR_INITIAL_HEIGHT_EXPANDED = 140; export const EDITOR_MIN_HEIGHT = 40; export const EDITOR_MAX_HEIGHT = 400; -export const textBasedLanguagedEditorStyles = ( +export const textBasedLanguageEditorStyles = ( euiTheme: EuiThemeComputed, isCompactFocused: boolean, editorHeight: number, diff --git a/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx b/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx index cf026c79fbc55..7cbf3a5a5cbf4 100644 --- a/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx +++ b/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx @@ -43,7 +43,7 @@ import { import { CodeEditor, CodeEditorProps } from '@kbn/code-editor'; import { - textBasedLanguagedEditorStyles, + textBasedLanguageEditorStyles, EDITOR_INITIAL_HEIGHT, EDITOR_INITIAL_HEIGHT_EXPANDED, EDITOR_MAX_HEIGHT, @@ -189,7 +189,7 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ kibana.services; const timeZone = core?.uiSettings?.get('dateFormat:tz'); const [code, setCode] = useState<string>(queryString ?? ''); - const [codeOneLiner, setCodeOneLiner] = useState(''); + const [codeOneLiner, setCodeOneLiner] = useState<string | null>(null); // To make server side errors less "sticky", register the state of the code when submitting const [codeWhenSubmitted, setCodeStateOnSubmission] = useState(code); const [editorHeight, setEditorHeight] = useState( @@ -273,7 +273,7 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ }); }); - const styles = textBasedLanguagedEditorStyles( + const styles = textBasedLanguageEditorStyles( euiTheme, isCompactFocused, editorHeight, @@ -342,34 +342,24 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ updateLinesFromModel = false; clickedOutside = true; if (editor1.current) { - const editorElement = editor1.current.getDomNode(); - if (editorElement) { - editorElement.style.height = `${EDITOR_INITIAL_HEIGHT}px`; - const contentWidth = Number(editorElement?.style.width.replace('px', '')); - calculateVisibleCode(contentWidth, true); - editor1.current.layout({ width: contentWidth, height: EDITOR_INITIAL_HEIGHT }); - } + const contentWidth = editor1.current.getLayoutInfo().width; + calculateVisibleCode(contentWidth, true); + editor1.current.layout({ width: contentWidth, height: EDITOR_INITIAL_HEIGHT }); } }; const updateHeight = useCallback((editor: monaco.editor.IStandaloneCodeEditor) => { - if (lines === 1 || clickedOutside || initialRender) return; - const editorElement = editor.getDomNode(); + if (clickedOutside || initialRender) return; const contentHeight = Math.min(MAX_COMPACT_VIEW_LENGTH, editor.getContentHeight()); - - if (editorElement) { - editorElement.style.height = `${contentHeight}px`; - } - const contentWidth = Number(editorElement?.style.width.replace('px', '')); - editor.layout({ width: contentWidth, height: contentHeight }); setEditorHeight(contentHeight); + editor.layout({ width: editor.getLayoutInfo().width, height: contentHeight }); }, []); const onEditorFocus = useCallback(() => { setIsCompactFocused(true); setIsCodeEditorExpandedFocused(true); setShowLineNumbers(true); - setCodeOneLiner(''); + setCodeOneLiner(null); clickedOutside = false; initialRender = false; updateLinesFromModel = true; @@ -598,13 +588,9 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ useEffect(() => { if (editor1.current && !isCompactFocused) { - const editorElement = editor1.current.getDomNode(); - if (editorElement) { - const contentWidth = Number(editorElement?.style.width.replace('px', '')); - if (code !== queryString) { - setCode(queryString); - calculateVisibleCode(contentWidth); - } + if (code !== queryString) { + setCode(queryString); + calculateVisibleCode(editor1.current.getLayoutInfo().width); } } }, [calculateVisibleCode, code, isCompactFocused, queryString]); @@ -944,9 +930,14 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter, onQuerySubmit ); + if (!isCodeEditorExpanded) { editor.onDidContentSizeChange((e) => { - updateHeight(editor); + // @ts-expect-error the property _oldContentHeight exists on the event object received but + // is not available on the type definition + if (e.contentHeight !== e._oldContentHeight) { + updateHeight(editor); + } }); } }} From 4bfe566c18f6c6ef7e347c2a4e0d59b08da6ad51 Mon Sep 17 00:00:00 2001 From: Kevin Delemme <kevin.delemme@elastic.co> Date: Wed, 24 Apr 2024 11:53:39 -0400 Subject: [PATCH 127/183] Use internal formatErrors (#181065) --- .../src/decode_request_params.test.ts | 3 ++- .../src/decode_request_params.ts | 11 +++++------ packages/kbn-server-route-repository/tsconfig.json | 1 - .../apm_routes/register_apm_server_routes.test.ts | 3 ++- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/kbn-server-route-repository/src/decode_request_params.test.ts b/packages/kbn-server-route-repository/src/decode_request_params.test.ts index 8f7e6f421cd36..0cb8d280f28e4 100644 --- a/packages/kbn-server-route-repository/src/decode_request_params.test.ts +++ b/packages/kbn-server-route-repository/src/decode_request_params.test.ts @@ -69,7 +69,8 @@ describe('decodeRequestParams', () => { }; expect(decode).toThrowErrorMatchingInlineSnapshot(` - "Excess keys are not allowed: + "Failed to validate: + Excess keys are not allowed: path.extraKey" `); }); diff --git a/packages/kbn-server-route-repository/src/decode_request_params.ts b/packages/kbn-server-route-repository/src/decode_request_params.ts index e9b75ded73d01..0893524a3f9e9 100644 --- a/packages/kbn-server-route-repository/src/decode_request_params.ts +++ b/packages/kbn-server-route-repository/src/decode_request_params.ts @@ -5,12 +5,11 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import * as t from 'io-ts'; -import { omitBy, isPlainObject, isEmpty } from 'lodash'; -import { isLeft } from 'fp-ts/lib/Either'; import Boom from '@hapi/boom'; -import { strictKeysRt } from '@kbn/io-ts-utils'; -import { formatErrors } from '@kbn/securitysolution-io-ts-utils'; +import { formatErrors, strictKeysRt } from '@kbn/io-ts-utils'; +import { isLeft } from 'fp-ts/lib/Either'; +import * as t from 'io-ts'; +import { isEmpty, isPlainObject, omitBy } from 'lodash'; import { RouteParamsRT } from './typings'; interface KibanaRequestParams { @@ -36,7 +35,7 @@ export function decodeRequestParams<T extends RouteParamsRT>( const result = strictKeysRt(paramsRt).decode(paramMap); if (isLeft(result)) { - throw Boom.badRequest(formatErrors(result.left).join('|')); + throw Boom.badRequest(formatErrors(result.left)); } return result.right; diff --git a/packages/kbn-server-route-repository/tsconfig.json b/packages/kbn-server-route-repository/tsconfig.json index f5f84f5114b7d..67a5631bca59e 100644 --- a/packages/kbn-server-route-repository/tsconfig.json +++ b/packages/kbn-server-route-repository/tsconfig.json @@ -18,7 +18,6 @@ "@kbn/core-http-server", "@kbn/core-lifecycle-server", "@kbn/logging", - "@kbn/securitysolution-io-ts-utils" ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts b/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts index 47ada9ee20f4c..c5e652fa910d0 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts @@ -256,7 +256,8 @@ describe('createApi', () => { expect(response.custom).toHaveBeenCalledWith({ body: { attributes: { _inspect: [], data: null }, - message: 'Invalid value "1" supplied to "query,_inspect"', + message: `Failed to validate: + in /query/_inspect: 1 does not match expected type pipe(JSON, boolean)`, }, statusCode: 400, }); From ed2f63bf7e540d63229dfc32dc6d8f6a6b895485 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova <julia.rechkunova@elastic.co> Date: Wed, 24 Apr 2024 18:18:42 +0200 Subject: [PATCH 128/183] [Discover] Split functional tests in more groups (#180046) ## Summary This PR splits existing functional tests into more groups so each of them finishes running quicker. - `group1` into `group1` and `group5` - `group2` into `group2_data_grid1`, `group2_data_grid2`, `group2_data_grid3` - `group3` into `group3` and `group6` - `group4` into `group4`, `group7` and `group8` (almost empty) --------- Co-authored-by: Davis McPhee <davis.mcphee@elastic.co> --- .buildkite/ftr_configs.yml | 8 ++++- test/functional/apps/discover/group1/index.ts | 10 ------ .../_data_grid.ts | 0 .../_data_grid_context.ts | 0 .../_data_grid_copy_to_clipboard.ts | 0 .../_data_grid_doc_navigation.ts | 0 .../_data_grid_doc_table.ts | 0 .../{group2 => group2_data_grid1}/config.ts | 0 .../{group2 => group2_data_grid1}/index.ts | 10 +----- .../_data_grid_field_data.ts | 0 .../_data_grid_field_tokens.ts | 0 .../_data_grid_footer.ts | 0 .../_data_grid_new_line.ts | 0 .../apps/discover/group2_data_grid2/config.ts | 18 ++++++++++ .../apps/discover/group2_data_grid2/index.ts | 28 +++++++++++++++ .../_data_grid_pagination.ts | 0 .../_data_grid_row_height.ts | 0 .../_data_grid_row_navigation.ts | 0 .../_data_grid_sample_size.ts | 0 .../apps/discover/group2_data_grid3/config.ts | 18 ++++++++++ .../apps/discover/group2_data_grid3/index.ts | 28 +++++++++++++++ test/functional/apps/discover/group3/index.ts | 5 --- test/functional/apps/discover/group4/index.ts | 8 ----- .../{group1 => group5}/_field_data.ts | 0 .../_field_data_with_fields_api.ts | 0 .../{group1 => group5}/_filter_editor.ts | 0 .../{group1 => group5}/_greeting_screen.ts | 0 .../discover/{group1 => group5}/_inspector.ts | 0 .../{group1 => group5}/_large_string.ts | 0 .../discover/{group1 => group5}/_no_data.ts | 0 .../{group1 => group5}/_shared_links.ts | 0 .../{group1 => group5}/_source_filters.ts | 0 .../discover/{group1 => group5}/_url_state.ts | 0 .../functional/apps/discover/group5/config.ts | 18 ++++++++++ test/functional/apps/discover/group5/index.ts | 34 +++++++++++++++++++ .../discover/{group3 => group6}/_sidebar.ts | 0 .../_sidebar_field_stats.ts | 0 .../{group3 => group6}/_time_field_column.ts | 0 .../_unsaved_changes_badge.ts | 0 .../{group3 => group6}/_view_mode_toggle.ts | 0 .../functional/apps/discover/group6/config.ts | 18 ++++++++++ test/functional/apps/discover/group6/index.ts | 29 ++++++++++++++++ .../{group4 => group7}/_huge_fields.ts | 0 .../_indexpattern_with_unmapped_fields.ts | 0 .../_indexpattern_without_timefield.ts | 0 .../{group4 => group7}/_new_search.ts | 0 .../_request_cancellation.ts | 0 .../_runtime_fields_editor.ts | 0 .../_search_on_page_load.ts | 0 .../functional/apps/discover/group7/config.ts | 18 ++++++++++ test/functional/apps/discover/group7/index.ts | 31 +++++++++++++++++ .../{group4 => group8}/_hide_announcements.ts | 0 .../functional/apps/discover/group8/config.ts | 18 ++++++++++ test/functional/apps/discover/group8/index.ts | 25 ++++++++++++++ test/functional/firefox/discover.config.ts | 8 ++++- .../common/discover/group1/index.ts | 1 - .../common/discover/group2/index.ts | 1 - .../common/discover/group3/index.ts | 2 -- .../{group2 => group4}/_adhoc_data_views.ts | 0 .../common/discover/group4/index.ts | 25 ++++++++++++++ .../discover/{group1 => group5}/_url_state.ts | 0 .../common/discover/group5/index.ts | 25 ++++++++++++++ .../discover/{group3 => group6}/_sidebar.ts | 0 .../_unsaved_changes_badge.ts | 0 .../common/discover/group6/index.ts | 26 ++++++++++++++ .../common_configs/config.group5.ts | 3 ++ .../search/common_configs/config.group5.ts | 3 ++ .../security/common_configs/config.group5.ts | 3 ++ 68 files changed, 383 insertions(+), 38 deletions(-) rename test/functional/apps/discover/{group2 => group2_data_grid1}/_data_grid.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid1}/_data_grid_context.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid1}/_data_grid_copy_to_clipboard.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid1}/_data_grid_doc_navigation.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid1}/_data_grid_doc_table.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid1}/config.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid1}/index.ts (67%) rename test/functional/apps/discover/{group2 => group2_data_grid2}/_data_grid_field_data.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid2}/_data_grid_field_tokens.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid2}/_data_grid_footer.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid2}/_data_grid_new_line.ts (100%) create mode 100644 test/functional/apps/discover/group2_data_grid2/config.ts create mode 100644 test/functional/apps/discover/group2_data_grid2/index.ts rename test/functional/apps/discover/{group2 => group2_data_grid3}/_data_grid_pagination.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid3}/_data_grid_row_height.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid3}/_data_grid_row_navigation.ts (100%) rename test/functional/apps/discover/{group2 => group2_data_grid3}/_data_grid_sample_size.ts (100%) create mode 100644 test/functional/apps/discover/group2_data_grid3/config.ts create mode 100644 test/functional/apps/discover/group2_data_grid3/index.ts rename test/functional/apps/discover/{group1 => group5}/_field_data.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_field_data_with_fields_api.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_filter_editor.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_greeting_screen.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_inspector.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_large_string.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_no_data.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_shared_links.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_source_filters.ts (100%) rename test/functional/apps/discover/{group1 => group5}/_url_state.ts (100%) create mode 100644 test/functional/apps/discover/group5/config.ts create mode 100644 test/functional/apps/discover/group5/index.ts rename test/functional/apps/discover/{group3 => group6}/_sidebar.ts (100%) rename test/functional/apps/discover/{group3 => group6}/_sidebar_field_stats.ts (100%) rename test/functional/apps/discover/{group3 => group6}/_time_field_column.ts (100%) rename test/functional/apps/discover/{group3 => group6}/_unsaved_changes_badge.ts (100%) rename test/functional/apps/discover/{group3 => group6}/_view_mode_toggle.ts (100%) create mode 100644 test/functional/apps/discover/group6/config.ts create mode 100644 test/functional/apps/discover/group6/index.ts rename test/functional/apps/discover/{group4 => group7}/_huge_fields.ts (100%) rename test/functional/apps/discover/{group4 => group7}/_indexpattern_with_unmapped_fields.ts (100%) rename test/functional/apps/discover/{group4 => group7}/_indexpattern_without_timefield.ts (100%) rename test/functional/apps/discover/{group4 => group7}/_new_search.ts (100%) rename test/functional/apps/discover/{group4 => group7}/_request_cancellation.ts (100%) rename test/functional/apps/discover/{group4 => group7}/_runtime_fields_editor.ts (100%) rename test/functional/apps/discover/{group4 => group7}/_search_on_page_load.ts (100%) create mode 100644 test/functional/apps/discover/group7/config.ts create mode 100644 test/functional/apps/discover/group7/index.ts rename test/functional/apps/discover/{group4 => group8}/_hide_announcements.ts (100%) create mode 100644 test/functional/apps/discover/group8/config.ts create mode 100644 test/functional/apps/discover/group8/index.ts rename x-pack/test_serverless/functional/test_suites/common/discover/{group2 => group4}/_adhoc_data_views.ts (100%) create mode 100644 x-pack/test_serverless/functional/test_suites/common/discover/group4/index.ts rename x-pack/test_serverless/functional/test_suites/common/discover/{group1 => group5}/_url_state.ts (100%) create mode 100644 x-pack/test_serverless/functional/test_suites/common/discover/group5/index.ts rename x-pack/test_serverless/functional/test_suites/common/discover/{group3 => group6}/_sidebar.ts (100%) rename x-pack/test_serverless/functional/test_suites/common/discover/{group3 => group6}/_unsaved_changes_badge.ts (100%) create mode 100644 x-pack/test_serverless/functional/test_suites/common/discover/group6/index.ts diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index a4c7c64762299..b17a63170f907 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -115,9 +115,15 @@ enabled: - test/functional/apps/discover/classic/config.ts - test/functional/apps/discover/embeddable/config.ts - test/functional/apps/discover/group1/config.ts - - test/functional/apps/discover/group2/config.ts + - test/functional/apps/discover/group2_data_grid1/config.ts + - test/functional/apps/discover/group2_data_grid2/config.ts + - test/functional/apps/discover/group2_data_grid3/config.ts - test/functional/apps/discover/group3/config.ts - test/functional/apps/discover/group4/config.ts + - test/functional/apps/discover/group5/config.ts + - test/functional/apps/discover/group6/config.ts + - test/functional/apps/discover/group7/config.ts + - test/functional/apps/discover/group8/config.ts - test/functional/apps/getting_started/config.ts - test/functional/apps/home/config.ts - test/functional/apps/kibana_overview/config.ts diff --git a/test/functional/apps/discover/group1/index.ts b/test/functional/apps/discover/group1/index.ts index 375954797c3ca..2ca6413a11c22 100644 --- a/test/functional/apps/discover/group1/index.ts +++ b/test/functional/apps/discover/group1/index.ts @@ -20,23 +20,13 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); }); - loadTestFile(require.resolve('./_no_data')); loadTestFile(require.resolve('./_discover')); loadTestFile(require.resolve('./_discover_accessibility')); loadTestFile(require.resolve('./_discover_histogram_breakdown')); loadTestFile(require.resolve('./_discover_histogram')); loadTestFile(require.resolve('./_doc_accessibility')); - loadTestFile(require.resolve('./_filter_editor')); loadTestFile(require.resolve('./_errors')); - loadTestFile(require.resolve('./_field_data')); - loadTestFile(require.resolve('./_field_data_with_fields_api')); - loadTestFile(require.resolve('./_shared_links')); - loadTestFile(require.resolve('./_source_filters')); - loadTestFile(require.resolve('./_large_string')); - loadTestFile(require.resolve('./_greeting_screen')); - loadTestFile(require.resolve('./_inspector')); loadTestFile(require.resolve('./_date_nanos')); loadTestFile(require.resolve('./_date_nanos_mixed')); - loadTestFile(require.resolve('./_url_state')); }); } diff --git a/test/functional/apps/discover/group2/_data_grid.ts b/test/functional/apps/discover/group2_data_grid1/_data_grid.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid.ts rename to test/functional/apps/discover/group2_data_grid1/_data_grid.ts diff --git a/test/functional/apps/discover/group2/_data_grid_context.ts b/test/functional/apps/discover/group2_data_grid1/_data_grid_context.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_context.ts rename to test/functional/apps/discover/group2_data_grid1/_data_grid_context.ts diff --git a/test/functional/apps/discover/group2/_data_grid_copy_to_clipboard.ts b/test/functional/apps/discover/group2_data_grid1/_data_grid_copy_to_clipboard.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_copy_to_clipboard.ts rename to test/functional/apps/discover/group2_data_grid1/_data_grid_copy_to_clipboard.ts diff --git a/test/functional/apps/discover/group2/_data_grid_doc_navigation.ts b/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_navigation.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_doc_navigation.ts rename to test/functional/apps/discover/group2_data_grid1/_data_grid_doc_navigation.ts diff --git a/test/functional/apps/discover/group2/_data_grid_doc_table.ts b/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_doc_table.ts rename to test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts diff --git a/test/functional/apps/discover/group2/config.ts b/test/functional/apps/discover/group2_data_grid1/config.ts similarity index 100% rename from test/functional/apps/discover/group2/config.ts rename to test/functional/apps/discover/group2_data_grid1/config.ts diff --git a/test/functional/apps/discover/group2/index.ts b/test/functional/apps/discover/group2_data_grid1/index.ts similarity index 67% rename from test/functional/apps/discover/group2/index.ts rename to test/functional/apps/discover/group2_data_grid1/index.ts index 2639601e12c17..c9e9e9739337a 100644 --- a/test/functional/apps/discover/group2/index.ts +++ b/test/functional/apps/discover/group2_data_grid1/index.ts @@ -11,7 +11,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const browser = getService('browser'); - describe('discover/group2', function () { + describe('discover/group2/data_grid1', function () { before(async function () { await browser.setWindowSize(1600, 1200); }); @@ -22,16 +22,8 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./_data_grid')); loadTestFile(require.resolve('./_data_grid_context')); - loadTestFile(require.resolve('./_data_grid_field_data')); loadTestFile(require.resolve('./_data_grid_doc_navigation')); - loadTestFile(require.resolve('./_data_grid_row_navigation')); loadTestFile(require.resolve('./_data_grid_doc_table')); loadTestFile(require.resolve('./_data_grid_copy_to_clipboard')); - loadTestFile(require.resolve('./_data_grid_row_height')); - loadTestFile(require.resolve('./_data_grid_new_line')); - loadTestFile(require.resolve('./_data_grid_sample_size')); - loadTestFile(require.resolve('./_data_grid_pagination')); - loadTestFile(require.resolve('./_data_grid_footer')); - loadTestFile(require.resolve('./_data_grid_field_tokens')); }); } diff --git a/test/functional/apps/discover/group2/_data_grid_field_data.ts b/test/functional/apps/discover/group2_data_grid2/_data_grid_field_data.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_field_data.ts rename to test/functional/apps/discover/group2_data_grid2/_data_grid_field_data.ts diff --git a/test/functional/apps/discover/group2/_data_grid_field_tokens.ts b/test/functional/apps/discover/group2_data_grid2/_data_grid_field_tokens.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_field_tokens.ts rename to test/functional/apps/discover/group2_data_grid2/_data_grid_field_tokens.ts diff --git a/test/functional/apps/discover/group2/_data_grid_footer.ts b/test/functional/apps/discover/group2_data_grid2/_data_grid_footer.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_footer.ts rename to test/functional/apps/discover/group2_data_grid2/_data_grid_footer.ts diff --git a/test/functional/apps/discover/group2/_data_grid_new_line.ts b/test/functional/apps/discover/group2_data_grid2/_data_grid_new_line.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_new_line.ts rename to test/functional/apps/discover/group2_data_grid2/_data_grid_new_line.ts diff --git a/test/functional/apps/discover/group2_data_grid2/config.ts b/test/functional/apps/discover/group2_data_grid2/config.ts new file mode 100644 index 0000000000000..a70a190ca63f8 --- /dev/null +++ b/test/functional/apps/discover/group2_data_grid2/config.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('../../../config.base.js')); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + }; +} diff --git a/test/functional/apps/discover/group2_data_grid2/index.ts b/test/functional/apps/discover/group2_data_grid2/index.ts new file mode 100644 index 0000000000000..1d3736cafe80b --- /dev/null +++ b/test/functional/apps/discover/group2_data_grid2/index.ts @@ -0,0 +1,28 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group2/data_grid2', function () { + before(async function () { + await browser.setWindowSize(1600, 1200); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_data_grid_new_line')); + loadTestFile(require.resolve('./_data_grid_footer')); + loadTestFile(require.resolve('./_data_grid_field_data')); + loadTestFile(require.resolve('./_data_grid_field_tokens')); + }); +} diff --git a/test/functional/apps/discover/group2/_data_grid_pagination.ts b/test/functional/apps/discover/group2_data_grid3/_data_grid_pagination.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_pagination.ts rename to test/functional/apps/discover/group2_data_grid3/_data_grid_pagination.ts diff --git a/test/functional/apps/discover/group2/_data_grid_row_height.ts b/test/functional/apps/discover/group2_data_grid3/_data_grid_row_height.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_row_height.ts rename to test/functional/apps/discover/group2_data_grid3/_data_grid_row_height.ts diff --git a/test/functional/apps/discover/group2/_data_grid_row_navigation.ts b/test/functional/apps/discover/group2_data_grid3/_data_grid_row_navigation.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_row_navigation.ts rename to test/functional/apps/discover/group2_data_grid3/_data_grid_row_navigation.ts diff --git a/test/functional/apps/discover/group2/_data_grid_sample_size.ts b/test/functional/apps/discover/group2_data_grid3/_data_grid_sample_size.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_grid_sample_size.ts rename to test/functional/apps/discover/group2_data_grid3/_data_grid_sample_size.ts diff --git a/test/functional/apps/discover/group2_data_grid3/config.ts b/test/functional/apps/discover/group2_data_grid3/config.ts new file mode 100644 index 0000000000000..a70a190ca63f8 --- /dev/null +++ b/test/functional/apps/discover/group2_data_grid3/config.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('../../../config.base.js')); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + }; +} diff --git a/test/functional/apps/discover/group2_data_grid3/index.ts b/test/functional/apps/discover/group2_data_grid3/index.ts new file mode 100644 index 0000000000000..7200eb1e9bf10 --- /dev/null +++ b/test/functional/apps/discover/group2_data_grid3/index.ts @@ -0,0 +1,28 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group2/data_grid3', function () { + before(async function () { + await browser.setWindowSize(1600, 1200); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_data_grid_row_navigation')); + loadTestFile(require.resolve('./_data_grid_row_height')); + loadTestFile(require.resolve('./_data_grid_sample_size')); + loadTestFile(require.resolve('./_data_grid_pagination')); + }); +} diff --git a/test/functional/apps/discover/group3/index.ts b/test/functional/apps/discover/group3/index.ts index a80ae44e49801..582710e419a75 100644 --- a/test/functional/apps/discover/group3/index.ts +++ b/test/functional/apps/discover/group3/index.ts @@ -21,14 +21,9 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { }); loadTestFile(require.resolve('./_default_columns')); - loadTestFile(require.resolve('./_time_field_column')); loadTestFile(require.resolve('./_drag_drop')); - loadTestFile(require.resolve('./_sidebar')); - loadTestFile(require.resolve('./_sidebar_field_stats')); loadTestFile(require.resolve('./_request_counts')); loadTestFile(require.resolve('./_doc_viewer')); - loadTestFile(require.resolve('./_view_mode_toggle')); - loadTestFile(require.resolve('./_unsaved_changes_badge')); loadTestFile(require.resolve('./_panels_toggle')); loadTestFile(require.resolve('./_lens_vis')); }); diff --git a/test/functional/apps/discover/group4/index.ts b/test/functional/apps/discover/group4/index.ts index 4a145b06cf248..211b4501ed329 100644 --- a/test/functional/apps/discover/group4/index.ts +++ b/test/functional/apps/discover/group4/index.ts @@ -20,22 +20,14 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); }); - loadTestFile(require.resolve('./_indexpattern_without_timefield')); loadTestFile(require.resolve('./_discover_fields_api')); loadTestFile(require.resolve('./_adhoc_data_views')); loadTestFile(require.resolve('./_esql_view')); - loadTestFile(require.resolve('./_indexpattern_with_unmapped_fields')); - loadTestFile(require.resolve('./_runtime_fields_editor')); - loadTestFile(require.resolve('./_huge_fields')); loadTestFile(require.resolve('./_date_nested')); - loadTestFile(require.resolve('./_search_on_page_load')); loadTestFile(require.resolve('./_chart_hidden')); loadTestFile(require.resolve('./_context_encoded_url_params')); - loadTestFile(require.resolve('./_hide_announcements')); loadTestFile(require.resolve('./_data_view_edit')); loadTestFile(require.resolve('./_field_list_new_fields')); - loadTestFile(require.resolve('./_request_cancellation')); - loadTestFile(require.resolve('./_new_search')); loadTestFile(require.resolve('./_document_comparison')); }); } diff --git a/test/functional/apps/discover/group1/_field_data.ts b/test/functional/apps/discover/group5/_field_data.ts similarity index 100% rename from test/functional/apps/discover/group1/_field_data.ts rename to test/functional/apps/discover/group5/_field_data.ts diff --git a/test/functional/apps/discover/group1/_field_data_with_fields_api.ts b/test/functional/apps/discover/group5/_field_data_with_fields_api.ts similarity index 100% rename from test/functional/apps/discover/group1/_field_data_with_fields_api.ts rename to test/functional/apps/discover/group5/_field_data_with_fields_api.ts diff --git a/test/functional/apps/discover/group1/_filter_editor.ts b/test/functional/apps/discover/group5/_filter_editor.ts similarity index 100% rename from test/functional/apps/discover/group1/_filter_editor.ts rename to test/functional/apps/discover/group5/_filter_editor.ts diff --git a/test/functional/apps/discover/group1/_greeting_screen.ts b/test/functional/apps/discover/group5/_greeting_screen.ts similarity index 100% rename from test/functional/apps/discover/group1/_greeting_screen.ts rename to test/functional/apps/discover/group5/_greeting_screen.ts diff --git a/test/functional/apps/discover/group1/_inspector.ts b/test/functional/apps/discover/group5/_inspector.ts similarity index 100% rename from test/functional/apps/discover/group1/_inspector.ts rename to test/functional/apps/discover/group5/_inspector.ts diff --git a/test/functional/apps/discover/group1/_large_string.ts b/test/functional/apps/discover/group5/_large_string.ts similarity index 100% rename from test/functional/apps/discover/group1/_large_string.ts rename to test/functional/apps/discover/group5/_large_string.ts diff --git a/test/functional/apps/discover/group1/_no_data.ts b/test/functional/apps/discover/group5/_no_data.ts similarity index 100% rename from test/functional/apps/discover/group1/_no_data.ts rename to test/functional/apps/discover/group5/_no_data.ts diff --git a/test/functional/apps/discover/group1/_shared_links.ts b/test/functional/apps/discover/group5/_shared_links.ts similarity index 100% rename from test/functional/apps/discover/group1/_shared_links.ts rename to test/functional/apps/discover/group5/_shared_links.ts diff --git a/test/functional/apps/discover/group1/_source_filters.ts b/test/functional/apps/discover/group5/_source_filters.ts similarity index 100% rename from test/functional/apps/discover/group1/_source_filters.ts rename to test/functional/apps/discover/group5/_source_filters.ts diff --git a/test/functional/apps/discover/group1/_url_state.ts b/test/functional/apps/discover/group5/_url_state.ts similarity index 100% rename from test/functional/apps/discover/group1/_url_state.ts rename to test/functional/apps/discover/group5/_url_state.ts diff --git a/test/functional/apps/discover/group5/config.ts b/test/functional/apps/discover/group5/config.ts new file mode 100644 index 0000000000000..a70a190ca63f8 --- /dev/null +++ b/test/functional/apps/discover/group5/config.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('../../../config.base.js')); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + }; +} diff --git a/test/functional/apps/discover/group5/index.ts b/test/functional/apps/discover/group5/index.ts new file mode 100644 index 0000000000000..bc875494307d6 --- /dev/null +++ b/test/functional/apps/discover/group5/index.ts @@ -0,0 +1,34 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group5', function () { + before(async function () { + await browser.setWindowSize(1300, 800); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_no_data')); + loadTestFile(require.resolve('./_filter_editor')); + loadTestFile(require.resolve('./_field_data')); + loadTestFile(require.resolve('./_field_data_with_fields_api')); + loadTestFile(require.resolve('./_shared_links')); + loadTestFile(require.resolve('./_source_filters')); + loadTestFile(require.resolve('./_large_string')); + loadTestFile(require.resolve('./_greeting_screen')); + loadTestFile(require.resolve('./_inspector')); + loadTestFile(require.resolve('./_url_state')); + }); +} diff --git a/test/functional/apps/discover/group3/_sidebar.ts b/test/functional/apps/discover/group6/_sidebar.ts similarity index 100% rename from test/functional/apps/discover/group3/_sidebar.ts rename to test/functional/apps/discover/group6/_sidebar.ts diff --git a/test/functional/apps/discover/group3/_sidebar_field_stats.ts b/test/functional/apps/discover/group6/_sidebar_field_stats.ts similarity index 100% rename from test/functional/apps/discover/group3/_sidebar_field_stats.ts rename to test/functional/apps/discover/group6/_sidebar_field_stats.ts diff --git a/test/functional/apps/discover/group3/_time_field_column.ts b/test/functional/apps/discover/group6/_time_field_column.ts similarity index 100% rename from test/functional/apps/discover/group3/_time_field_column.ts rename to test/functional/apps/discover/group6/_time_field_column.ts diff --git a/test/functional/apps/discover/group3/_unsaved_changes_badge.ts b/test/functional/apps/discover/group6/_unsaved_changes_badge.ts similarity index 100% rename from test/functional/apps/discover/group3/_unsaved_changes_badge.ts rename to test/functional/apps/discover/group6/_unsaved_changes_badge.ts diff --git a/test/functional/apps/discover/group3/_view_mode_toggle.ts b/test/functional/apps/discover/group6/_view_mode_toggle.ts similarity index 100% rename from test/functional/apps/discover/group3/_view_mode_toggle.ts rename to test/functional/apps/discover/group6/_view_mode_toggle.ts diff --git a/test/functional/apps/discover/group6/config.ts b/test/functional/apps/discover/group6/config.ts new file mode 100644 index 0000000000000..a70a190ca63f8 --- /dev/null +++ b/test/functional/apps/discover/group6/config.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('../../../config.base.js')); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + }; +} diff --git a/test/functional/apps/discover/group6/index.ts b/test/functional/apps/discover/group6/index.ts new file mode 100644 index 0000000000000..f71d96e63d2fd --- /dev/null +++ b/test/functional/apps/discover/group6/index.ts @@ -0,0 +1,29 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group6', function () { + before(async function () { + await browser.setWindowSize(1300, 800); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_sidebar')); + loadTestFile(require.resolve('./_sidebar_field_stats')); + loadTestFile(require.resolve('./_time_field_column')); + loadTestFile(require.resolve('./_unsaved_changes_badge')); + loadTestFile(require.resolve('./_view_mode_toggle')); + }); +} diff --git a/test/functional/apps/discover/group4/_huge_fields.ts b/test/functional/apps/discover/group7/_huge_fields.ts similarity index 100% rename from test/functional/apps/discover/group4/_huge_fields.ts rename to test/functional/apps/discover/group7/_huge_fields.ts diff --git a/test/functional/apps/discover/group4/_indexpattern_with_unmapped_fields.ts b/test/functional/apps/discover/group7/_indexpattern_with_unmapped_fields.ts similarity index 100% rename from test/functional/apps/discover/group4/_indexpattern_with_unmapped_fields.ts rename to test/functional/apps/discover/group7/_indexpattern_with_unmapped_fields.ts diff --git a/test/functional/apps/discover/group4/_indexpattern_without_timefield.ts b/test/functional/apps/discover/group7/_indexpattern_without_timefield.ts similarity index 100% rename from test/functional/apps/discover/group4/_indexpattern_without_timefield.ts rename to test/functional/apps/discover/group7/_indexpattern_without_timefield.ts diff --git a/test/functional/apps/discover/group4/_new_search.ts b/test/functional/apps/discover/group7/_new_search.ts similarity index 100% rename from test/functional/apps/discover/group4/_new_search.ts rename to test/functional/apps/discover/group7/_new_search.ts diff --git a/test/functional/apps/discover/group4/_request_cancellation.ts b/test/functional/apps/discover/group7/_request_cancellation.ts similarity index 100% rename from test/functional/apps/discover/group4/_request_cancellation.ts rename to test/functional/apps/discover/group7/_request_cancellation.ts diff --git a/test/functional/apps/discover/group4/_runtime_fields_editor.ts b/test/functional/apps/discover/group7/_runtime_fields_editor.ts similarity index 100% rename from test/functional/apps/discover/group4/_runtime_fields_editor.ts rename to test/functional/apps/discover/group7/_runtime_fields_editor.ts diff --git a/test/functional/apps/discover/group4/_search_on_page_load.ts b/test/functional/apps/discover/group7/_search_on_page_load.ts similarity index 100% rename from test/functional/apps/discover/group4/_search_on_page_load.ts rename to test/functional/apps/discover/group7/_search_on_page_load.ts diff --git a/test/functional/apps/discover/group7/config.ts b/test/functional/apps/discover/group7/config.ts new file mode 100644 index 0000000000000..a70a190ca63f8 --- /dev/null +++ b/test/functional/apps/discover/group7/config.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('../../../config.base.js')); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + }; +} diff --git a/test/functional/apps/discover/group7/index.ts b/test/functional/apps/discover/group7/index.ts new file mode 100644 index 0000000000000..3abc84514f15d --- /dev/null +++ b/test/functional/apps/discover/group7/index.ts @@ -0,0 +1,31 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group7', function () { + before(async function () { + await browser.setWindowSize(1600, 1200); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_indexpattern_without_timefield')); + loadTestFile(require.resolve('./_indexpattern_with_unmapped_fields')); + loadTestFile(require.resolve('./_runtime_fields_editor')); + loadTestFile(require.resolve('./_huge_fields')); + loadTestFile(require.resolve('./_search_on_page_load')); + loadTestFile(require.resolve('./_request_cancellation')); + loadTestFile(require.resolve('./_new_search')); + }); +} diff --git a/test/functional/apps/discover/group4/_hide_announcements.ts b/test/functional/apps/discover/group8/_hide_announcements.ts similarity index 100% rename from test/functional/apps/discover/group4/_hide_announcements.ts rename to test/functional/apps/discover/group8/_hide_announcements.ts diff --git a/test/functional/apps/discover/group8/config.ts b/test/functional/apps/discover/group8/config.ts new file mode 100644 index 0000000000000..a70a190ca63f8 --- /dev/null +++ b/test/functional/apps/discover/group8/config.ts @@ -0,0 +1,18 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('../../../config.base.js')); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + }; +} diff --git a/test/functional/apps/discover/group8/index.ts b/test/functional/apps/discover/group8/index.ts new file mode 100644 index 0000000000000..09aaca23e8b95 --- /dev/null +++ b/test/functional/apps/discover/group8/index.ts @@ -0,0 +1,25 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group8', function () { + before(async function () { + await browser.setWindowSize(1600, 1200); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_hide_announcements')); + }); +} diff --git a/test/functional/firefox/discover.config.ts b/test/functional/firefox/discover.config.ts index 8b7e7205cd434..5c9f9c0939754 100644 --- a/test/functional/firefox/discover.config.ts +++ b/test/functional/firefox/discover.config.ts @@ -19,9 +19,15 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { testFiles: [ require.resolve('../apps/discover/classic'), require.resolve('../apps/discover/group1'), - require.resolve('../apps/discover/group2'), + require.resolve('../apps/discover/group2_data_grid1'), + require.resolve('../apps/discover/group2_data_grid2'), + require.resolve('../apps/discover/group2_data_grid3'), require.resolve('../apps/discover/group3'), require.resolve('../apps/discover/group4'), + require.resolve('../apps/discover/group5'), + require.resolve('../apps/discover/group6'), + require.resolve('../apps/discover/group7'), + require.resolve('../apps/discover/group8'), ], junit: { diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group1/index.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group1/index.ts index 4ad60320df38b..9fc6d4447e8c7 100644 --- a/x-pack/test_serverless/functional/test_suites/common/discover/group1/index.ts +++ b/x-pack/test_serverless/functional/test_suites/common/discover/group1/index.ts @@ -22,6 +22,5 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./_discover')); loadTestFile(require.resolve('./_discover_histogram')); - loadTestFile(require.resolve('./_url_state')); }); } diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group2/index.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group2/index.ts index c579eca3bb7bd..658b92845ffca 100644 --- a/x-pack/test_serverless/functional/test_suites/common/discover/group2/index.ts +++ b/x-pack/test_serverless/functional/test_suites/common/discover/group2/index.ts @@ -22,6 +22,5 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./_data_grid_doc_navigation')); loadTestFile(require.resolve('./_data_grid_doc_table')); - loadTestFile(require.resolve('./_adhoc_data_views')); }); } diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group3/index.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group3/index.ts index 9f322013d986b..70d95fef41958 100644 --- a/x-pack/test_serverless/functional/test_suites/common/discover/group3/index.ts +++ b/x-pack/test_serverless/functional/test_suites/common/discover/group3/index.ts @@ -20,8 +20,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); }); - loadTestFile(require.resolve('./_sidebar')); loadTestFile(require.resolve('./_request_counts')); - loadTestFile(require.resolve('./_unsaved_changes_badge')); }); } diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group2/_adhoc_data_views.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group4/_adhoc_data_views.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/common/discover/group2/_adhoc_data_views.ts rename to x-pack/test_serverless/functional/test_suites/common/discover/group4/_adhoc_data_views.ts diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group4/index.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group4/index.ts new file mode 100644 index 0000000000000..c262798065000 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/common/discover/group4/index.ts @@ -0,0 +1,25 @@ +/* + * 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 { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group4', function () { + before(async function () { + await browser.setWindowSize(1600, 1200); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_adhoc_data_views')); + }); +} diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group1/_url_state.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group5/_url_state.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/common/discover/group1/_url_state.ts rename to x-pack/test_serverless/functional/test_suites/common/discover/group5/_url_state.ts diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group5/index.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group5/index.ts new file mode 100644 index 0000000000000..a38a6d4e33dd6 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/common/discover/group5/index.ts @@ -0,0 +1,25 @@ +/* + * 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 { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group5', function () { + before(async function () { + await browser.setWindowSize(1300, 800); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_url_state')); + }); +} diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group3/_sidebar.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group6/_sidebar.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/common/discover/group3/_sidebar.ts rename to x-pack/test_serverless/functional/test_suites/common/discover/group6/_sidebar.ts diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group3/_unsaved_changes_badge.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group6/_unsaved_changes_badge.ts similarity index 100% rename from x-pack/test_serverless/functional/test_suites/common/discover/group3/_unsaved_changes_badge.ts rename to x-pack/test_serverless/functional/test_suites/common/discover/group6/_unsaved_changes_badge.ts diff --git a/x-pack/test_serverless/functional/test_suites/common/discover/group6/index.ts b/x-pack/test_serverless/functional/test_suites/common/discover/group6/index.ts new file mode 100644 index 0000000000000..8857ebe9bf310 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/common/discover/group6/index.ts @@ -0,0 +1,26 @@ +/* + * 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 { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group6', function () { + before(async function () { + await browser.setWindowSize(1300, 800); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_sidebar')); + loadTestFile(require.resolve('./_unsaved_changes_badge')); + }); +} diff --git a/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group5.ts b/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group5.ts index 7b8fb4b072847..be3c0098d35d2 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group5.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group5.ts @@ -16,6 +16,9 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { require.resolve('../../common/discover/group1'), require.resolve('../../common/discover/group2'), require.resolve('../../common/discover/group3'), + require.resolve('../../common/discover/group4'), + require.resolve('../../common/discover/group5'), + require.resolve('../../common/discover/group6'), ], junit: { reportName: 'Serverless Observability Functional Tests - Common Group 5', diff --git a/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group5.ts b/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group5.ts index 70cabf59051a9..ad661b474a33d 100644 --- a/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group5.ts +++ b/x-pack/test_serverless/functional/test_suites/search/common_configs/config.group5.ts @@ -16,6 +16,9 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { require.resolve('../../common/discover/group1'), require.resolve('../../common/discover/group2'), require.resolve('../../common/discover/group3'), + require.resolve('../../common/discover/group4'), + require.resolve('../../common/discover/group5'), + require.resolve('../../common/discover/group6'), ], junit: { reportName: 'Serverless Search Functional Tests - Common Group 5', diff --git a/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group5.ts b/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group5.ts index d1637bf34b4fd..c65131e27e9e8 100644 --- a/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group5.ts +++ b/x-pack/test_serverless/functional/test_suites/security/common_configs/config.group5.ts @@ -16,6 +16,9 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { require.resolve('../../common/discover/group1'), require.resolve('../../common/discover/group2'), require.resolve('../../common/discover/group3'), + require.resolve('../../common/discover/group4'), + require.resolve('../../common/discover/group5'), + require.resolve('../../common/discover/group6'), ], junit: { reportName: 'Serverless Security Functional Tests - Common Group 5', From 1eb43c1c797a8a37f1db32e0d611b9a83bd0fb38 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:00:16 +0100 Subject: [PATCH 129/183] skip flaky suite (#170674) --- .../cypress/e2e/response_actions/document_signing.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts index b806323726018..4093581366321 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts @@ -22,7 +22,8 @@ import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; -describe('Document signing:', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/170674 +describe.skip('Document signing:', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse; From fadce7939195ef903f116752db13ddb003eaf1a6 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:01:04 -0400 Subject: [PATCH 130/183] skip failing test suite (#170674) --- .../cypress/e2e/response_actions/document_signing.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts index 4093581366321..ec41ffa31edc9 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/document_signing.cy.ts @@ -23,6 +23,7 @@ import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170674 +// Failing: See https://github.com/elastic/kibana/issues/170674 describe.skip('Document signing:', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; From 14bf23cd0e871742da31ffe4f5114ef9ed9d9dda Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:02:26 +0100 Subject: [PATCH 131/183] skip flaky suite (#170811) --- ...t_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts index 3d92528c2eee7..dfa36e67bb030 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts @@ -22,7 +22,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170811 +describe.skip( 'Unenroll agent from fleet when agent tamper protection is disabled but then is switched to a policy with it enabled', { tags: ['@ess'] }, () => { From 95f9163ddb6a194a1d6b9fe882e6abb2544e3744 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:03:06 -0400 Subject: [PATCH 132/183] skip failing test suite (#170811) --- ...ent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts index dfa36e67bb030..03eef1c4337c2 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_disabled_to_enabled.cy.ts @@ -23,6 +23,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170811 +// Failing: See https://github.com/elastic/kibana/issues/170811 describe.skip( 'Unenroll agent from fleet when agent tamper protection is disabled but then is switched to a policy with it enabled', { tags: ['@ess'] }, From 19f6fc1d1906e7b98874f00812c58c601adba58d Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:03:37 -0400 Subject: [PATCH 133/183] skip failing test suite (#169821) --- .../e2e/response_actions/endpoints_list_response_console.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/endpoints_list_response_console.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/endpoints_list_response_console.cy.ts index 75074b0d3f94a..10a8908684577 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/endpoints_list_response_console.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/endpoints_list_response_console.cy.ts @@ -20,7 +20,8 @@ import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; -describe('Response console', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +// Failing: See https://github.com/elastic/kibana/issues/169821 +describe.skip('Response console', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { beforeEach(() => { login(); }); From fefe90889fa02b5e1c05682d3303d7fd40fc1da1 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:05:01 +0100 Subject: [PATCH 134/183] skip flaky suite (#170817) --- ...t_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts index a9508a13f719b..7ffc7b39c373b 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts @@ -22,7 +22,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170817 +describe.skip( 'Unenroll agent from fleet changing when agent tamper protection is enabled but then is switched to a policy with it disabled', { tags: ['@ess'] }, () => { From 4ba1be2b306baef0329d70710df60cff181e5fcc Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:05:35 -0400 Subject: [PATCH 135/183] skip failing test suite (#170817) --- ...ent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts index 7ffc7b39c373b..b36f7eca756e2 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_disabled.cy.ts @@ -23,6 +23,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170817 +// Failing: See https://github.com/elastic/kibana/issues/170817 describe.skip( 'Unenroll agent from fleet changing when agent tamper protection is enabled but then is switched to a policy with it disabled', { tags: ['@ess'] }, From 5f51e05ffe561524c65314e6bd6145368be4a57c Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:06:23 +0100 Subject: [PATCH 136/183] skip flaky suite (#170816) --- ...nt_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts index a5654734c15e4..bacea254e34c3 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts @@ -21,7 +21,8 @@ import { login } from '../../../tasks/login'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170816 +describe.skip( 'Unenroll agent from fleet changing agent policy when agent tamper protection is enabled but then is switched to a policy with it also enabled', { tags: ['@ess'] }, () => { From f5877fada114a443f3e699c370ed4cb8a96f6c4a Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:06:59 -0400 Subject: [PATCH 137/183] skip failing test suite (#170816) --- ...gent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts index bacea254e34c3..414f18fb1fac7 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/unenroll_agent_from_fleet_changing_policy_from_enabled_to_enabled.cy.ts @@ -22,6 +22,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170816 +// Failing: See https://github.com/elastic/kibana/issues/170816 describe.skip( 'Unenroll agent from fleet changing agent policy when agent tamper protection is enabled but then is switched to a policy with it also enabled', { tags: ['@ess'] }, From d11a5e77f67a05dfd5ab5cfaac683b9ee457493c Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:08:17 +0100 Subject: [PATCH 138/183] skip flaky suite (#170601) --- .../tamper_protection/enabled/uninstall_agent_from_host.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts index 527566bed608b..8f45e3d70b5e6 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts @@ -22,7 +22,8 @@ import { login } from '../../../tasks/login'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170601 +describe.skip( 'Uninstall agent from host when agent tamper protection is enabled', { tags: ['@ess'] }, () => { From 8d79cebadec8e492f252b9a786507472ac5874ee Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:08:53 -0400 Subject: [PATCH 139/183] skip failing test suite (#170601) --- .../tamper_protection/enabled/uninstall_agent_from_host.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts index 8f45e3d70b5e6..7cbcaf361a38c 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/uninstall_agent_from_host.cy.ts @@ -23,6 +23,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170601 +// Failing: See https://github.com/elastic/kibana/issues/170601 describe.skip( 'Uninstall agent from host when agent tamper protection is enabled', { tags: ['@ess'] }, From 33c6a6b01f515be7035411171996ff1b4b896c31 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:10:51 +0100 Subject: [PATCH 140/183] skip flaky suite (#179598) --- .../cypress/e2e/response_actions/alerts_response_console.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts index 63428ec6018d2..a9b9dc0c1f1a3 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts @@ -27,7 +27,8 @@ import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/179598 +describe.skip( 'Response console: From Alerts', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { From 13bf1b02118c0cd5b7a64650a88355dbbbf1e25b Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:11:25 -0400 Subject: [PATCH 141/183] skip failing test suite (#179598) --- .../cypress/e2e/response_actions/alerts_response_console.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts index a9b9dc0c1f1a3..db1477916f75a 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/alerts_response_console.cy.ts @@ -28,6 +28,7 @@ import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/179598 +// Failing: See https://github.com/elastic/kibana/issues/179598 describe.skip( 'Response console: From Alerts', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, From 5b92a879577149f4b35d8701b1690e87bf4da5d8 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:12:09 +0100 Subject: [PATCH 142/183] skip flaky suite (#170563) --- .../response_actions/response_console/process_operations.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts index f7c70ebf8c7e9..0f6da6fb9fad1 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/process_operations.cy.ts @@ -26,7 +26,8 @@ import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_ const AGENT_BEAT_FILE_PATH_SUFFIX = '/components/agentbeat'; -describe('Response console', { tags: ['@ess', '@serverless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/170563 +describe.skip('Response console', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { login(); }); From 0fdc7ecaf1708a8bf2dd74ed92d26578f35f5808 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:13:25 +0100 Subject: [PATCH 143/183] skip flaky suite (#172326) --- .../e2e/response_actions/response_console/release.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts index 47d30ad96699c..d4c72699efd32 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts @@ -27,7 +27,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe('Response console', { tags: ['@ess', '@serverless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/172326 +describe.skip('Response console', { tags: ['@ess', '@serverless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse; From 0702f99e8ba24ad57e4cb5bd2935ffa2c8a8435b Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:14:27 -0400 Subject: [PATCH 144/183] skip failing test suite (#172326) --- .../cypress/e2e/response_actions/response_console/release.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts index d4c72699efd32..50630b8fc1b46 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/release.cy.ts @@ -28,6 +28,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/172326 +// Failing: See https://github.com/elastic/kibana/issues/172326 describe.skip('Response console', { tags: ['@ess', '@serverless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; From c72c714ed36ff30eb65a1114c08061cc2455f639 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:16:19 +0100 Subject: [PATCH 145/183] skip flaky suite (#168340) --- .../automated_response_actions.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts index adaaf9c99059a..30a961858b52c 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts @@ -20,7 +20,8 @@ import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/168340 +describe.skip( 'Automated Response Actions', { tags: ['@ess', '@serverless'], From dff298da4a88d3d2b1416b38142aed417c645a47 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:16:56 -0400 Subject: [PATCH 146/183] skip failing test suite (#168340) --- .../automated_response_actions/automated_response_actions.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts index 30a961858b52c..c295de7dd0b3e 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/automated_response_actions/automated_response_actions.cy.ts @@ -21,6 +21,7 @@ import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_dat import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; // FLAKY: https://github.com/elastic/kibana/issues/168340 +// Failing: See https://github.com/elastic/kibana/issues/168340 describe.skip( 'Automated Response Actions', { From 971c08e537f52d32e6976be965230069bdc88b9a Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:17:18 +0100 Subject: [PATCH 147/183] skip flaky suite (#170424) --- .../response_actions/response_console/file_operations.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/file_operations.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/file_operations.cy.ts index 70b008f7eda7b..38f442dec0e63 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/file_operations.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/file_operations.cy.ts @@ -21,7 +21,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe('Response console', { tags: ['@ess', '@serverless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/170424 +describe.skip('Response console', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { login(); }); From 7e4082243dffba5f958d9dc317d642c78526a97e Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:18:40 +0100 Subject: [PATCH 148/183] skip flaky suite (#169958) --- .../public/management/cypress/e2e/endpoint_alerts.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts index 06b33141bad1b..e4f913d851735 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts @@ -19,7 +19,8 @@ import { login, ROLE } from '../tasks/login'; import { EXECUTE_ROUTE } from '../../../../common/endpoint/constants'; import { waitForActionToComplete } from '../tasks/response_actions'; -describe('Endpoint generated alerts', { tags: ['@ess', '@serverless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/169958 +describe.skip('Endpoint generated alerts', { tags: ['@ess', '@serverless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse; From 0dae7073f256a5e562a1580fd447b6b52f48845c Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:20:01 -0400 Subject: [PATCH 149/183] skip failing test suite (#169958) --- .../public/management/cypress/e2e/endpoint_alerts.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts index e4f913d851735..2de94b7ca0557 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_alerts.cy.ts @@ -20,6 +20,7 @@ import { EXECUTE_ROUTE } from '../../../../common/endpoint/constants'; import { waitForActionToComplete } from '../tasks/response_actions'; // FLAKY: https://github.com/elastic/kibana/issues/169958 +// Failing: See https://github.com/elastic/kibana/issues/169958 describe.skip('Endpoint generated alerts', { tags: ['@ess', '@serverless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; From c630c7f21b9b860930f780723a5a85dd9f372ec4 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:21:48 +0100 Subject: [PATCH 150/183] skip flaky suite (#168284) --- .../management/cypress/e2e/endpoint_list/endpoints.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts index 4396937e57228..0aeb46b32fb43 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts @@ -28,7 +28,8 @@ import { createEndpointHost } from '../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_data'; import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; -describe('Endpoints page', { tags: ['@ess', '@serverless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/168284 +describe.skip('Endpoints page', { tags: ['@ess', '@serverless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse; From bac14aa30bb8a590b9be3005a3018211f0d4a303 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:22:25 -0400 Subject: [PATCH 151/183] skip failing test suite (#168284) --- .../public/management/cypress/e2e/endpoint_list/endpoints.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts index 0aeb46b32fb43..c0b12f6bd700c 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/endpoint_list/endpoints.cy.ts @@ -29,6 +29,7 @@ import { deleteAllLoadedEndpointData } from '../../tasks/delete_all_endpoint_dat import { enableAllPolicyProtections } from '../../tasks/endpoint_policy'; // FLAKY: https://github.com/elastic/kibana/issues/168284 +// Failing: See https://github.com/elastic/kibana/issues/168284 describe.skip('Endpoints page', { tags: ['@ess', '@serverless'] }, () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; From 55556e252bffbe9f69023c65bd9ce6144fb9a88c Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:22:44 +0100 Subject: [PATCH 152/183] skip flaky suite (#170812) --- ...ent_from_host_changing_policy_from_enabled_to_enabled.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts index d8630a50a83b9..f2397225a10a1 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts @@ -23,7 +23,8 @@ import { login } from '../../../tasks/login'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170812 +describe.skip( 'Uninstall agent from host changing agent policy when agent tamper protection is enabled but then is switched to a policy with it also enabled', { tags: ['@ess'] }, () => { From 520f06320c362679298dab57d6c006563dfd48a6 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:23:17 -0400 Subject: [PATCH 153/183] skip failing test suite (#170812) --- ...agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts index f2397225a10a1..d0b16f5b757ff 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_enabled.cy.ts @@ -24,6 +24,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170812 +// Failing: See https://github.com/elastic/kibana/issues/170812 describe.skip( 'Uninstall agent from host changing agent policy when agent tamper protection is enabled but then is switched to a policy with it also enabled', { tags: ['@ess'] }, From f77d3c9b7b1adb3e7b5f7b7576391e9d005bf96d Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:24:23 +0100 Subject: [PATCH 154/183] skip flaky suite (#170373) --- .../e2e/response_actions/response_console/execute.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/execute.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/execute.cy.ts index dad573bb09c2b..d43037f4d7f97 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/execute.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console/execute.cy.ts @@ -21,7 +21,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe('Response console', { tags: ['@ess', '@serverless'] }, () => { +// FLAKY: https://github.com/elastic/kibana/issues/170373 +describe.skip('Response console', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { login(); }); From fb9c906d48bd7e626ee310e8fe67e9c242d581d8 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:28:08 +0100 Subject: [PATCH 155/183] skip flaky suite (#170667) --- .../tamper_protection/disabled/uninstall_agent_from_host.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts index ed47855ac894a..34aba3fcfccf2 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts @@ -21,7 +21,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170667 +describe.skip( 'Uninstall agent from host when agent tamper protection is disabled', { tags: ['@ess'] }, () => { From b8e8b5ebfec650d145ec868328aedbb861e8bf1c Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:28:41 -0400 Subject: [PATCH 156/183] skip failing test suite (#170667) --- .../tamper_protection/disabled/uninstall_agent_from_host.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts index 34aba3fcfccf2..a32932e0ed508 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/uninstall_agent_from_host.cy.ts @@ -22,6 +22,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170667 +// Failing: See https://github.com/elastic/kibana/issues/170667 describe.skip( 'Uninstall agent from host when agent tamper protection is disabled', { tags: ['@ess'] }, From 908a3cd3dadf9645b9e34443be83965df1b42c47 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:29:11 +0100 Subject: [PATCH 157/183] skip flaky suite (#170604) --- ...nt_from_host_changing_policy_from_enabled_to_disabled.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts index 0768c4a49ca39..f5665d830eb4a 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts @@ -23,7 +23,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170604 +describe.skip( 'Uninstall agent from host changing agent policy when agent tamper protection is enabled but then is switched to a policy with it disabled', { tags: ['@ess'] }, () => { From afaae2c961a457b4d60d249cc184656639c839ee Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:29:41 -0400 Subject: [PATCH 158/183] skip failing test suite (#170604) --- ...gent_from_host_changing_policy_from_enabled_to_disabled.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts index f5665d830eb4a..665e51ea56da5 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_enabled_to_disabled.cy.ts @@ -24,6 +24,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170604 +// Failing: See https://github.com/elastic/kibana/issues/170604 describe.skip( 'Uninstall agent from host changing agent policy when agent tamper protection is enabled but then is switched to a policy with it disabled', { tags: ['@ess'] }, From b9902f6f223148859f3d28173641fcb979adf3ca Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:31:13 +0100 Subject: [PATCH 159/183] skip flaky suite (#170794) --- ...nt_from_host_changing_policy_from_disabled_to_enabled.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts index bbb675cf56d5e..6e09cd0301f9b 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts @@ -24,7 +24,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170794 +describe.skip( 'Uninstall agent from host changing agent policy when agent tamper protection is disabled but then is switched to a policy with it enabled', { tags: ['@ess'] }, () => { From b0962bc124494806510b2746ee81eb75f34ef0f7 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:31:45 -0400 Subject: [PATCH 160/183] skip failing test suite (#170794) --- ...gent_from_host_changing_policy_from_disabled_to_enabled.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts index 6e09cd0301f9b..d256fb2f990b3 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/switching_policies/uninstall_agent_from_host_changing_policy_from_disabled_to_enabled.cy.ts @@ -25,6 +25,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170794 +// Failing: See https://github.com/elastic/kibana/issues/170794 describe.skip( 'Uninstall agent from host changing agent policy when agent tamper protection is disabled but then is switched to a policy with it enabled', { tags: ['@ess'] }, From 5e9042dd9d12be582f1cb6d7dfcabe9cf43ecefe Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:32:23 +0100 Subject: [PATCH 161/183] skip flaky suite (#170814) --- .../tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts index e0b26bc2f77dd..3edf2d1327d74 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts @@ -20,7 +20,8 @@ import { enableAllPolicyProtections } from '../../../tasks/endpoint_policy'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170814 +describe.skip( 'Unenroll agent from fleet with agent tamper protection is disabled', { tags: ['@ess'] }, () => { From 0a8fcc9d8d91eed1e0ed5531c0f9ab7368facf23 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:33:13 -0400 Subject: [PATCH 162/183] skip failing test suite (#170814) --- .../tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts index 3edf2d1327d74..3a35f49d0ddcf 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/disabled/unenroll_agent_from_fleet.cy.ts @@ -21,6 +21,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170814 +// Failing: See https://github.com/elastic/kibana/issues/170814 describe.skip( 'Unenroll agent from fleet with agent tamper protection is disabled', { tags: ['@ess'] }, From 7fd9faec4b0815f3dbd2a3f03d5b2f18cf852d58 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Wed, 24 Apr 2024 18:33:47 +0100 Subject: [PATCH 163/183] skip flaky suite (#170706) --- .../tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts index 17cb52c2cb042..f2aef24ad5e12 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts @@ -20,7 +20,8 @@ import { login } from '../../../tasks/login'; import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; -describe( +// FLAKY: https://github.com/elastic/kibana/issues/170706 +describe.skip( 'Unenroll agent from fleet when agent tamper protection is enabled', { tags: ['@ess'] }, () => { From 2b2fe3903b8cc21c77b6304340285d47693f8a60 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 24 Apr 2024 13:34:17 -0400 Subject: [PATCH 164/183] skip failing test suite (#170706) --- .../tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts index f2aef24ad5e12..61af90092c06d 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/tamper_protection/enabled/unenroll_agent_from_fleet.cy.ts @@ -21,6 +21,7 @@ import { createEndpointHost } from '../../../tasks/create_endpoint_host'; import { deleteAllLoadedEndpointData } from '../../../tasks/delete_all_endpoint_data'; // FLAKY: https://github.com/elastic/kibana/issues/170706 +// Failing: See https://github.com/elastic/kibana/issues/170706 describe.skip( 'Unenroll agent from fleet when agent tamper protection is enabled', { tags: ['@ess'] }, From 6d06a565b79249f81f868a9d494fea5cf6903989 Mon Sep 17 00:00:00 2001 From: Rodney Norris <rodney.norris@elastic.co> Date: Wed, 24 Apr 2024 13:23:10 -0500 Subject: [PATCH 165/183] [Console] Allow persistent console to be resizable (#180985) ## Summary Updates the Persistent console to be resizable by the user using an `EuiResizableButton` at the top of the console flyout. - Persistent console now defaults to the maximum size for the window - Top of console can be dragged to resize - On resize console size is saved to local storage and used as default - Double-clicking resize border will maximize console, or set it to 50% height if currently at the max height. https://github.com/elastic/kibana/assets/1972968/46c8da24-56c8-4bda-82f9-f9498ec209a0 --- .../embeddable/_embeddable_console.scss | 47 +----- .../containers/embeddable/_variables.scss | 7 - .../embeddable/console_resize_button.tsx | 142 ++++++++++++++++++ .../containers/embeddable/console_wrapper.tsx | 14 +- .../embeddable/embeddable_console.tsx | 96 ++++++++---- .../containers/embeddable/index.tsx | 7 +- src/plugins/console/public/index.ts | 1 - src/plugins/console/public/plugin.ts | 27 +++- .../services/embeddable_console.test.ts | 31 +++- .../public/services/embeddable_console.ts | 20 +++ .../public/types/embeddable_console.ts | 12 +- .../public/types/plugin_dependencies.ts | 4 +- 12 files changed, 297 insertions(+), 111 deletions(-) create mode 100644 src/plugins/console/public/application/containers/embeddable/console_resize_button.tsx diff --git a/src/plugins/console/public/application/containers/embeddable/_embeddable_console.scss b/src/plugins/console/public/application/containers/embeddable/_embeddable_console.scss index d7fa11e89f72d..8c00712bdaadc 100644 --- a/src/plugins/console/public/application/containers/embeddable/_embeddable_console.scss +++ b/src/plugins/console/public/application/containers/embeddable/_embeddable_console.scss @@ -38,24 +38,9 @@ animation-duration: $euiAnimSpeedNormal; animation-timing-function: $euiAnimSlightResistance; animation-fill-mode: forwards; - } - - &-isOpen.embeddableConsole--large { - animation-name: embeddableConsoleOpenPanelLarge; - height: $embeddableConsoleMaxHeight; - bottom: map-get($embeddableConsoleHeights, 'l') * -1; - } - - &-isOpen.embeddableConsole--medium { - animation-name: embeddableConsoleOpenPanelMedium; - height: map-get($embeddableConsoleHeights, 'm'); - bottom: map-get($embeddableConsoleHeights, 'm') * -1; - } - - &-isOpen.embeddableConsole--small { - animation-name: embeddableConsoleOpenPanelSmall; - height: map-get($embeddableConsoleHeights, 's'); - bottom: map-get($embeddableConsoleHeights, 's') * -1; + animation-name: embeddableConsoleOpenPanel; + height: var(--embedded-console-height); + bottom: var(--embedded-console-bottom); } } @@ -80,7 +65,6 @@ &--altViewButton-container { margin-left: auto; - // padding: $euiSizeS; } } @@ -132,34 +116,13 @@ } } -@keyframes embeddableConsoleOpenPanelLarge { - 0% { - // Accounts for the initial height offset from the top - transform: translateY(calc((#{$embeddableConsoleInitialHeight} * 3) * -1)); - } - - 100% { - transform: translateY(map-get($embeddableConsoleHeights, 'l') * -1); - } -} - -@keyframes embeddableConsoleOpenPanelMedium { - 0% { - transform: translateY(-$embeddableConsoleInitialHeight); - } - - 100% { - transform: translateY(map-get($embeddableConsoleHeights, 'm') * -1); - } -} - -@keyframes embeddableConsoleOpenPanelSmall { +@keyframes embeddableConsoleOpenPanel { 0% { transform: translateY(-$embeddableConsoleInitialHeight); } 100% { - transform: translateY(map-get($embeddableConsoleHeights, 's') * -1); + transform: translateY(var(--embedded-console-bottom)); } } diff --git a/src/plugins/console/public/application/containers/embeddable/_variables.scss b/src/plugins/console/public/application/containers/embeddable/_variables.scss index 33ecd64b999c9..9623db93b4ea7 100644 --- a/src/plugins/console/public/application/containers/embeddable/_variables.scss +++ b/src/plugins/console/public/application/containers/embeddable/_variables.scss @@ -3,10 +3,3 @@ $embeddableConsoleText: lighten(makeHighContrastColor($euiColorLightestShade, $e $embeddableConsoleBorderColor: transparentize($euiColorGhost, .8); $embeddableConsoleInitialHeight: $euiSizeXXL; $embeddableConsoleMaxHeight: calc(100vh - var(--euiFixedHeadersOffset, 0)); - -// Pixel heights ensure no blurriness caused by half pixel offsets -$embeddableConsoleHeights: ( - s: $euiSize * 30, - m: $euiSize * 50, - l: 100vh, -); diff --git a/src/plugins/console/public/application/containers/embeddable/console_resize_button.tsx b/src/plugins/console/public/application/containers/embeddable/console_resize_button.tsx new file mode 100644 index 0000000000000..0b29214594440 --- /dev/null +++ b/src/plugins/console/public/application/containers/embeddable/console_resize_button.tsx @@ -0,0 +1,142 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useCallback, useEffect, useState, useRef } from 'react'; +import { EuiResizableButton, useEuiTheme, keys, EuiThemeComputed } from '@elastic/eui'; + +const CONSOLE_MIN_HEIGHT = 200; + +const getMouseOrTouchY = ( + e: TouchEvent | MouseEvent | React.MouseEvent | React.TouchEvent +): number => { + // Some Typescript fooling is needed here + const y = (e as TouchEvent).targetTouches + ? (e as TouchEvent).targetTouches[0].pageY + : (e as MouseEvent).pageY; + return y; +}; + +export interface EmbeddedConsoleResizeButtonProps { + consoleHeight: number; + setConsoleHeight: React.Dispatch<React.SetStateAction<number>>; +} + +export function getCurrentConsoleMaxSize(euiTheme: EuiThemeComputed<{}>) { + const euiBaseSize = parseInt(euiTheme.size.base, 10); + const winHeight = window.innerHeight; + const bodyStyle = getComputedStyle(document.body); + const headerOffset = parseInt(bodyStyle.getPropertyValue('--euiFixedHeadersOffset') ?? '0px', 10); + + // We leave a buffer of baseSize to allow room for the user to hover on the top border for resizing + return Math.max(winHeight - headerOffset - euiBaseSize, CONSOLE_MIN_HEIGHT); +} + +export const EmbeddedConsoleResizeButton = ({ + consoleHeight, + setConsoleHeight, +}: EmbeddedConsoleResizeButtonProps) => { + const { euiTheme } = useEuiTheme(); + const [maxConsoleHeight, setMaxConsoleHeight] = useState<number>(800); + const initialConsoleHeight = useRef(consoleHeight); + const initialMouseY = useRef(0); + + useEffect(() => { + function handleResize() { + const newMaxConsoleHeight = getCurrentConsoleMaxSize(euiTheme); + // Calculate and save the console max height. This is the window height minus the header + // offset minuse the base size to allow a small buffer for grabbing the resize button. + if (maxConsoleHeight !== newMaxConsoleHeight) { + setMaxConsoleHeight(newMaxConsoleHeight); + } + if (consoleHeight > newMaxConsoleHeight && newMaxConsoleHeight > CONSOLE_MIN_HEIGHT) { + // When the current console height is greater than the new max height, + // we resize the console to the max height. This will ensure there is not weird + // behavior with the drag resize. + setConsoleHeight(newMaxConsoleHeight); + } + } + + handleResize(); + window.addEventListener('resize', handleResize); + return () => window.removeEventListener('resize', handleResize); + }, [maxConsoleHeight, euiTheme, consoleHeight, setConsoleHeight]); + const onResizeMouseMove = useCallback( + (e: MouseEvent | TouchEvent) => { + const currentMouseY = getMouseOrTouchY(e); + const mouseOffset = (currentMouseY - initialMouseY.current) * -1; + const changedConsoleHeight = initialConsoleHeight.current + mouseOffset; + + const newConsoleHeight = Math.min( + Math.max(changedConsoleHeight, CONSOLE_MIN_HEIGHT), + maxConsoleHeight + ); + + setConsoleHeight(newConsoleHeight); + }, + [maxConsoleHeight, setConsoleHeight] + ); + const onResizeMouseUp = useCallback( + (e: MouseEvent | TouchEvent) => { + initialMouseY.current = 0; + + window.removeEventListener('mousemove', onResizeMouseMove); + window.removeEventListener('mouseup', onResizeMouseUp); + window.removeEventListener('touchmove', onResizeMouseMove); + window.removeEventListener('touchend', onResizeMouseUp); + }, + [onResizeMouseMove] + ); + const onResizeMouseDown = useCallback( + (e: React.MouseEvent | React.TouchEvent) => { + initialMouseY.current = getMouseOrTouchY(e); + initialConsoleHeight.current = consoleHeight; + + // Window event listeners instead of React events are used + // in case the user's mouse leaves the component + window.addEventListener('mousemove', onResizeMouseMove); + window.addEventListener('mouseup', onResizeMouseUp); + window.addEventListener('touchmove', onResizeMouseMove); + window.addEventListener('touchend', onResizeMouseUp); + }, + [consoleHeight, onResizeMouseUp, onResizeMouseMove] + ); + const onResizeKeyDown = useCallback( + (e: React.KeyboardEvent) => { + const KEYBOARD_OFFSET = 10; + + switch (e.key) { + case keys.ARROW_UP: + e.preventDefault(); // Safari+VO will screen reader navigate off the button otherwise + setConsoleHeight((height) => Math.min(height + KEYBOARD_OFFSET, maxConsoleHeight)); + break; + case keys.ARROW_DOWN: + e.preventDefault(); // Safari+VO will screen reader navigate off the button otherwise + setConsoleHeight((height) => Math.max(height - KEYBOARD_OFFSET, CONSOLE_MIN_HEIGHT)); + } + }, + [maxConsoleHeight, setConsoleHeight] + ); + const onResizeDoubleClick = useCallback(() => { + if (consoleHeight < maxConsoleHeight) { + setConsoleHeight(maxConsoleHeight); + } else { + setConsoleHeight(maxConsoleHeight / 2); + } + }, [consoleHeight, maxConsoleHeight, setConsoleHeight]); + + return ( + <EuiResizableButton + indicator="border" + isHorizontal={false} + onMouseDown={onResizeMouseDown} + onTouchStart={onResizeMouseDown} + onKeyDown={onResizeKeyDown} + onDoubleClick={onResizeDoubleClick} + /> + ); +}; diff --git a/src/plugins/console/public/application/containers/embeddable/console_wrapper.tsx b/src/plugins/console/public/application/containers/embeddable/console_wrapper.tsx index 6429d8894d33c..53c75706b9da0 100644 --- a/src/plugins/console/public/application/containers/embeddable/console_wrapper.tsx +++ b/src/plugins/console/public/application/containers/embeddable/console_wrapper.tsx @@ -29,10 +29,9 @@ import { History, Settings, Storage, - createStorage, createHistory, createSettings, - setStorage, + getStorage, } from '../../../services'; import { createUsageTracker } from '../../../services/tracker'; import { MetricsTracker, EmbeddableConsoleDependencies } from '../../../types'; @@ -78,11 +77,7 @@ const loadDependencies = async ( await loadActiveApi(core.http); const autocompleteInfo = getAutocompleteInfo(); - const storage = createStorage({ - engine: window.localStorage, - prefix: 'sense:', - }); - setStorage(storage); + const storage = getStorage(); const history = createHistory({ storage }); const settings = createSettings({ storage }); const objectStorageClient = localStorageObjectClient.create(storage); @@ -107,7 +102,10 @@ const loadDependencies = async ( }; interface ConsoleWrapperProps - extends Omit<EmbeddableConsoleDependencies, 'setDispatch' | 'alternateView'> { + extends Omit< + EmbeddableConsoleDependencies, + 'setDispatch' | 'alternateView' | 'setConsoleHeight' | 'getConsoleHeight' + > { onKeyDown: (this: Window, ev: WindowEventMap['keydown']) => any; } diff --git a/src/plugins/console/public/application/containers/embeddable/embeddable_console.tsx b/src/plugins/console/public/application/containers/embeddable/embeddable_console.tsx index 218496b9d81ab..42a6c4b0efb92 100644 --- a/src/plugins/console/public/application/containers/embeddable/embeddable_console.tsx +++ b/src/plugins/console/public/application/containers/embeddable/embeddable_console.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import React, { useReducer, useEffect } from 'react'; +import React, { useReducer, useEffect, useState } from 'react'; import classNames from 'classnames'; import useObservable from 'react-use/lib/useObservable'; import { @@ -14,15 +14,17 @@ import { EuiFocusTrap, EuiPortal, EuiScreenReaderOnly, + EuiThemeComputed, EuiThemeProvider, EuiWindowEvent, keys, + useEuiTheme, + useEuiThemeCSSVariables, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { dynamic } from '@kbn/shared-ux-utility'; import { - EmbeddableConsoleProps, EmbeddableConsoleDependencies, EmbeddableConsoleView, } from '../../../types/embeddable_console'; @@ -31,6 +33,7 @@ import * as store from '../../stores/embeddable_console'; import { setLoadFromParameter, removeLoadFromParameter } from '../../lib/load_from'; import './_index.scss'; +import { EmbeddedConsoleResizeButton, getCurrentConsoleMaxSize } from './console_resize_button'; const KBN_BODY_CONSOLE_CLASS = 'kbnBody--hasEmbeddableConsole'; @@ -42,14 +45,39 @@ const ConsoleWrapper = dynamic(async () => ({ default: (await import('./console_wrapper')).ConsoleWrapper, })); +const getInitialConsoleHeight = ( + getConsoleHeight: EmbeddableConsoleDependencies['getConsoleHeight'], + euiTheme: EuiThemeComputed +) => { + const lastHeight = getConsoleHeight(); + if (lastHeight) { + try { + const value = parseInt(lastHeight, 10); + if (!isNaN(value) && value > 0) { + return value; + } + } catch { + // ignore bad local storage value + } + } + return getCurrentConsoleMaxSize(euiTheme); +}; + export const EmbeddableConsole = ({ - size = 'm', core, usageCollection, setDispatch, alternateView, isMonacoEnabled, -}: EmbeddableConsoleProps & EmbeddableConsoleDependencies) => { + getConsoleHeight, + setConsoleHeight, +}: EmbeddableConsoleDependencies) => { + const { euiTheme } = useEuiTheme(); + const { setGlobalCSSVariables } = useEuiThemeCSSVariables(); + const [consoleHeight, setConsoleHeightState] = useState<number>( + getInitialConsoleHeight(getConsoleHeight, euiTheme) + ); + const [consoleState, consoleDispatch] = useReducer( store.reducer, store.initialValue, @@ -71,6 +99,13 @@ export const EmbeddableConsole = ({ document.body.classList.add(KBN_BODY_CONSOLE_CLASS); return () => document.body.classList.remove(KBN_BODY_CONSOLE_CLASS); }, []); + useEffect(() => { + setGlobalCSSVariables({ + '--embedded-console-height': `${consoleHeight}px`, + '--embedded-console-bottom': `-${consoleHeight}px`, + }); + setConsoleHeight(consoleHeight.toString()); + }, [consoleHeight, setGlobalCSSVariables, setConsoleHeight]); const isOpen = consoleState.view !== EmbeddableConsoleView.Closed; const showConsole = @@ -105,14 +140,10 @@ export const EmbeddableConsole = ({ const classes = classNames('embeddableConsole', { 'embeddableConsole-isOpen': isOpen, - 'embeddableConsole--large': size === 'l', - 'embeddableConsole--medium': size === 'm', - 'embeddableConsole--small': size === 's', 'embeddableConsole--classicChrome': chromeStyle === 'classic', 'embeddableConsole--projectChrome': chromeStyle === 'project', 'embeddableConsole--unknownChrome': chromeStyle === undefined, 'embeddableConsole--fixed': true, - 'embeddableConsole--showOnMobile': false, }); return ( @@ -127,27 +158,36 @@ export const EmbeddableConsole = ({ <h2>{landmarkHeading}</h2> </EuiScreenReaderOnly> <EuiThemeProvider colorMode={'dark'} wrapperProps={{ cloneElement: true }}> - <div className="embeddableConsole__controls"> - <EuiButtonEmpty - color="text" - iconType={isOpen ? 'arrowUp' : 'arrowDown'} - onClick={toggleConsole} - className="embeddableConsole__controls--button" - data-test-subj="consoleEmbeddedControlBar" - data-telemetry-id="console-embedded-controlbar-button" - > - {i18n.translate('console.embeddableConsole.title', { - defaultMessage: 'Console', - })} - </EuiButtonEmpty> - {alternateView && ( - <div className="embeddableConsole__controls--altViewButton-container"> - <alternateView.ActivationButton - activeView={showAlternateView} - onClick={clickAlternateViewActivateButton} - /> - </div> + <div> + {isOpen && ( + <EmbeddedConsoleResizeButton + consoleHeight={consoleHeight} + setConsoleHeight={setConsoleHeightState} + /> )} + + <div className="embeddableConsole__controls"> + <EuiButtonEmpty + color="text" + iconType={isOpen ? 'arrowUp' : 'arrowDown'} + onClick={toggleConsole} + className="embeddableConsole__controls--button" + data-test-subj="consoleEmbeddedControlBar" + data-telemetry-id="console-embedded-controlbar-button" + > + {i18n.translate('console.embeddableConsole.title', { + defaultMessage: 'Console', + })} + </EuiButtonEmpty> + {alternateView && ( + <div className="embeddableConsole__controls--altViewButton-container"> + <alternateView.ActivationButton + activeView={showAlternateView} + onClick={clickAlternateViewActivateButton} + /> + </div> + )} + </div> </div> </EuiThemeProvider> {showConsole ? ( diff --git a/src/plugins/console/public/application/containers/embeddable/index.tsx b/src/plugins/console/public/application/containers/embeddable/index.tsx index 0563a5f445da2..0ec32dbeaac91 100644 --- a/src/plugins/console/public/application/containers/embeddable/index.tsx +++ b/src/plugins/console/public/application/containers/embeddable/index.tsx @@ -8,12 +8,9 @@ import { dynamic } from '@kbn/shared-ux-utility'; import React from 'react'; -import { - EmbeddableConsoleProps, - EmbeddableConsoleDependencies, -} from '../../../types/embeddable_console'; +import { EmbeddableConsoleDependencies } from '../../../types/embeddable_console'; -type EmbeddableConsoleInternalProps = EmbeddableConsoleProps & EmbeddableConsoleDependencies; +type EmbeddableConsoleInternalProps = EmbeddableConsoleDependencies; const Console = dynamic(async () => ({ default: (await import('./embeddable_console')).EmbeddableConsole, })); diff --git a/src/plugins/console/public/index.ts b/src/plugins/console/public/index.ts index 4e907d4329d1e..277190a1a443c 100644 --- a/src/plugins/console/public/index.ts +++ b/src/plugins/console/public/index.ts @@ -17,7 +17,6 @@ export type { ConsoleUILocatorParams, ConsolePluginSetup, ConsolePluginStart, - EmbeddableConsoleProps, EmbeddedConsoleView, EmbeddedConsoleViewButtonProps, } from './types'; diff --git a/src/plugins/console/public/plugin.ts b/src/plugins/console/public/plugin.ts index 43cedf1fa4bb0..54d8d1db97bc7 100644 --- a/src/plugins/console/public/plugin.ts +++ b/src/plugins/console/public/plugin.ts @@ -18,18 +18,30 @@ import { ConsolePluginSetup, ConsolePluginStart, ConsoleUILocatorParams, - EmbeddableConsoleProps, EmbeddedConsoleView, } from './types'; -import { AutocompleteInfo, setAutocompleteInfo, EmbeddableConsoleInfo } from './services'; +import { + AutocompleteInfo, + setAutocompleteInfo, + EmbeddableConsoleInfo, + createStorage, + setStorage, +} from './services'; export class ConsoleUIPlugin implements Plugin<ConsolePluginSetup, ConsolePluginStart, AppSetupUIPluginDependencies> { private readonly autocompleteInfo = new AutocompleteInfo(); - private _embeddableConsole: EmbeddableConsoleInfo = new EmbeddableConsoleInfo(); - - constructor(private ctx: PluginInitializerContext) {} + private _embeddableConsole: EmbeddableConsoleInfo; + + constructor(private ctx: PluginInitializerContext) { + const storage = createStorage({ + engine: window.localStorage, + prefix: 'sense:', + }); + setStorage(storage); + this._embeddableConsole = new EmbeddableConsoleInfo(storage); + } public setup( { notifications, getStartServices, http }: CoreSetup, @@ -126,9 +138,8 @@ export class ConsoleUIPlugin embeddedConsoleUiSetting; if (embeddedConsoleAvailable) { - consoleStart.EmbeddableConsole = (props: EmbeddableConsoleProps) => { + consoleStart.EmbeddableConsole = (_props: {}) => { return EmbeddableConsole({ - ...props, core, usageCollection: deps.usageCollection, setDispatch: (d) => { @@ -136,6 +147,8 @@ export class ConsoleUIPlugin }, alternateView: this._embeddableConsole.alternateView, isMonacoEnabled, + getConsoleHeight: this._embeddableConsole.getConsoleHeight.bind(this._embeddableConsole), + setConsoleHeight: this._embeddableConsole.setConsoleHeight.bind(this._embeddableConsole), }); }; consoleStart.isEmbeddedConsoleAvailable = () => diff --git a/src/plugins/console/public/services/embeddable_console.test.ts b/src/plugins/console/public/services/embeddable_console.test.ts index 7df8230b6dbdf..92cc4d8450906 100644 --- a/src/plugins/console/public/services/embeddable_console.test.ts +++ b/src/plugins/console/public/services/embeddable_console.test.ts @@ -6,12 +6,17 @@ * Side Public License, v 1. */ +import { StorageMock } from './storage.mock'; import { EmbeddableConsoleInfo } from './embeddable_console'; describe('EmbeddableConsoleInfo', () => { + jest.useFakeTimers(); + let eConsole: EmbeddableConsoleInfo; + let storage: StorageMock; beforeEach(() => { - eConsole = new EmbeddableConsoleInfo(); + storage = new StorageMock({} as unknown as Storage, 'test'); + eConsole = new EmbeddableConsoleInfo(storage); }); describe('isEmbeddedConsoleAvailable', () => { it('returns true if dispatch has been set', () => { @@ -50,4 +55,28 @@ describe('EmbeddableConsoleInfo', () => { }); }); }); + describe('getConsoleHeight', () => { + it('returns value in storage when found', () => { + storage.get.mockReturnValue('201'); + expect(eConsole.getConsoleHeight()).toEqual('201'); + expect(storage.get).toHaveBeenCalledWith('embeddedConsoleHeight', undefined); + }); + it('returns undefined when not found', () => { + storage.get.mockReturnValue(undefined); + expect(eConsole.getConsoleHeight()).toEqual(undefined); + }); + }); + describe('setConsoleHeight', () => { + it('stores value in storage', () => { + // setConsoleHeight calls are debounced + eConsole.setConsoleHeight('120'); + eConsole.setConsoleHeight('110'); + eConsole.setConsoleHeight('100'); + + jest.runAllTimers(); + + expect(storage.set).toHaveBeenCalledTimes(1); + expect(storage.set).toHaveBeenCalledWith('embeddedConsoleHeight', '100'); + }); + }); }); diff --git a/src/plugins/console/public/services/embeddable_console.ts b/src/plugins/console/public/services/embeddable_console.ts index 91bf086bc3e33..f5e0197ad833b 100644 --- a/src/plugins/console/public/services/embeddable_console.ts +++ b/src/plugins/console/public/services/embeddable_console.ts @@ -6,16 +6,28 @@ * Side Public License, v 1. */ import type { Dispatch } from 'react'; +import { debounce } from 'lodash'; import { EmbeddedConsoleAction as EmbeddableConsoleAction, EmbeddedConsoleView, } from '../types/embeddable_console'; +import { Storage } from '.'; + +const CONSOLE_HEIGHT_KEY = 'embeddedConsoleHeight'; +const CONSOLE_HEIGHT_LOCAL_STORAGE_DEBOUNCE_WAIT_TIME = 500; export class EmbeddableConsoleInfo { private _dispatch: Dispatch<EmbeddableConsoleAction> | null = null; private _alternateView: EmbeddedConsoleView | undefined; + constructor(private readonly storage: Storage) { + this.setConsoleHeight = debounce( + this.setConsoleHeight.bind(this), + CONSOLE_HEIGHT_LOCAL_STORAGE_DEBOUNCE_WAIT_TIME + ); + } + public get alternateView(): EmbeddedConsoleView | undefined { return this._alternateView; } @@ -38,4 +50,12 @@ export class EmbeddableConsoleInfo { public registerAlternateView(view: EmbeddedConsoleView | null) { this._alternateView = view ?? undefined; } + + public getConsoleHeight(): string | undefined { + return this.storage.get(CONSOLE_HEIGHT_KEY, undefined); + } + + public setConsoleHeight(value: string) { + this.storage.set(CONSOLE_HEIGHT_KEY, value); + } } diff --git a/src/plugins/console/public/types/embeddable_console.ts b/src/plugins/console/public/types/embeddable_console.ts index 07a801c40287b..9a31e0f1cf151 100644 --- a/src/plugins/console/public/types/embeddable_console.ts +++ b/src/plugins/console/public/types/embeddable_console.ts @@ -10,22 +10,14 @@ import type { CoreStart } from '@kbn/core/public'; import type { UsageCollectionStart } from '@kbn/usage-collection-plugin/public'; import type { Dispatch } from 'react'; -/** - * EmbeddableConsoleProps are optional props used when rendering the embeddable developer console. - */ -export interface EmbeddableConsoleProps { - /** - * The default height of the content area. - */ - size?: 's' | 'm' | 'l'; -} - export interface EmbeddableConsoleDependencies { core: CoreStart; usageCollection?: UsageCollectionStart; setDispatch: (dispatch: Dispatch<EmbeddedConsoleAction> | null) => void; alternateView?: EmbeddedConsoleView; isMonacoEnabled: boolean; + getConsoleHeight: () => string | undefined; + setConsoleHeight: (value: string) => void; } export type EmbeddedConsoleAction = diff --git a/src/plugins/console/public/types/plugin_dependencies.ts b/src/plugins/console/public/types/plugin_dependencies.ts index 03db14c181be8..63446135e7f3c 100644 --- a/src/plugins/console/public/types/plugin_dependencies.ts +++ b/src/plugins/console/public/types/plugin_dependencies.ts @@ -13,7 +13,7 @@ import { UsageCollectionSetup, UsageCollectionStart } from '@kbn/usage-collectio import { SharePluginSetup, SharePluginStart, LocatorPublic } from '@kbn/share-plugin/public'; import { ConsoleUILocatorParams } from './locator'; -import { EmbeddableConsoleProps, EmbeddedConsoleView } from './embeddable_console'; +import { EmbeddedConsoleView } from './embeddable_console'; export interface AppSetupUIPluginDependencies { home?: HomePublicPluginSetup; @@ -55,7 +55,7 @@ export interface ConsolePluginStart { /** * EmbeddableConsole is a functional component used to render a portable version of the dev tools console on any page in Kibana */ - EmbeddableConsole?: FC<EmbeddableConsoleProps>; + EmbeddableConsole?: FC<{}>; /** * Register an alternate view for the Embedded Console * From 7d13fbadea35072d07f6a4ca39b2460ee90d1a3a Mon Sep 17 00:00:00 2001 From: Saarika Bhasi <55930906+saarikabhasi@users.noreply.github.com> Date: Wed, 24 Apr 2024 14:26:42 -0400 Subject: [PATCH 166/183] [Serverless Search] add readOnly and writeOnly privileges button in create api key flyout (#181472) ## Summary Add ready only and write only button to show privileges in code editor in`serverless_search` plugin in API key section https://github.com/elastic/kibana/assets/55930906/1e831194-218b-471a-9fd7-7737755e2c85 ### Checklist - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [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: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../api_key/security_privileges_form.tsx | 77 ++++++++++++++++++- .../page_objects/svl_search_landing_page.ts | 2 + 2 files changed, 75 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/serverless_search/public/application/components/api_key/security_privileges_form.tsx b/x-pack/plugins/serverless_search/public/application/components/api_key/security_privileges_form.tsx index dcc301469837a..c647471f90e71 100644 --- a/x-pack/plugins/serverless_search/public/application/components/api_key/security_privileges_form.tsx +++ b/x-pack/plugins/serverless_search/public/application/components/api_key/security_privileges_form.tsx @@ -5,22 +5,51 @@ * 2.0. */ -import { EuiText, EuiLink, EuiSpacer } from '@elastic/eui'; +import { + EuiText, + EuiLink, + EuiSpacer, + EuiPanel, + EuiFlexItem, + EuiFlexGroup, + EuiButtonEmpty, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { CodeEditorField } from '@kbn/code-editor'; import React from 'react'; import { docLinks } from '../../../../common/doc_links'; - +const READ_ONLY_BOILERPLATE = `{ + "read-only-role": { + "cluster": [], + "indices": [ + { + "names": ["*"], + "privileges": ["read"] + } + ] + } +}`; +const WRITE_ONLY_BOILERPLATE = `{ + "write-only-role": { + "cluster": [], + "indices": [ + { + "names": ["*"], + "privileges": ["write"] + } + ] + } +}`; interface SecurityPrivilegesFormProps { - roleDescriptors: string; onChangeRoleDescriptors: (roleDescriptors: string) => void; error?: React.ReactNode | React.ReactNode[]; + roleDescriptors: string; } export const SecurityPrivilegesForm: React.FC<SecurityPrivilegesFormProps> = ({ - roleDescriptors, onChangeRoleDescriptors, error, + roleDescriptors, }) => { return ( <div data-test-subj="create-api-role-descriptors-code-editor-container"> @@ -39,6 +68,46 @@ export const SecurityPrivilegesForm: React.FC<SecurityPrivilegesFormProps> = ({ <p>{error}</p> </EuiText> )} + <EuiPanel hasShadow={false} color="subdued"> + <EuiFlexGroup gutterSize="none" justifyContent="flexEnd" alignItems="baseline"> + <EuiFlexItem grow={false}> + <EuiText size="xs"> + <h4> + {i18n.translate('xpack.serverlessSearch.apiKey.privileges.boilerplate.label', { + defaultMessage: 'Replace with boilerplate:', + })} + </h4> + </EuiText> + </EuiFlexItem> + + <EuiFlexItem grow={false}> + <EuiButtonEmpty + data-test-subj="serverlessSearchSecurityPrivilegesFormReadOnlyButton" + onClick={() => onChangeRoleDescriptors(READ_ONLY_BOILERPLATE)} + > + {i18n.translate( + 'xpack.serverlessSearch.apiKey.privileges.boilerplate.readOnlyLabel', + { + defaultMessage: 'Read-only', + } + )} + </EuiButtonEmpty> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiButtonEmpty + data-test-subj="serverlessSearchSecurityPrivilegesFormWriteOnlyButton" + onClick={() => onChangeRoleDescriptors(WRITE_ONLY_BOILERPLATE)} + > + {i18n.translate( + 'xpack.serverlessSearch.apiKey.privileges.boilerplate.writeOnlyLabel', + { + defaultMessage: 'Write-only', + } + )} + </EuiButtonEmpty> + </EuiFlexItem> + </EuiFlexGroup> + </EuiPanel> <CodeEditorField allowFullScreen fullWidth diff --git a/x-pack/test_serverless/functional/page_objects/svl_search_landing_page.ts b/x-pack/test_serverless/functional/page_objects/svl_search_landing_page.ts index a9de87ca60d71..a2b991d5b2e14 100644 --- a/x-pack/test_serverless/functional/page_objects/svl_search_landing_page.ts +++ b/x-pack/test_serverless/functional/page_objects/svl_search_landing_page.ts @@ -68,6 +68,8 @@ export function SvlSearchLandingPageProvider({ getService }: FtrProviderContext) }, async expectRoleDescriptorsEditorToExist() { await testSubjects.existOrFail('create-api-role-descriptors-code-editor-container'); + await testSubjects.existOrFail('serverlessSearchSecurityPrivilegesFormReadOnlyButton'); + await testSubjects.existOrFail('serverlessSearchSecurityPrivilegesFormWriteOnlyButton'); }, async setRoleDescriptorsValue(value: string) { await testSubjects.existOrFail('create-api-role-descriptors-code-editor-container'); From 815718aa545a16400fec570ac6f519d7e69853ff Mon Sep 17 00:00:00 2001 From: Dominique Clarke <dominique.clarke@elastic.co> Date: Wed, 24 Apr 2024 15:33:29 -0400 Subject: [PATCH 167/183] [APM] add filters support to apm latency, throughput, and error rate chart apis (#181359) ## Summary Rational: We'd like to embed APM visualizations across the observability solution, particularly within the SLO alert details page at this time. SLO configuration supports unified search filters. In order to ensure that the data accurately reflects the SLO configuration, API dependencies for APM visualizations must support filters. This PR adds filters support to: 1. `GET /internal/apm/services/{serviceName}/transactions/charts/latency` 2. `GET /internal/apm/services/{serviceName}/throughput` 3. `GET /internal/apm/services/{serviceName}/transactions/charts/error_rate` It is expected that consumers of the filters param send a serialized object containing a `filter` or `must_not` clause to include on the respective ES queries. Internally, it is expected that these objects are created using the `buildQueryFromFilters` helper exposed by `kbn/es-query`, passing the `Filter` object from the unified search `SearchBar` as the the parameter. ### Testing This feature is not yet available in the UI To test, I've added api integration tests for each api, as well as jest tests for any helpers introduced. --- .../get_failed_transaction_rate.ts | 8 +- .../server/routes/default_api_types.test.ts | 42 +++ .../apm/server/routes/default_api_types.ts | 30 +++ .../server/routes/services/get_throughput.ts | 6 +- .../apm/server/routes/services/route.ts | 5 +- .../get_failed_transaction_rate_periods.ts | 4 + .../transactions/get_latency_charts/index.ts | 12 +- .../apm/server/routes/transactions/route.ts | 10 +- .../tests/services/throughput.spec.ts | 245 ++++++++++++++++++ .../tests/transactions/error_rate.spec.ts | 132 ++++++++++ .../tests/transactions/latency.spec.ts | 120 +++++++++ 11 files changed, 606 insertions(+), 8 deletions(-) create mode 100644 x-pack/plugins/observability_solution/apm/server/routes/default_api_types.test.ts diff --git a/x-pack/plugins/observability_solution/apm/server/lib/transaction_groups/get_failed_transaction_rate.ts b/x-pack/plugins/observability_solution/apm/server/lib/transaction_groups/get_failed_transaction_rate.ts index 08448ef50dc4b..4b1ee98c48cd3 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/transaction_groups/get_failed_transaction_rate.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/transaction_groups/get_failed_transaction_rate.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - +import { BoolQuery } from '@kbn/es-query'; import { kqlQuery, rangeQuery, termQuery } from '@kbn/observability-plugin/server'; import { ApmServiceTransactionDocumentType } from '../../../common/document_type'; import { SERVICE_NAME, TRANSACTION_NAME, TRANSACTION_TYPE } from '../../../common/es_fields/apm'; @@ -22,6 +22,7 @@ import { export async function getFailedTransactionRate({ environment, kuery, + filters, serviceName, transactionTypes, transactionName, @@ -35,6 +36,7 @@ export async function getFailedTransactionRate({ }: { environment: string; kuery: string; + filters?: BoolQuery; serviceName: string; transactionTypes: string[]; transactionName?: string; @@ -62,7 +64,9 @@ export async function getFailedTransactionRate({ ...rangeQuery(startWithOffset, endWithOffset), ...environmentQuery(environment), ...kqlQuery(kuery), + ...(filters?.filter || []), ]; + const mustNot = filters?.must_not || []; const outcomes = getOutcomeAggregation(documentType); @@ -73,7 +77,7 @@ export async function getFailedTransactionRate({ body: { track_total_hits: false, size: 0, - query: { bool: { filter } }, + query: { bool: { filter, must_not: mustNot } }, aggs: { ...outcomes, timeseries: { diff --git a/x-pack/plugins/observability_solution/apm/server/routes/default_api_types.test.ts b/x-pack/plugins/observability_solution/apm/server/routes/default_api_types.test.ts new file mode 100644 index 0000000000000..baeda52f7fc3c --- /dev/null +++ b/x-pack/plugins/observability_solution/apm/server/routes/default_api_types.test.ts @@ -0,0 +1,42 @@ +/* + * 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 { isLeft } from 'fp-ts/lib/Either'; +import { filtersRt } from './default_api_types'; + +describe('filtersRt', () => { + it('should decode', () => { + const filters = + '{"must_not":[{"term":{"service.name":"myService"}}],"filter":[{"range":{"@timestamp":{"gte":1617273600000,"lte":1617277200000}}}]}'; + const result = filtersRt.decode(filters); + expect(result).toEqual({ + _tag: 'Right', + right: { + should: [], + must: [], + must_not: [{ term: { 'service.name': 'myService' } }], + filter: [{ range: { '@timestamp': { gte: 1617273600000, lte: 1617277200000 } } }], + }, + }); + }); + + it.each(['3', 'true', '{}'])('should not decode invalid filter JSON: %s', (invalidJson) => { + const filters = `{ "filter": ${invalidJson}}`; + const result = filtersRt.decode(filters); + // @ts-ignore-next-line + expect(result.left[0].message).toEqual('filters.filter is not iterable'); + expect(isLeft(result)).toEqual(true); + }); + + it.each(['3', 'true', '{}'])('should not decode invalid must_not JSON: %s', (invalidJson) => { + const filters = `{ "must_not": ${invalidJson}}`; + const result = filtersRt.decode(filters); + // @ts-ignore-next-line + expect(result.left[0].message).toEqual('filters.must_not is not iterable'); + expect(isLeft(result)).toEqual(true); + }); +}); diff --git a/x-pack/plugins/observability_solution/apm/server/routes/default_api_types.ts b/x-pack/plugins/observability_solution/apm/server/routes/default_api_types.ts index a58a5a24af7b5..42ab1b63d431e 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/default_api_types.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/default_api_types.ts @@ -7,6 +7,8 @@ import * as t from 'io-ts'; import { isoToEpochRt, toNumberRt } from '@kbn/io-ts-utils'; +import { either } from 'fp-ts/lib/Either'; +import { BoolQuery } from '@kbn/es-query'; import { ApmDocumentType } from '../../common/document_type'; import { RollupInterval } from '../../common/rollup'; @@ -48,3 +50,31 @@ export const transactionDataSourceRt = t.type({ t.literal(RollupInterval.None), ]), }); + +const BoolQueryRt = t.type({ + should: t.array(t.record(t.string, t.unknown)), + must: t.array(t.record(t.string, t.unknown)), + must_not: t.array(t.record(t.string, t.unknown)), + filter: t.array(t.record(t.string, t.unknown)), +}); + +export const filtersRt = new t.Type<BoolQuery, string, unknown>( + 'BoolQuery', + BoolQueryRt.is, + (input: unknown, context: t.Context) => + either.chain(t.string.validate(input, context), (value: string) => { + try { + const filters = JSON.parse(value); + const decoded = { + should: [], + must: [], + must_not: filters.must_not ? [...filters.must_not] : [], + filter: filters.filter ? [...filters.filter] : [], + }; + return t.success(decoded); + } catch (err) { + return t.failure(input, context, err.message); + } + }), + (filters: BoolQuery): string => JSON.stringify(filters) +); diff --git a/x-pack/plugins/observability_solution/apm/server/routes/services/get_throughput.ts b/x-pack/plugins/observability_solution/apm/server/routes/services/get_throughput.ts index 5d45ea28c95e5..b5c48484e1039 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/services/get_throughput.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/services/get_throughput.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - +import { BoolQuery } from '@kbn/es-query'; import { kqlQuery, rangeQuery, termQuery } from '@kbn/observability-plugin/server'; import { ApmServiceTransactionDocumentType } from '../../../common/document_type'; import { SERVICE_NAME, TRANSACTION_NAME, TRANSACTION_TYPE } from '../../../common/es_fields/apm'; @@ -17,6 +17,7 @@ import { Maybe } from '../../../typings/common'; interface Options { environment: string; kuery: string; + filters?: BoolQuery; serviceName: string; apmEventClient: APMEventClient; transactionType: string; @@ -34,6 +35,7 @@ export type ServiceThroughputResponse = Array<{ x: number; y: Maybe<number> }>; export async function getThroughput({ environment, kuery, + filters, serviceName, apmEventClient, transactionType, @@ -67,7 +69,9 @@ export async function getThroughput({ ...environmentQuery(environment), ...kqlQuery(kuery), ...termQuery(TRANSACTION_NAME, transactionName), + ...(filters?.filter ?? []), ], + must_not: [...(filters?.must_not ?? [])], }, }, aggs: { diff --git a/x-pack/plugins/observability_solution/apm/server/routes/services/route.ts b/x-pack/plugins/observability_solution/apm/server/routes/services/route.ts index 05fdeec8fdf5d..4b0ef92450f34 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/services/route.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/services/route.ts @@ -33,6 +33,7 @@ import { withApmSpan } from '../../utils/with_apm_span'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, + filtersRt, kueryRt, probabilityRt, rangeRt, @@ -495,7 +496,7 @@ const serviceThroughputRoute = createApmServerRoute({ }), query: t.intersection([ t.type({ transactionType: t.string, bucketSizeInSeconds: toNumberRt }), - t.partial({ transactionName: t.string }), + t.partial({ transactionName: t.string, filters: filtersRt }), t.intersection([environmentRt, kueryRt, rangeRt, offsetRt, serviceTransactionDataSourceRt]), ]), }), @@ -512,6 +513,7 @@ const serviceThroughputRoute = createApmServerRoute({ const { environment, kuery, + filters, transactionType, transactionName, offset, @@ -525,6 +527,7 @@ const serviceThroughputRoute = createApmServerRoute({ const commonProps = { environment, kuery, + filters, serviceName, apmEventClient, transactionType, diff --git a/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts b/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts index 5b77a780bce6a..c2ba9d1014a67 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_failed_transaction_rate_periods.ts @@ -4,6 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { BoolQuery } from '@kbn/es-query'; import { getFailedTransactionRate } from '../../lib/transaction_groups/get_failed_transaction_rate'; import { offsetPreviousPeriodCoordinates } from '../../../common/utils/offset_previous_period_coordinate'; import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; @@ -25,6 +26,7 @@ export interface FailedTransactionRateResponse { export async function getFailedTransactionRatePeriods({ environment, kuery, + filters, serviceName, transactionType, transactionName, @@ -38,6 +40,7 @@ export async function getFailedTransactionRatePeriods({ }: { environment: string; kuery: string; + filters?: BoolQuery; serviceName: string; transactionType: string; transactionName?: string; @@ -52,6 +55,7 @@ export async function getFailedTransactionRatePeriods({ const commonProps = { environment, kuery, + filters, serviceName, transactionTypes: [transactionType], transactionName, diff --git a/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_latency_charts/index.ts b/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_latency_charts/index.ts index f05682ca047bb..70e9555af4849 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_latency_charts/index.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/transactions/get_latency_charts/index.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - +import { BoolQuery } from '@kbn/es-query'; import { kqlQuery, rangeQuery, termQuery } from '@kbn/observability-plugin/server'; import { ApmServiceTransactionDocumentType } from '../../../../common/document_type'; import { @@ -29,6 +29,7 @@ import { getDurationFieldForTransactions } from '../../../lib/helpers/transactio function searchLatency({ environment, kuery, + filters, serviceName, transactionType, transactionName, @@ -45,6 +46,7 @@ function searchLatency({ }: { environment: string; kuery: string; + filters?: BoolQuery; serviceName: string; transactionType: string | undefined; transactionName: string | undefined; @@ -87,7 +89,9 @@ function searchLatency({ ...termQuery(TRANSACTION_NAME, transactionName), ...termQuery(TRANSACTION_TYPE, transactionType), ...termQuery(FAAS_ID, serverlessId), + ...(filters?.filter || []), ], + must_not: filters?.must_not || [], }, }, aggs: { @@ -111,6 +115,7 @@ function searchLatency({ export async function getLatencyTimeseries({ environment, kuery, + filters, serviceName, transactionType, transactionName, @@ -127,6 +132,7 @@ export async function getLatencyTimeseries({ }: { environment: string; kuery: string; + filters?: BoolQuery; serviceName: string; transactionType?: string; transactionName?: string; @@ -144,6 +150,7 @@ export async function getLatencyTimeseries({ const response = await searchLatency({ environment, kuery, + filters, serviceName, transactionType, transactionName, @@ -195,6 +202,7 @@ export async function getLatencyPeriods({ apmEventClient, latencyAggregationType, kuery, + filters, environment, start, end, @@ -210,6 +218,7 @@ export async function getLatencyPeriods({ apmEventClient: APMEventClient; latencyAggregationType: LatencyAggregationType; kuery: string; + filters?: BoolQuery; environment: string; start: number; end: number; @@ -225,6 +234,7 @@ export async function getLatencyPeriods({ transactionName, apmEventClient, kuery, + filters, environment, documentType, rollupInterval, diff --git a/x-pack/plugins/observability_solution/apm/server/routes/transactions/route.ts b/x-pack/plugins/observability_solution/apm/server/routes/transactions/route.ts index 8e6b8a654a030..816879d7cb40a 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/transactions/route.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/transactions/route.ts @@ -4,7 +4,6 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - import { jsonRt, toBooleanRt, toNumberRt } from '@kbn/io-ts-utils'; import * as t from 'io-ts'; import { offsetRt } from '../../../common/comparison_rt'; @@ -23,6 +22,7 @@ import { import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { environmentRt, + filtersRt, kueryRt, rangeRt, serviceTransactionDataSourceRt, @@ -221,7 +221,7 @@ const transactionLatencyChartsRoute = createApmServerRoute({ bucketSizeInSeconds: toNumberRt, useDurationSummary: toBooleanRt, }), - t.partial({ transactionName: t.string }), + t.partial({ transactionName: t.string, filters: filtersRt }), t.intersection([environmentRt, kueryRt, rangeRt, offsetRt]), serviceTransactionDataSourceRt, ]), @@ -235,6 +235,7 @@ const transactionLatencyChartsRoute = createApmServerRoute({ const { environment, kuery, + filters, transactionType, transactionName, latencyAggregationType, @@ -250,6 +251,7 @@ const transactionLatencyChartsRoute = createApmServerRoute({ const options = { environment, kuery, + filters, serviceName, transactionType, transactionName, @@ -372,7 +374,7 @@ const transactionChartsErrorRateRoute = createApmServerRoute({ }), query: t.intersection([ t.type({ transactionType: t.string, bucketSizeInSeconds: toNumberRt }), - t.partial({ transactionName: t.string }), + t.partial({ transactionName: t.string, filters: filtersRt }), t.intersection([environmentRt, kueryRt, rangeRt, offsetRt, serviceTransactionDataSourceRt]), ]), }), @@ -385,6 +387,7 @@ const transactionChartsErrorRateRoute = createApmServerRoute({ const { environment, kuery, + filters, transactionType, transactionName, start, @@ -398,6 +401,7 @@ const transactionChartsErrorRateRoute = createApmServerRoute({ return getFailedTransactionRatePeriods({ environment, kuery, + filters, serviceName, transactionType, transactionName, diff --git a/x-pack/test/apm_api_integration/tests/services/throughput.spec.ts b/x-pack/test/apm_api_integration/tests/services/throughput.spec.ts index ef56e61bf4f82..624706d30115a 100644 --- a/x-pack/test/apm_api_integration/tests/services/throughput.spec.ts +++ b/x-pack/test/apm_api_integration/tests/services/throughput.spec.ts @@ -7,6 +7,7 @@ import { apm, timerange } from '@kbn/apm-synthtrace-client'; import expect from '@kbn/expect'; +import { buildQueryFromFilters } from '@kbn/es-query'; import { first, last, meanBy } from 'lodash'; import moment from 'moment'; import { isFiniteNumber } from '@kbn/apm-plugin/common/utils/is_finite_number'; @@ -285,6 +286,250 @@ export default function ApiTest({ getService }: FtrProviderContext) { ); }); }); + + describe('handles kuery', () => { + let throughputMetrics: ThroughputReturn; + let throughputTransactions: ThroughputReturn; + + before(async () => { + const [throughputMetricsResponse, throughputTransactionsResponse] = await Promise.all([ + callApi( + { + query: { + kuery: 'transaction.name : "GET /api/product/list"', + }, + }, + 'metric' + ), + callApi( + { + query: { + kuery: 'transaction.name : "GET /api/product/list"', + }, + }, + 'transaction' + ), + ]); + throughputMetrics = throughputMetricsResponse.body; + throughputTransactions = throughputTransactionsResponse.body; + }); + + it('returns some transactions data', () => { + expect(throughputTransactions.currentPeriod.length).to.be.greaterThan(0); + const hasData = throughputTransactions.currentPeriod.some(({ y }) => isFiniteNumber(y)); + expect(hasData).to.equal(true); + }); + + it('returns some metrics data', () => { + expect(throughputMetrics.currentPeriod.length).to.be.greaterThan(0); + const hasData = throughputMetrics.currentPeriod.some(({ y }) => isFiniteNumber(y)); + expect(hasData).to.equal(true); + }); + + it('has same mean value for metrics and transactions data', () => { + const transactionsMean = meanBy(throughputTransactions.currentPeriod, 'y'); + const metricsMean = meanBy(throughputMetrics.currentPeriod, 'y'); + [transactionsMean, metricsMean].forEach((value) => + expect(roundNumber(value)).to.be.equal(roundNumber(GO_PROD_RATE)) + ); + }); + + it('has a bucket size of 30 seconds for transactions data', () => { + const firstTimerange = throughputTransactions.currentPeriod[0].x; + const secondTimerange = throughputTransactions.currentPeriod[1].x; + const timeIntervalAsSeconds = (secondTimerange - firstTimerange) / 1000; + expect(timeIntervalAsSeconds).to.equal(30); + }); + + it('has a bucket size of 1 minute for metrics data', () => { + const firstTimerange = throughputMetrics.currentPeriod[0].x; + const secondTimerange = throughputMetrics.currentPeriod[1].x; + const timeIntervalAsMinutes = (secondTimerange - firstTimerange) / 1000 / 60; + expect(timeIntervalAsMinutes).to.equal(1); + }); + }); + + describe('handles filters', () => { + let throughputMetrics: ThroughputReturn; + let throughputTransactions: ThroughputReturn; + const filters = [ + { + meta: { + disabled: false, + negate: false, + alias: null, + key: 'transaction.name', + params: ['GET /api/product/list'], + type: 'phrases', + }, + query: { + bool: { + minimum_should_match: 1, + should: { + match_phrase: { + 'transaction.name': 'GET /api/product/list', + }, + }, + }, + }, + }, + ]; + const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined)); + + before(async () => { + const [throughputMetricsResponse, throughputTransactionsResponse] = await Promise.all([ + callApi( + { + query: { + filters: serializedFilters, + }, + }, + 'metric' + ), + callApi( + { + query: { + filters: serializedFilters, + }, + }, + 'transaction' + ), + ]); + throughputMetrics = throughputMetricsResponse.body; + throughputTransactions = throughputTransactionsResponse.body; + }); + + it('returns some transactions data', () => { + expect(throughputTransactions.currentPeriod.length).to.be.greaterThan(0); + const hasData = throughputTransactions.currentPeriod.some(({ y }) => isFiniteNumber(y)); + expect(hasData).to.equal(true); + }); + + it('returns some metrics data', () => { + expect(throughputMetrics.currentPeriod.length).to.be.greaterThan(0); + const hasData = throughputMetrics.currentPeriod.some(({ y }) => isFiniteNumber(y)); + expect(hasData).to.equal(true); + }); + + it('has same mean value for metrics and transactions data', () => { + const transactionsMean = meanBy(throughputTransactions.currentPeriod, 'y'); + const metricsMean = meanBy(throughputMetrics.currentPeriod, 'y'); + [transactionsMean, metricsMean].forEach((value) => + expect(roundNumber(value)).to.be.equal(roundNumber(GO_PROD_RATE)) + ); + }); + + it('has a bucket size of 30 seconds for transactions data', () => { + const firstTimerange = throughputTransactions.currentPeriod[0].x; + const secondTimerange = throughputTransactions.currentPeriod[1].x; + const timeIntervalAsSeconds = (secondTimerange - firstTimerange) / 1000; + expect(timeIntervalAsSeconds).to.equal(30); + }); + + it('has a bucket size of 1 minute for metrics data', () => { + const firstTimerange = throughputMetrics.currentPeriod[0].x; + const secondTimerange = throughputMetrics.currentPeriod[1].x; + const timeIntervalAsMinutes = (secondTimerange - firstTimerange) / 1000 / 60; + expect(timeIntervalAsMinutes).to.equal(1); + }); + }); + + describe('handles negate filters', () => { + let throughputMetrics: ThroughputReturn; + let throughputTransactions: ThroughputReturn; + const filters = [ + { + meta: { + disabled: false, + negate: true, + alias: null, + key: 'transaction.name', + params: ['GET /api/product/list'], + type: 'phrases', + }, + query: { + bool: { + minimum_should_match: 1, + should: { + match_phrase: { + 'transaction.name': 'GET /api/product/list', + }, + }, + }, + }, + }, + ]; + const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined)); + + before(async () => { + const [throughputMetricsResponse, throughputTransactionsResponse] = await Promise.all([ + callApi( + { + query: { + filters: serializedFilters, + }, + }, + 'metric' + ), + callApi( + { + query: { + filters: serializedFilters, + }, + }, + 'transaction' + ), + ]); + throughputMetrics = throughputMetricsResponse.body; + throughputTransactions = throughputTransactionsResponse.body; + }); + + it('returns some transactions data', () => { + expect(throughputTransactions.currentPeriod.length).to.be.greaterThan(0); + const hasData = throughputTransactions.currentPeriod.some(({ y }) => isFiniteNumber(y)); + expect(hasData).to.equal(true); + }); + + it('returns some metrics data', () => { + expect(throughputMetrics.currentPeriod.length).to.be.greaterThan(0); + const hasData = throughputMetrics.currentPeriod.some(({ y }) => isFiniteNumber(y)); + expect(hasData).to.equal(true); + }); + + it('has same mean value for metrics and transactions data', () => { + const transactionsMean = meanBy(throughputTransactions.currentPeriod, 'y'); + const metricsMean = meanBy(throughputMetrics.currentPeriod, 'y'); + [transactionsMean, metricsMean].forEach((value) => + expect(roundNumber(value)).to.be.equal(roundNumber(GO_DEV_RATE)) + ); + }); + + it('has a bucket size of 30 seconds for transactions data', () => { + const firstTimerange = throughputTransactions.currentPeriod[0].x; + const secondTimerange = throughputTransactions.currentPeriod[1].x; + const timeIntervalAsSeconds = (secondTimerange - firstTimerange) / 1000; + expect(timeIntervalAsSeconds).to.equal(30); + }); + + it('has a bucket size of 1 minute for metrics data', () => { + const firstTimerange = throughputMetrics.currentPeriod[0].x; + const secondTimerange = throughputMetrics.currentPeriod[1].x; + const timeIntervalAsMinutes = (secondTimerange - firstTimerange) / 1000 / 60; + expect(timeIntervalAsMinutes).to.equal(1); + }); + }); + + describe('handles bad filters request', () => { + it('throws bad request error', async () => { + try { + await callApi({ + query: { environment: 'production', filters: '{}}' }, + }); + } catch (error) { + expect(error.res.status).to.be(400); + } + }); + }); }); }); } diff --git a/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts b/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts index 996127103b090..123bb0d6d594d 100644 --- a/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts +++ b/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts @@ -6,6 +6,7 @@ */ import { apm, timerange } from '@kbn/apm-synthtrace-client'; import expect from '@kbn/expect'; +import { buildQueryFromFilters } from '@kbn/es-query'; import { first, last } from 'lodash'; import moment from 'moment'; import { @@ -297,5 +298,136 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); }); }); + + describe('handles kuery', () => { + let txMetricsErrorRateResponse: ErrorRate; + + before(async () => { + const txMetricsResponse = await fetchErrorCharts({ + query: { + kuery: 'transaction.name : "GET /pear 🍎 "', + }, + }); + txMetricsErrorRateResponse = txMetricsResponse.body; + }); + + describe('has the correct calculation for average with kuery', () => { + const expectedFailureRate = config.secondTransaction.failureRate / 100; + + it('for tx metrics', () => { + expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate); + }); + }); + }); + + describe('handles filters', () => { + const filters = [ + { + meta: { + disabled: false, + negate: false, + alias: null, + key: 'transaction.name', + params: ['GET /api/product/list'], + type: 'phrases', + }, + query: { + bool: { + minimum_should_match: 1, + should: { + match_phrase: { + 'transaction.name': 'GET /pear 🍎 ', + }, + }, + }, + }, + }, + ]; + const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined)); + let txMetricsErrorRateResponse: ErrorRate; + + before(async () => { + const txMetricsResponse = await fetchErrorCharts({ + query: { + filters: serializedFilters, + }, + }); + txMetricsErrorRateResponse = txMetricsResponse.body; + }); + + describe('has the correct calculation for average with filter', () => { + const expectedFailureRate = config.secondTransaction.failureRate / 100; + + it('for tx metrics', () => { + expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate); + }); + }); + + describe('has the correct calculation for average with negate filter', () => { + const expectedFailureRate = config.secondTransaction.failureRate / 100; + + it('for tx metrics', () => { + expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate); + }); + }); + }); + + describe('handles negate filters', () => { + const filters = [ + { + meta: { + disabled: false, + negate: true, + alias: null, + key: 'transaction.name', + params: ['GET /api/product/list'], + type: 'phrases', + }, + query: { + bool: { + minimum_should_match: 1, + should: { + match_phrase: { + 'transaction.name': 'GET /pear 🍎 ', + }, + }, + }, + }, + }, + ]; + const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined)); + let txMetricsErrorRateResponse: ErrorRate; + + before(async () => { + const txMetricsResponse = await fetchErrorCharts({ + query: { + filters: serializedFilters, + }, + }); + txMetricsErrorRateResponse = txMetricsResponse.body; + }); + + describe('has the correct calculation for average with filter', () => { + const expectedFailureRate = config.firstTransaction.failureRate / 100; + + it('for tx metrics', () => { + expect(txMetricsErrorRateResponse.currentPeriod.average).to.eql(expectedFailureRate); + }); + }); + }); + + describe('handles bad filters request', () => { + it('for tx metrics', async () => { + try { + await fetchErrorCharts({ + query: { + filters: '{}}}', + }, + }); + } catch (e) { + expect(e.res.status).to.eql(400); + } + }); + }); }); } diff --git a/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts b/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts index a1cea01f408ca..eb876e6e312b7 100644 --- a/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts +++ b/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts @@ -6,6 +6,7 @@ */ import { apm, timerange } from '@kbn/apm-synthtrace-client'; import expect from '@kbn/expect'; +import { buildQueryFromFilters } from '@kbn/es-query'; import moment from 'moment'; import { APIClientRequestParamsOf, @@ -115,6 +116,9 @@ export default function ApiTest({ getService }: FtrProviderContext) { ((GO_PROD_RATE * GO_PROD_DURATION + GO_DEV_RATE * GO_DEV_DURATION) / (GO_PROD_RATE + GO_DEV_RATE)) * 1000; + const expectedLatencyAvgValueProdMs = + ((GO_PROD_RATE * GO_PROD_DURATION) / GO_PROD_RATE) * 1000; + const expectedLatencyAvgValueDevMs = ((GO_DEV_RATE * GO_DEV_DURATION) / GO_DEV_RATE) * 1000; describe('average latency type', () => { it('returns average duration and timeseries', async () => { @@ -319,6 +323,122 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); }); }); + + describe('handles kuery', () => { + it('should return the appropriate latency values when a kuery is applied', async () => { + const response = await fetchLatencyCharts({ + query: { + latencyAggregationType: LatencyAggregationType.p95, + useDurationSummary: false, + kuery: 'transaction.name : "GET /api/product/list"', + }, + }); + + expect(response.status).to.be(200); + const latencyChartReturn = response.body as LatencyChartReturnType; + + expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be( + expectedLatencyAvgValueProdMs + ); + expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(15); + }); + }); + + describe('handles filters', () => { + it('should return the appropriate latency values when filters are applied', async () => { + const filters = [ + { + meta: { + disabled: false, + negate: false, + alias: null, + key: 'transaction.name', + params: ['GET /api/product/list'], + type: 'phrases', + }, + query: { + bool: { + minimum_should_match: 1, + should: { + match_phrase: { + 'transaction.name': 'GET /api/product/list', + }, + }, + }, + }, + }, + ]; + const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined)); + const response = await fetchLatencyCharts({ + query: { + latencyAggregationType: LatencyAggregationType.p95, + useDurationSummary: false, + filters: serializedFilters, + }, + }); + + expect(response.status).to.be(200); + const latencyChartReturn = response.body as LatencyChartReturnType; + + expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be( + expectedLatencyAvgValueProdMs + ); + expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(15); + }); + + it('should return the appropriate latency values when negate filters are applied', async () => { + const filters = [ + { + meta: { + disabled: false, + negate: true, + alias: null, + key: 'transaction.name', + params: ['GET /api/product/list'], + type: 'phrases', + }, + query: { + bool: { + minimum_should_match: 1, + should: { + match_phrase: { + 'transaction.name': 'GET /api/product/list', + }, + }, + }, + }, + }, + ]; + const serializedFilters = JSON.stringify(buildQueryFromFilters(filters, undefined)); + const response = await fetchLatencyCharts({ + query: { + latencyAggregationType: LatencyAggregationType.p95, + useDurationSummary: false, + filters: serializedFilters, + }, + }); + + expect(response.status).to.be(200); + const latencyChartReturn = response.body as LatencyChartReturnType; + + expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be( + expectedLatencyAvgValueDevMs + ); + expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(15); + }); + }); + + describe('handles bad filters request', () => { + it('throws bad request error', async () => { + try { + await fetchLatencyCharts({ + query: { environment: 'production', filters: '{}}' }, + }); + } catch (error) { + expect(error.res.status).to.be(400); + } + }); + }); } ); } From f52db83d33735f2ce0463d510e75b81f05dab6f1 Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski <jon@elastic.co> Date: Wed, 24 Apr 2024 14:40:47 -0500 Subject: [PATCH 168/183] Revert "Enable heap snapshots for all our distributables (#181363)" This reverts commit 26b8c71730de6686fe4fe5de5f60ab5577b79902. --- config/node.options | 4 ---- .../os_packages/docker_generator/templates/base/Dockerfile | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/config/node.options b/config/node.options index 2bc49f5db1f4a..abcb40a5c19d4 100644 --- a/config/node.options +++ b/config/node.options @@ -13,7 +13,3 @@ ## enable OpenSSL 3 legacy provider --openssl-legacy-provider - -# Enable capturing heap snapshots. See https://nodejs.org/api/cli.html#--heapsnapshot-signalsignal ---heapsnapshot-signal=SIGUSR2 ---diagnostic-dir=./data \ No newline at end of file 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..1869086b51ab7 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 @@ -157,6 +157,9 @@ COPY --chown=1000:0 config/serverless.yml /usr/share/kibana/config/serverless.ym COPY --chown=1000:0 config/serverless.es.yml /usr/share/kibana/config/serverless.es.yml COPY --chown=1000:0 config/serverless.oblt.yml /usr/share/kibana/config/serverless.oblt.yml COPY --chown=1000:0 config/serverless.security.yml /usr/share/kibana/config/serverless.security.yml +# Supportability enhancement: enable capturing heap snapshots. See https://nodejs.org/api/cli.html#--heapsnapshot-signalsignal +RUN /usr/bin/echo -e '\n--heapsnapshot-signal=SIGUSR2' >> config/node.options +RUN /usr/bin/echo '--diagnostic-dir=./data' >> config/node.options ENV PROFILER_SIGNAL=SIGUSR1 {{/serverless}} {{^opensslLegacyProvider}} From 0bce10993fdf2d75bb2b1819b807654d5d5be777 Mon Sep 17 00:00:00 2001 From: christineweng <18648970+christineweng@users.noreply.github.com> Date: Wed, 24 Apr 2024 14:58:50 -0500 Subject: [PATCH 169/183] [Security Solution][Alert Details] Fix ancestry and same source insights (#181095) ## Summary Commit f9259faa3d3f2dfbf824fe934f2a32ae1999cbe9 address https://github.com/elastic/kibana/issues/180842 - Fields like `kibana.alert.ancestors.id` and `kibana.alert.rule.parameters.index` were previously used to fetch insights, but they are specific to alerts. To enable alerts by ancestry and alerts by same source events for non-alerts, this PR adds event id and default indices as fall back. ![image](https://github.com/elastic/kibana/assets/18648970/6691f841-5906-48f6-af80-e99c03def092) Commit bf6f8b73080987067ad126056042e145c3da372b address https://github.com/elastic/kibana/issues/181237 - There are checks to guard whether we can show as least 1 insight ([here](https://github.com/elastic/kibana/blob/main/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.tsx#L59)). However, the guard is only checking whether we have valid parameters, there is still a possibility that 0 alert is returned. In that case, the correlations is blank. The alert flyout avoids this scenario because there is always at least 1 alert by same source - As part of the fix above, alert by same source is now always enabled. This PR ensures we show same source insight even though no alert is found. Before ![image](https://github.com/elastic/kibana/assets/18648970/f053bf11-644f-4a5a-bfeb-5e0ce574b84c) After ![image](https://github.com/elastic/kibana/assets/18648970/a7b4d568-4c1e-413a-8dc4-ecfefd9a6a74) **How to test** - Generate some events and alerts - Go to Explore -> Host -> Events table - Expand a row details, scroll down to insights -> correlations, alerts by same source and alerts by ancestry insights should be present for applicable events (if you have endpoint security rule enabled, filter by `event.kind==alert`) - Note you need premium and above to see alerts by ancestry insight. ### 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 --- .../components/correlations_details.test.tsx | 37 +++++-------------- .../left/components/correlations_details.tsx | 27 +++++--------- ...lated_alerts_by_same_source_event.test.tsx | 13 +++++-- .../related_alerts_by_same_source_event.tsx | 6 +-- .../components/correlations_overview.test.tsx | 35 +++++++----------- .../components/correlations_overview.tsx | 33 ++++++++--------- .../components/insights_section.test.tsx | 7 ++++ ...lated_alerts_by_same_source_event.test.tsx | 11 ++++-- .../related_alerts_by_same_source_event.tsx | 3 +- ...e_show_related_alerts_by_ancestry.test.tsx | 12 ------ .../use_show_related_alerts_by_ancestry.ts | 26 +------------ ...lated_alerts_by_same_source_event.test.tsx | 14 +++++-- ...how_related_alerts_by_same_source_event.ts | 15 +++++--- 13 files changed, 97 insertions(+), 142 deletions(-) diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.test.tsx index aad62c152773a..a0a147d9754d5 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.test.tsx @@ -27,6 +27,7 @@ import { useFetchRelatedAlertsByAncestry } from '../../shared/hooks/use_fetch_re import { useFetchRelatedAlertsBySameSourceEvent } from '../../shared/hooks/use_fetch_related_alerts_by_same_source_event'; import { useFetchRelatedCases } from '../../shared/hooks/use_fetch_related_cases'; import { mockContextValue } from '../mocks/mock_context'; +import { useTimelineDataFilters } from '../../../../timelines/containers/use_timeline_data_filters'; import { EXPANDABLE_PANEL_HEADER_TITLE_TEXT_TEST_ID } from '../../../shared/components/test_ids'; jest.mock('react-router-dom', () => { @@ -43,6 +44,11 @@ jest.mock('../../shared/hooks/use_fetch_related_alerts_by_ancestry'); jest.mock('../../shared/hooks/use_fetch_related_alerts_by_same_source_event'); jest.mock('../../shared/hooks/use_fetch_related_cases'); +jest.mock('../../../../timelines/containers/use_timeline_data_filters', () => ({ + useTimelineDataFilters: jest.fn(), +})); +const mockUseTimelineDataFilters = useTimelineDataFilters as jest.Mock; + const renderCorrelationDetails = () => { return render( <TestProviders> @@ -62,12 +68,13 @@ const NO_DATA_MESSAGE = 'No correlations data available.'; describe('CorrelationsDetails', () => { beforeEach(() => { jest.clearAllMocks(); + mockUseTimelineDataFilters.mockReturnValue({ selectedPatterns: ['index'] }); }); it('renders all sections', () => { jest .mocked(useShowRelatedAlertsByAncestry) - .mockReturnValue({ show: true, documentId: 'event-id', indices: ['index1'] }); + .mockReturnValue({ show: true, documentId: 'event-id' }); jest .mocked(useShowRelatedAlertsBySameSourceEvent) .mockReturnValue({ show: true, originalEventId: 'originalEventId' }); @@ -115,7 +122,7 @@ describe('CorrelationsDetails', () => { it('should render no section and show error message if show values are false', () => { jest .mocked(useShowRelatedAlertsByAncestry) - .mockReturnValue({ show: false, documentId: 'event-id', indices: ['index1'] }); + .mockReturnValue({ show: false, documentId: 'event-id' }); jest .mocked(useShowRelatedAlertsBySameSourceEvent) .mockReturnValue({ show: false, originalEventId: 'originalEventId' }); @@ -142,30 +149,4 @@ describe('CorrelationsDetails', () => { ).not.toBeInTheDocument(); expect(getByText(NO_DATA_MESSAGE)).toBeInTheDocument(); }); - - it('should render no section if values are null', () => { - jest - .mocked(useShowRelatedAlertsByAncestry) - .mockReturnValue({ show: true, documentId: 'event-id' }); - jest.mocked(useShowRelatedAlertsBySameSourceEvent).mockReturnValue({ show: true }); - jest.mocked(useShowRelatedAlertsBySession).mockReturnValue({ show: true }); - jest.mocked(useShowRelatedCases).mockReturnValue(false); - jest.mocked(useShowSuppressedAlerts).mockReturnValue({ show: false, alertSuppressionCount: 0 }); - - const { queryByTestId } = renderCorrelationDetails(); - - expect( - queryByTestId(CORRELATIONS_DETAILS_BY_ANCESTRY_SECTION_TABLE_TEST_ID) - ).not.toBeInTheDocument(); - expect( - queryByTestId(CORRELATIONS_DETAILS_BY_SOURCE_SECTION_TABLE_TEST_ID) - ).not.toBeInTheDocument(); - expect( - queryByTestId(CORRELATIONS_DETAILS_BY_SESSION_SECTION_TABLE_TEST_ID) - ).not.toBeInTheDocument(); - expect(queryByTestId(CORRELATIONS_DETAILS_CASES_SECTION_TABLE_TEST_ID)).not.toBeInTheDocument(); - expect( - queryByTestId(CORRELATIONS_DETAILS_SUPPRESSED_ALERTS_TITLE_TEST_ID) - ).not.toBeInTheDocument(); - }); }); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.tsx index 226fbe4d7a4d6..9c5a33a04a243 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/correlations_details.tsx @@ -20,6 +20,8 @@ import { useShowRelatedAlertsBySameSourceEvent } from '../../shared/hooks/use_sh import { useShowRelatedAlertsBySession } from '../../shared/hooks/use_show_related_alerts_by_session'; import { RelatedAlertsByAncestry } from './related_alerts_by_ancestry'; import { SuppressedAlerts } from './suppressed_alerts'; +import { useTimelineDataFilters } from '../../../../timelines/containers/use_timeline_data_filters'; +import { isActiveTimeline } from '../../../../helpers'; export const CORRELATIONS_TAB_ID = 'correlations'; @@ -27,27 +29,18 @@ export const CORRELATIONS_TAB_ID = 'correlations'; * Correlations displayed in the document details expandable flyout left section under the Insights tab */ export const CorrelationsDetails: React.FC = () => { - const { - dataAsNestedObject, - dataFormattedForFieldBrowser, - eventId, - getFieldsData, - scopeId, - isPreview, - } = useLeftPanelContext(); + const { dataAsNestedObject, eventId, getFieldsData, scopeId, isPreview } = useLeftPanelContext(); + + const { selectedPatterns } = useTimelineDataFilters(isActiveTimeline(scopeId)); - const { - show: showAlertsByAncestry, - indices, - documentId, - } = useShowRelatedAlertsByAncestry({ + const { show: showAlertsByAncestry, documentId } = useShowRelatedAlertsByAncestry({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview, }); const { show: showSameSourceAlerts, originalEventId } = useShowRelatedAlertsBySameSourceEvent({ + eventId, getFieldsData, }); const { show: showAlertsBySession, entityId } = useShowRelatedAlertsBySession({ getFieldsData }); @@ -80,7 +73,7 @@ export const CorrelationsDetails: React.FC = () => { <RelatedCases eventId={eventId} /> </EuiFlexItem> )} - {showSameSourceAlerts && originalEventId && ( + {showSameSourceAlerts && ( <EuiFlexItem> <RelatedAlertsBySameSourceEvent originalEventId={originalEventId} @@ -94,10 +87,10 @@ export const CorrelationsDetails: React.FC = () => { <RelatedAlertsBySession entityId={entityId} scopeId={scopeId} eventId={eventId} /> </EuiFlexItem> )} - {showAlertsByAncestry && documentId && indices && ( + {showAlertsByAncestry && ( <EuiFlexItem> <RelatedAlertsByAncestry - indices={indices} + indices={selectedPatterns} scopeId={scopeId} documentId={documentId} /> diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.test.tsx index 66902bd9bda34..e8334613d1d24 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.test.tsx @@ -94,14 +94,21 @@ describe('<RelatedAlertsBySameSourceEvent />', () => { expect(getByTestId(CORRELATIONS_DETAILS_BY_SOURCE_SECTION_TABLE_TEST_ID)).toBeInTheDocument(); }); - it('should render null if error', () => { + it('should render no data message if error', () => { (useFetchRelatedAlertsBySameSourceEvent as jest.Mock).mockReturnValue({ loading: false, error: true, + data: [], + dataCount: 0, + }); + (usePaginatedAlerts as jest.Mock).mockReturnValue({ + loading: false, + error: false, + data: [], }); - const { container } = renderRelatedAlertsBySameSourceEvent(); - expect(container).toBeEmptyDOMElement(); + const { getByText } = renderRelatedAlertsBySameSourceEvent(); + expect(getByText('No related source events.')).toBeInTheDocument(); }); it('should render no data message', () => { diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.tsx index e3bbf48c5fe15..42c9d910d93c6 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/related_alerts_by_same_source_event.tsx @@ -34,15 +34,11 @@ export const RelatedAlertsBySameSourceEvent: React.VFC<RelatedAlertsBySameSource scopeId, eventId, }) => { - const { loading, error, data, dataCount } = useFetchRelatedAlertsBySameSourceEvent({ + const { loading, data, dataCount } = useFetchRelatedAlertsBySameSourceEvent({ originalEventId, scopeId, }); - if (error) { - return null; - } - return ( <CorrelationsDetailsAlertsTable title={ diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.test.tsx index 531639235bbfb..ad2cdb8b06f6b 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.test.tsx @@ -31,6 +31,7 @@ import { useShowSuppressedAlerts } from '../../shared/hooks/use_show_suppressed_ import { useFetchRelatedAlertsByAncestry } from '../../shared/hooks/use_fetch_related_alerts_by_ancestry'; import { useFetchRelatedAlertsBySameSourceEvent } from '../../shared/hooks/use_fetch_related_alerts_by_same_source_event'; import { useFetchRelatedAlertsBySession } from '../../shared/hooks/use_fetch_related_alerts_by_session'; +import { useTimelineDataFilters } from '../../../../timelines/containers/use_timeline_data_filters'; import { useFetchRelatedCases } from '../../shared/hooks/use_fetch_related_cases'; import { EXPANDABLE_PANEL_HEADER_TITLE_ICON_TEST_ID, @@ -93,16 +94,26 @@ jest.mock('@kbn/expandable-flyout', () => ({ ExpandableFlyoutProvider: ({ children }: React.PropsWithChildren<{}>) => <>{children}</>, })); +jest.mock('../../../../timelines/containers/use_timeline_data_filters', () => ({ + useTimelineDataFilters: jest.fn(), +})); +const mockUseTimelineDataFilters = useTimelineDataFilters as jest.Mock; + +const originalEventId = 'originalEventId'; + describe('<CorrelationsOverview />', () => { beforeAll(() => { jest.mocked(useExpandableFlyoutApi).mockReturnValue(flyoutContextValue); + mockUseTimelineDataFilters.mockReturnValue({ selectedPatterns: ['index'] }); }); it('should render wrapper component', () => { jest .mocked(useShowRelatedAlertsByAncestry) .mockReturnValue({ show: false, documentId: 'event-id' }); - jest.mocked(useShowRelatedAlertsBySameSourceEvent).mockReturnValue({ show: false }); + jest + .mocked(useShowRelatedAlertsBySameSourceEvent) + .mockReturnValue({ show: false, originalEventId }); jest.mocked(useShowRelatedAlertsBySession).mockReturnValue({ show: false }); jest.mocked(useShowRelatedCases).mockReturnValue(false); jest.mocked(useShowSuppressedAlerts).mockReturnValue({ show: false, alertSuppressionCount: 0 }); @@ -117,7 +128,7 @@ describe('<CorrelationsOverview />', () => { it('should show component with all rows in expandable panel', () => { jest .mocked(useShowRelatedAlertsByAncestry) - .mockReturnValue({ show: true, documentId: 'event-id', indices: ['index1'] }); + .mockReturnValue({ show: true, documentId: 'event-id' }); jest .mocked(useShowRelatedAlertsBySameSourceEvent) .mockReturnValue({ show: true, originalEventId: 'originalEventId' }); @@ -160,7 +171,7 @@ describe('<CorrelationsOverview />', () => { it('should hide rows and show error message if show values are false', () => { jest .mocked(useShowRelatedAlertsByAncestry) - .mockReturnValue({ show: false, documentId: 'event-id', indices: ['index1'] }); + .mockReturnValue({ show: false, documentId: 'event-id' }); jest .mocked(useShowRelatedAlertsBySameSourceEvent) .mockReturnValue({ show: false, originalEventId: 'originalEventId' }); @@ -179,24 +190,6 @@ describe('<CorrelationsOverview />', () => { expect(getByText(NO_DATA_MESSAGE)).toBeInTheDocument(); }); - it('should hide rows if values are null', () => { - jest - .mocked(useShowRelatedAlertsByAncestry) - .mockReturnValue({ show: true, documentId: 'event-id' }); - jest.mocked(useShowRelatedAlertsBySameSourceEvent).mockReturnValue({ show: true }); - jest.mocked(useShowRelatedAlertsBySession).mockReturnValue({ show: true }); - jest.mocked(useShowRelatedCases).mockReturnValue(false); - jest.mocked(useShowSuppressedAlerts).mockReturnValue({ show: false, alertSuppressionCount: 0 }); - - const { queryByTestId, queryByText } = render(renderCorrelationsOverview(panelContextValue)); - expect(queryByTestId(RELATED_ALERTS_BY_ANCESTRY_TEST_ID)).not.toBeInTheDocument(); - expect(queryByTestId(RELATED_ALERTS_BY_SAME_SOURCE_EVENT_TEST_ID)).not.toBeInTheDocument(); - expect(queryByTestId(RELATED_ALERTS_BY_SESSION_TEST_ID)).not.toBeInTheDocument(); - expect(queryByTestId(RELATED_CASES_TEST_ID)).not.toBeInTheDocument(); - expect(queryByTestId(SUPPRESSED_ALERTS_TEST_ID)).not.toBeInTheDocument(); - expect(queryByText(NO_DATA_MESSAGE)).not.toBeInTheDocument(); - }); - it('should navigate to the left section Insights tab when clicking on button', () => { const { getByTestId } = render( <TestProviders> diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.tsx index 6d91eabd00304..e272a058bf0da 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/correlations_overview.tsx @@ -24,6 +24,8 @@ import { CORRELATIONS_TEST_ID } from './test_ids'; import { useRightPanelContext } from '../context'; import { DocumentDetailsLeftPanelKey, LeftPanelInsightsTab } from '../../left'; import { CORRELATIONS_TAB_ID } from '../../left/components/correlations_details'; +import { useTimelineDataFilters } from '../../../../timelines/containers/use_timeline_data_filters'; +import { isActiveTimeline } from '../../../../helpers'; /** * Correlations section under Insights section, overview tab. @@ -31,17 +33,12 @@ import { CORRELATIONS_TAB_ID } from '../../left/components/correlations_details' * and the SummaryPanel component for data rendering. */ export const CorrelationsOverview: React.FC = () => { - const { - dataAsNestedObject, - dataFormattedForFieldBrowser, - eventId, - indexName, - getFieldsData, - scopeId, - isPreview, - } = useRightPanelContext(); + const { dataAsNestedObject, eventId, indexName, getFieldsData, scopeId, isPreview } = + useRightPanelContext(); const { openLeftPanel } = useExpandableFlyoutApi(); + const { selectedPatterns } = useTimelineDataFilters(isActiveTimeline(scopeId)); + const goToCorrelationsTab = useCallback(() => { openLeftPanel({ id: DocumentDetailsLeftPanelKey, @@ -57,18 +54,14 @@ export const CorrelationsOverview: React.FC = () => { }); }, [eventId, openLeftPanel, indexName, scopeId]); - const { - show: showAlertsByAncestry, - documentId, - indices, - } = useShowRelatedAlertsByAncestry({ + const { show: showAlertsByAncestry, documentId } = useShowRelatedAlertsByAncestry({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview, }); const { show: showSameSourceAlerts, originalEventId } = useShowRelatedAlertsBySameSourceEvent({ + eventId, getFieldsData, }); const { show: showAlertsBySession, entityId } = useShowRelatedAlertsBySession({ getFieldsData }); @@ -112,14 +105,18 @@ export const CorrelationsOverview: React.FC = () => { <SuppressedAlerts alertSuppressionCount={alertSuppressionCount} /> )} {showCases && <RelatedCases eventId={eventId} />} - {showSameSourceAlerts && originalEventId && ( + {showSameSourceAlerts && ( <RelatedAlertsBySameSourceEvent originalEventId={originalEventId} scopeId={scopeId} /> )} {showAlertsBySession && entityId && ( <RelatedAlertsBySession entityId={entityId} scopeId={scopeId} /> )} - {showAlertsByAncestry && documentId && indices && ( - <RelatedAlertsByAncestry documentId={documentId} indices={indices} scopeId={scopeId} /> + {showAlertsByAncestry && ( + <RelatedAlertsByAncestry + documentId={documentId} + indices={selectedPatterns} + scopeId={scopeId} + /> )} </EuiFlexGroup> ) : ( diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/insights_section.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/insights_section.test.tsx index 71897773d801e..81f9c6d54457e 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/insights_section.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/insights_section.test.tsx @@ -28,6 +28,7 @@ import { InsightsSection } from './insights_section'; import { useAlertPrevalence } from '../../../../common/containers/alerts/use_alert_prevalence'; import { useRiskScore } from '../../../../entity_analytics/api/hooks/use_risk_score'; import { useExpandSection } from '../hooks/use_expand_section'; +import { useTimelineDataFilters } from '../../../../timelines/containers/use_timeline_data_filters'; jest.mock('../../../../common/containers/alerts/use_alert_prevalence'); @@ -55,6 +56,11 @@ jest.mock('react-router-dom', () => { alertIds: [], }); +jest.mock('../../../../timelines/containers/use_timeline_data_filters', () => ({ + useTimelineDataFilters: jest.fn(), +})); +const mockUseTimelineDataFilters = useTimelineDataFilters as jest.Mock; + const from = '2022-04-05T12:00:00.000Z'; const to = '2022-04-08T12:00:00.;000Z'; const selectedPatterns = 'alerts'; @@ -101,6 +107,7 @@ const renderInsightsSection = (contextValue: RightPanelContext) => describe('<InsightsSection />', () => { beforeEach(() => { + mockUseTimelineDataFilters.mockReturnValue({ selectedPatterns: ['index'] }); mockUseUserDetails.mockReturnValue([false, { userDetails: null }]); mockUseRiskScore.mockReturnValue({ data: null, isAuthorized: false }); mockUseHostDetails.mockReturnValue([false, { hostDetails: null }]); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.test.tsx index 59dfb183a1338..d52d547397789 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.test.tsx @@ -79,13 +79,18 @@ describe('<RelatedAlertsBySameSourceEvent />', () => { expect(getByTestId(LOADING_TEST_ID)).toBeInTheDocument(); }); - it('should render null if error', () => { + it('should render 0 same source alert if error', () => { (useFetchRelatedAlertsBySameSourceEvent as jest.Mock).mockReturnValue({ loading: false, error: true, + dataCount: 0, }); - const { container } = renderRelatedAlertsBySameSourceEvent(); - expect(container).toBeEmptyDOMElement(); + const { getByTestId } = renderRelatedAlertsBySameSourceEvent(); + expect(getByTestId(ICON_TEST_ID)).toBeInTheDocument(); + const value = getByTestId(VALUE_TEST_ID); + expect(value).toBeInTheDocument(); + expect(value).toHaveTextContent('0 alerts related by source event'); + expect(getByTestId(VALUE_TEST_ID)).toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.tsx index e309a2e4bc93a..0c1550dbb8692 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/related_alerts_by_same_source_event.tsx @@ -31,7 +31,7 @@ export const RelatedAlertsBySameSourceEvent: React.VFC<RelatedAlertsBySameSource originalEventId, scopeId, }) => { - const { loading, error, dataCount } = useFetchRelatedAlertsBySameSourceEvent({ + const { loading, dataCount } = useFetchRelatedAlertsBySameSourceEvent({ originalEventId, scopeId, }); @@ -46,7 +46,6 @@ export const RelatedAlertsBySameSourceEvent: React.VFC<RelatedAlertsBySameSource return ( <InsightsSummaryRow loading={loading} - error={error} icon={ICON} value={dataCount} text={text} diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.test.tsx index e0a8f2ddb7ba0..76d46f9bc5980 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.test.tsx @@ -14,7 +14,6 @@ import type { import { useShowRelatedAlertsByAncestry } from './use_show_related_alerts_by_ancestry'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { licenseService } from '../../../../common/hooks/use_license'; -import { mockDataFormattedForFieldBrowser } from '../mocks/mock_data_formatted_for_field_browser'; import { mockDataAsNestedObject } from '../mocks/mock_data_as_nested_object'; import { useIsInvestigateInResolverActionEnabled } from '../../../../detections/components/alerts_table/timeline_actions/investigate_in_resolver'; @@ -36,7 +35,6 @@ jest.mock( const licenseServiceMock = licenseService as jest.Mocked<typeof licenseService>; const eventId = 'event-id'; const dataAsNestedObject = mockDataAsNestedObject; -const dataFormattedForFieldBrowser = mockDataFormattedForFieldBrowser; describe('useShowRelatedAlertsByAncestry', () => { let hookResult: RenderHookResult< @@ -53,7 +51,6 @@ describe('useShowRelatedAlertsByAncestry', () => { useShowRelatedAlertsByAncestry({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview: false, }) @@ -62,7 +59,6 @@ describe('useShowRelatedAlertsByAncestry', () => { expect(hookResult.result.current).toEqual({ show: false, documentId: 'event-id', - indices: ['rule-parameters-index'], }); }); @@ -74,7 +70,6 @@ describe('useShowRelatedAlertsByAncestry', () => { useShowRelatedAlertsByAncestry({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview: false, }) @@ -83,7 +78,6 @@ describe('useShowRelatedAlertsByAncestry', () => { expect(hookResult.result.current).toEqual({ show: false, documentId: 'event-id', - indices: ['rule-parameters-index'], }); }); @@ -95,7 +89,6 @@ describe('useShowRelatedAlertsByAncestry', () => { useShowRelatedAlertsByAncestry({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview: false, }) @@ -104,7 +97,6 @@ describe('useShowRelatedAlertsByAncestry', () => { expect(hookResult.result.current).toEqual({ show: false, documentId: 'event-id', - indices: ['rule-parameters-index'], }); }); @@ -117,7 +109,6 @@ describe('useShowRelatedAlertsByAncestry', () => { useShowRelatedAlertsByAncestry({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview: false, }) @@ -126,7 +117,6 @@ describe('useShowRelatedAlertsByAncestry', () => { expect(hookResult.result.current).toEqual({ show: true, documentId: 'event-id', - indices: ['rule-parameters-index'], }); }); @@ -139,7 +129,6 @@ describe('useShowRelatedAlertsByAncestry', () => { useShowRelatedAlertsByAncestry({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview: true, }) @@ -148,7 +137,6 @@ describe('useShowRelatedAlertsByAncestry', () => { expect(hookResult.result.current).toEqual({ show: true, documentId: 'ancestors-id', - indices: ['rule-parameters-index'], }); }); }); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.ts b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.ts index 5a3f9c4f0b657..b11485f67ae6e 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.ts +++ b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_ancestry.ts @@ -6,14 +6,11 @@ */ import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs'; -import { useMemo } from 'react'; -import { find } from 'lodash/fp'; -import type { TimelineEventsDetailsItem } from '@kbn/timelines-plugin/common'; import type { GetFieldsData } from '../../../../common/hooks/use_get_fields_data'; import { useIsInvestigateInResolverActionEnabled } from '../../../../detections/components/alerts_table/timeline_actions/investigate_in_resolver'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { useLicense } from '../../../../common/hooks/use_license'; -import { ANCESTOR_ID, RULE_PARAMETERS_INDEX } from '../constants/field_names'; +import { ANCESTOR_ID } from '../constants/field_names'; import { getField } from '../utils'; export interface UseShowRelatedAlertsByAncestryParams { @@ -25,10 +22,6 @@ export interface UseShowRelatedAlertsByAncestryParams { * An object with top level fields from the ECS object */ dataAsNestedObject: Ecs; - /** - * An array of field objects with category and value - */ - dataFormattedForFieldBrowser: TimelineEventsDetailsItem[]; /** * Id of the event document */ @@ -44,10 +37,6 @@ export interface UseShowRelatedAlertsByAncestryResult { * Returns true if the user has at least platinum privilege, and if the document has ancestry data */ show: boolean; - /** - * Values of the kibana.alert.rule.parameters.index field - */ - indices?: string[]; /** * Value of the document id for fetching ancestry alerts */ @@ -60,7 +49,6 @@ export interface UseShowRelatedAlertsByAncestryResult { export const useShowRelatedAlertsByAncestry = ({ getFieldsData, dataAsNestedObject, - dataFormattedForFieldBrowser, eventId, isPreview, }: UseShowRelatedAlertsByAncestryParams): UseShowRelatedAlertsByAncestryResult => { @@ -71,24 +59,14 @@ export const useShowRelatedAlertsByAncestry = ({ const ancestorId = getField(getFieldsData(ANCESTOR_ID)) ?? ''; const documentId = isPreview ? ancestorId : eventId; - // can't use getFieldsData here as the kibana.alert.rule.parameters is different and can be nested - const originalDocumentIndex = useMemo( - () => find({ category: 'kibana', field: RULE_PARAMETERS_INDEX }, dataFormattedForFieldBrowser), - [dataFormattedForFieldBrowser] - ); const hasAtLeastPlatinum = useLicense().isPlatinumPlus(); const show = - isRelatedAlertsByProcessAncestryEnabled && - hasProcessEntityInfo && - originalDocumentIndex != null && - hasAtLeastPlatinum; + isRelatedAlertsByProcessAncestryEnabled && hasProcessEntityInfo && hasAtLeastPlatinum; return { show, documentId, - ...(originalDocumentIndex && - originalDocumentIndex.values && { indices: originalDocumentIndex.values }), }; }; diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.test.tsx index 01a014409264c..dfbfeeccc655a 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.test.tsx @@ -14,22 +14,28 @@ import type { } from './use_show_related_alerts_by_same_source_event'; import { useShowRelatedAlertsBySameSourceEvent } from './use_show_related_alerts_by_same_source_event'; +const eventId = 'eventId'; + describe('useShowRelatedAlertsBySameSourceEvent', () => { let hookResult: RenderHookResult< ShowRelatedAlertsBySameSourceEventParams, ShowRelatedAlertsBySameSourceEventResult >; - it('should return false if getFieldsData returns null', () => { + it('should return eventId if getFieldsData returns null', () => { const getFieldsData = () => null; - hookResult = renderHook(() => useShowRelatedAlertsBySameSourceEvent({ getFieldsData })); + hookResult = renderHook(() => + useShowRelatedAlertsBySameSourceEvent({ getFieldsData, eventId }) + ); - expect(hookResult.result.current).toEqual({ show: false }); + expect(hookResult.result.current).toEqual({ show: true, originalEventId: 'eventId' }); }); it('should return true if getFieldsData has the correct field', () => { const getFieldsData = () => 'original_event'; - hookResult = renderHook(() => useShowRelatedAlertsBySameSourceEvent({ getFieldsData })); + hookResult = renderHook(() => + useShowRelatedAlertsBySameSourceEvent({ getFieldsData, eventId }) + ); expect(hookResult.result.current).toEqual({ show: true, originalEventId: 'original_event' }); }); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.ts b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.ts index 0d510400d5efe..2f76c74b329d1 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.ts +++ b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_show_related_alerts_by_same_source_event.ts @@ -10,6 +10,10 @@ import { ANCESTOR_ID } from '../constants/field_names'; import { getField } from '../utils'; export interface ShowRelatedAlertsBySameSourceEventParams { + /** + * Id of the event document + */ + eventId: string; /** * Retrieves searchHit values for the provided field */ @@ -24,18 +28,19 @@ export interface ShowRelatedAlertsBySameSourceEventResult { /** * Value of the kibana.alert.original_event.id field */ - originalEventId?: string; + originalEventId: string; } /** - * Returns true if document has kibana.alert.original.event.id field with values + * Returns kibana.alert.ancestors.id field or default eventId */ export const useShowRelatedAlertsBySameSourceEvent = ({ + eventId, getFieldsData, }: ShowRelatedAlertsBySameSourceEventParams): ShowRelatedAlertsBySameSourceEventResult => { - const originalEventId = getField(getFieldsData(ANCESTOR_ID)); + const originalEventId = getField(getFieldsData(ANCESTOR_ID)) ?? eventId; return { - show: originalEventId != null, - ...(originalEventId && { originalEventId }), + show: true, + originalEventId, }; }; From 60ab2cfe956dc824b336f115a3a0fe91ee093a9d Mon Sep 17 00:00:00 2001 From: Nathan Reese <reese.nathan@elastic.co> Date: Wed, 24 Apr 2024 14:05:19 -0600 Subject: [PATCH 170/183] PresentationPanel props hidePanelChrome (#181473) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 1. adds `hidePanelChrome` parameter to `ReactEmbeddableRenderer`. When true, embeddable is rendered without `PresentationPanel` wrapper 2. Removes `embeddable-explorer` plugin 3. Moves Embeddable developer example into embeddable_examples plugin 4. Creates new examples that demonstrate how to use `ReactEmbeddableRenderer` <img width="600" alt="Screenshot 2024-04-23 at 5 19 18 PM" src="https://github.com/elastic/kibana/assets/373691/5167a2a4-1968-42e6-92f7-4577c9cda3c6"> Follow-up work to narrow scope of this PR 1. add key concepts to embeddable overview 2. add "Register new embeddable type" tab that details how to create a new embeddable and shows how you can add embeddable examples to dashboard 3. group embeddable examples into a single item in "Add panel" menu - to show best practices of how to keep menu clean 4. remove class based example embeddables ### Test instructions 1. start kibana with `yarn start --run-examples` 5. Open kibana menu and click "Developer examples" 6. Click "Embeddables" card and run examples --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .github/CODEOWNERS | 1 - examples/embeddable_examples/kibana.jsonc | 3 +- .../embeddable_examples/public/app/app.tsx | 81 +++++++++++ .../public/app/overview.tsx} | 15 +- .../public/app/render_examples.tsx | 137 ++++++++++++++++++ .../public/app/setup_app.ts | 31 ++++ examples/embeddable_examples/public/plugin.ts | 39 ++--- .../search/search_embeddable_renderer.tsx | 53 +++++++ .../public/react_embeddables/search/types.ts | 3 + examples/embeddable_examples/tsconfig.json | 4 +- examples/embeddable_explorer/README.md | 10 -- examples/embeddable_explorer/kibana.jsonc | 20 --- examples/embeddable_explorer/public/app.tsx | 123 ---------------- .../public/embeddable_panel_example.tsx | 66 --------- .../public/embeddables.png | Bin 88399 -> 0 bytes .../public/hello_world_embeddable_example.tsx | 72 --------- .../public/list_container_example.tsx | 82 ----------- .../embeddable_explorer/public/plugin.tsx | 82 ----------- examples/embeddable_explorer/tsconfig.json | 25 ---- package.json | 1 - .../interfaces/fetch/fetch.ts | 22 +-- .../react_embeddable_renderer.tsx | 10 +- .../panel_component/presentation_panel.tsx | 48 ++++-- test/examples/config.js | 1 - .../embeddables/hello_world_embeddable.ts | 37 ----- test/examples/embeddables/index.ts | 29 ---- test/examples/embeddables/list_container.ts | 32 ---- tsconfig.base.json | 2 - yarn.lock | 4 - 29 files changed, 392 insertions(+), 641 deletions(-) create mode 100644 examples/embeddable_examples/public/app/app.tsx rename examples/{embeddable_explorer/public/index.ts => embeddable_examples/public/app/overview.tsx} (50%) create mode 100644 examples/embeddable_examples/public/app/render_examples.tsx create mode 100644 examples/embeddable_examples/public/app/setup_app.ts create mode 100644 examples/embeddable_examples/public/react_embeddables/search/search_embeddable_renderer.tsx delete mode 100644 examples/embeddable_explorer/README.md delete mode 100644 examples/embeddable_explorer/kibana.jsonc delete mode 100644 examples/embeddable_explorer/public/app.tsx delete mode 100644 examples/embeddable_explorer/public/embeddable_panel_example.tsx delete mode 100644 examples/embeddable_explorer/public/embeddables.png delete mode 100644 examples/embeddable_explorer/public/hello_world_embeddable_example.tsx delete mode 100644 examples/embeddable_explorer/public/list_container_example.tsx delete mode 100644 examples/embeddable_explorer/public/plugin.tsx delete mode 100644 examples/embeddable_explorer/tsconfig.json delete mode 100644 test/examples/embeddables/hello_world_embeddable.ts delete mode 100644 test/examples/embeddables/index.ts delete mode 100644 test/examples/embeddables/list_container.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0c57ef0d7dc9a..0f58444069968 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -384,7 +384,6 @@ test/plugin_functional/plugins/elasticsearch_client_plugin @elastic/kibana-core x-pack/test/plugin_api_integration/plugins/elasticsearch_client @elastic/kibana-core x-pack/plugins/embeddable_enhanced @elastic/kibana-presentation examples/embeddable_examples @elastic/kibana-presentation -examples/embeddable_explorer @elastic/kibana-presentation src/plugins/embeddable @elastic/kibana-presentation x-pack/examples/embedded_lens_example @elastic/kibana-visualizations x-pack/plugins/encrypted_saved_objects @elastic/kibana-security diff --git a/examples/embeddable_examples/kibana.jsonc b/examples/embeddable_examples/kibana.jsonc index 0788268aedf3f..08e4a02360b2c 100644 --- a/examples/embeddable_examples/kibana.jsonc +++ b/examples/embeddable_examples/kibana.jsonc @@ -14,7 +14,8 @@ "dashboard", "data", "charts", - "fieldFormats" + "fieldFormats", + "developerExamples" ], "requiredBundles": ["presentationUtil"], "extraPublicDirs": ["public/hello_world"] diff --git a/examples/embeddable_examples/public/app/app.tsx b/examples/embeddable_examples/public/app/app.tsx new file mode 100644 index 0000000000000..72c5d4f11779a --- /dev/null +++ b/examples/embeddable_examples/public/app/app.tsx @@ -0,0 +1,81 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useState } from 'react'; +import ReactDOM from 'react-dom'; + +import { AppMountParameters } from '@kbn/core-application-browser'; +import { + EuiPage, + EuiPageBody, + EuiPageHeader, + EuiPageSection, + EuiPageTemplate, + EuiSpacer, + EuiTab, + EuiTabs, +} from '@elastic/eui'; +import { Overview } from './overview'; +import { RenderExamples } from './render_examples'; + +const OVERVIEW_TAB_ID = 'overview'; +const RENDER_TAB_ID = 'render'; + +const App = () => { + const [selectedTabId, setSelectedTabId] = useState(OVERVIEW_TAB_ID); + + function onSelectedTabChanged(tabId: string) { + setSelectedTabId(tabId); + } + + function renderTabContent() { + if (selectedTabId === RENDER_TAB_ID) { + return <RenderExamples />; + } + + return <Overview />; + } + + return ( + <EuiPage> + <EuiPageBody> + <EuiPageSection> + <EuiPageHeader pageTitle="Embeddables" /> + </EuiPageSection> + <EuiPageTemplate.Section> + <EuiPageSection> + <EuiTabs> + <EuiTab + onClick={() => onSelectedTabChanged(OVERVIEW_TAB_ID)} + isSelected={OVERVIEW_TAB_ID === selectedTabId} + > + Embeddables overview + </EuiTab> + <EuiTab + onClick={() => onSelectedTabChanged(RENDER_TAB_ID)} + isSelected={RENDER_TAB_ID === selectedTabId} + > + Rendering embeddables in your application + </EuiTab> + </EuiTabs> + + <EuiSpacer /> + + {renderTabContent()} + </EuiPageSection> + </EuiPageTemplate.Section> + </EuiPageBody> + </EuiPage> + ); +}; + +export const renderApp = (element: AppMountParameters['element']) => { + ReactDOM.render(<App />, element); + + return () => ReactDOM.unmountComponentAtNode(element); +}; diff --git a/examples/embeddable_explorer/public/index.ts b/examples/embeddable_examples/public/app/overview.tsx similarity index 50% rename from examples/embeddable_explorer/public/index.ts rename to examples/embeddable_examples/public/app/overview.tsx index 7620d1daf20f6..e074cd148f77e 100644 --- a/examples/embeddable_explorer/public/index.ts +++ b/examples/embeddable_examples/public/app/overview.tsx @@ -6,6 +6,17 @@ * Side Public License, v 1. */ -import { EmbeddableExplorerPlugin } from './plugin'; +import React from 'react'; -export const plugin = () => new EmbeddableExplorerPlugin(); +import { EuiText } from '@elastic/eui'; + +export const Overview = () => { + return ( + <EuiText> + <p> + Embeddables are React components that manage their own state, can be serialized and + deserialized, and return an API that can be used to interact with them imperatively. + </p> + </EuiText> + ); +}; diff --git a/examples/embeddable_examples/public/app/render_examples.tsx b/examples/embeddable_examples/public/app/render_examples.tsx new file mode 100644 index 0000000000000..c3e9b0a79a55b --- /dev/null +++ b/examples/embeddable_examples/public/app/render_examples.tsx @@ -0,0 +1,137 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useMemo, useState } from 'react'; + +import { ReactEmbeddableRenderer } from '@kbn/embeddable-plugin/public'; +import { + EuiCodeBlock, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiSuperDatePicker, + EuiSwitch, + EuiText, + OnTimeChangeProps, +} from '@elastic/eui'; +import { BehaviorSubject, Subject } from 'rxjs'; +import { TimeRange } from '@kbn/es-query'; +import { useBatchedOptionalPublishingSubjects } from '@kbn/presentation-publishing'; +import { SearchEmbeddableRenderer } from '../react_embeddables/search/search_embeddable_renderer'; +import { SEARCH_EMBEDDABLE_ID } from '../react_embeddables/search/constants'; +import type { Api, State } from '../react_embeddables/search/types'; + +export const RenderExamples = () => { + const initialState = useMemo(() => { + return { + rawState: { + timeRange: undefined, + }, + references: [], + }; + // only run onMount + }, []); + + const parentApi = useMemo(() => { + return { + reload$: new Subject<void>(), + timeRange$: new BehaviorSubject<TimeRange>({ + from: 'now-24h', + to: 'now', + }), + }; + // only run onMount + }, []); + + const [api, setApi] = useState<Api | null>(null); + const [hidePanelChrome, setHidePanelChrome] = useState<boolean>(false); + const [dataLoading, timeRange] = useBatchedOptionalPublishingSubjects( + api?.dataLoading, + parentApi.timeRange$ + ); + + return ( + <div> + <EuiSuperDatePicker + isLoading={dataLoading ? dataLoading : false} + start={timeRange.from} + end={timeRange.to} + onTimeChange={({ start, end }: OnTimeChangeProps) => { + parentApi.timeRange$.next({ + from: start, + to: end, + }); + }} + onRefresh={() => { + parentApi.reload$.next(); + }} + /> + + <EuiSpacer size="s" /> + + <EuiFlexGroup> + <EuiFlexItem> + <EuiText> + <p> + Use <strong>ReactEmbeddableRenderer</strong> to render embeddables. + </p> + </EuiText> + + <EuiCodeBlock language="jsx" fontSize="m" paddingSize="m"> + {`<ReactEmbeddableRenderer<State, Api> + type={SEARCH_EMBEDDABLE_ID} + state={initialState} + parentApi={parentApi} + onApiAvailable={(newApi) => { + setApi(newApi); + }} + hidePanelChrome={hidePanelChrome} +/>`} + </EuiCodeBlock> + + <EuiSpacer size="s" /> + + <EuiSwitch + label="Set hidePanelChrome to render embeddable without Panel wrapper." + checked={hidePanelChrome} + onChange={(e) => setHidePanelChrome(e.target.checked)} + /> + + <EuiSpacer size="s" /> + + <ReactEmbeddableRenderer<State, Api> + key={hidePanelChrome ? 'hideChrome' : 'showChrome'} + type={SEARCH_EMBEDDABLE_ID} + state={initialState} + parentApi={parentApi} + onApiAvailable={(newApi) => { + setApi(newApi); + }} + hidePanelChrome={hidePanelChrome} + /> + </EuiFlexItem> + + <EuiFlexItem> + <EuiText> + <p>To avoid leaking embeddable details, wrap ReactEmbeddableRenderer in a component.</p> + </EuiText> + + <EuiCodeBlock language="jsx" fontSize="m" paddingSize="m"> + {`<SearchEmbeddableRenderer + timeRange={timeRange} +/>`} + </EuiCodeBlock> + + <EuiSpacer size="s" /> + + <SearchEmbeddableRenderer timeRange={timeRange} /> + </EuiFlexItem> + </EuiFlexGroup> + </div> + ); +}; diff --git a/examples/embeddable_examples/public/app/setup_app.ts b/examples/embeddable_examples/public/app/setup_app.ts new file mode 100644 index 0000000000000..c489b603c877b --- /dev/null +++ b/examples/embeddable_examples/public/app/setup_app.ts @@ -0,0 +1,31 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { AppMountParameters, CoreSetup } from '@kbn/core/public'; +import { DeveloperExamplesSetup } from '@kbn/developer-examples-plugin/public'; +import type { StartDeps } from '../plugin'; + +const APP_ID = 'embeddablesApp'; +const title = 'Embeddables'; + +export function setupApp(core: CoreSetup<StartDeps>, developerExamples: DeveloperExamplesSetup) { + core.application.register({ + id: APP_ID, + title, + visibleIn: [], + async mount(params: AppMountParameters) { + const { renderApp } = await import('./app'); + return renderApp(params.element); + }, + }); + developerExamples.register({ + appId: APP_ID, + title, + description: `Learn how to create new embeddable types and use embeddables in your application.`, + }); +} diff --git a/examples/embeddable_examples/public/plugin.ts b/examples/embeddable_examples/public/plugin.ts index e3916b8b409cb..85faad072920a 100644 --- a/examples/embeddable_examples/public/plugin.ts +++ b/examples/embeddable_examples/public/plugin.ts @@ -17,6 +17,7 @@ import { UiActionsStart } from '@kbn/ui-actions-plugin/public'; import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { ChartsPluginStart } from '@kbn/charts-plugin/public'; import { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; +import { DeveloperExamplesSetup } from '@kbn/developer-examples-plugin/public'; import { HelloWorldEmbeddableFactory, HELLO_WORLD_EMBEDDABLE, @@ -45,13 +46,15 @@ import { registerAddSearchPanelAction } from './react_embeddables/search/registe import { EUI_MARKDOWN_ID } from './react_embeddables/eui_markdown/constants'; import { FIELD_LIST_ID } from './react_embeddables/field_list/constants'; import { SEARCH_EMBEDDABLE_ID } from './react_embeddables/search/constants'; +import { setupApp } from './app/setup_app'; -export interface EmbeddableExamplesSetupDependencies { +export interface SetupDeps { + developerExamples: DeveloperExamplesSetup; embeddable: EmbeddableSetup; uiActions: UiActionsStart; } -export interface EmbeddableExamplesStartDependencies { +export interface StartDeps { dataViews: DataViewsPublicPluginStart; embeddable: EmbeddableStart; uiActions: UiActionsStart; @@ -67,40 +70,31 @@ interface ExampleEmbeddableFactories { getFilterDebuggerEmbeddableFactory: () => FilterDebuggerEmbeddableFactory; } -export interface EmbeddableExamplesStart { +export interface StartApi { createSampleData: () => Promise<void>; factories: ExampleEmbeddableFactories; } -export class EmbeddableExamplesPlugin - implements - Plugin< - void, - EmbeddableExamplesStart, - EmbeddableExamplesSetupDependencies, - EmbeddableExamplesStartDependencies - > -{ +export class EmbeddableExamplesPlugin implements Plugin<void, StartApi, SetupDeps, StartDeps> { private exampleEmbeddableFactories: Partial<ExampleEmbeddableFactories> = {}; - public setup( - core: CoreSetup<EmbeddableExamplesStartDependencies>, - deps: EmbeddableExamplesSetupDependencies - ) { + public setup(core: CoreSetup<StartDeps>, { embeddable, developerExamples }: SetupDeps) { + setupApp(core, developerExamples); + this.exampleEmbeddableFactories.getHelloWorldEmbeddableFactory = - deps.embeddable.registerEmbeddableFactory( + embeddable.registerEmbeddableFactory( HELLO_WORLD_EMBEDDABLE, new HelloWorldEmbeddableFactoryDefinition() ); this.exampleEmbeddableFactories.getMigrationsEmbeddableFactory = - deps.embeddable.registerEmbeddableFactory( + embeddable.registerEmbeddableFactory( SIMPLE_EMBEDDABLE, new SimpleEmbeddableFactoryDefinition() ); this.exampleEmbeddableFactories.getListContainerEmbeddableFactory = - deps.embeddable.registerEmbeddableFactory( + embeddable.registerEmbeddableFactory( LIST_CONTAINER, new ListContainerFactoryDefinition(async () => ({ embeddableServices: (await core.getStartServices())[1].embeddable, @@ -108,16 +102,13 @@ export class EmbeddableExamplesPlugin ); this.exampleEmbeddableFactories.getFilterDebuggerEmbeddableFactory = - deps.embeddable.registerEmbeddableFactory( + embeddable.registerEmbeddableFactory( FILTER_DEBUGGER_EMBEDDABLE, new FilterDebuggerEmbeddableFactoryDefinition() ); } - public start( - core: CoreStart, - deps: EmbeddableExamplesStartDependencies - ): EmbeddableExamplesStart { + public start(core: CoreStart, deps: StartDeps): StartApi { registerCreateFieldListAction(deps.uiActions); registerReactEmbeddableFactory(FIELD_LIST_ID, async () => { const { getFieldListFactory } = await import( diff --git a/examples/embeddable_examples/public/react_embeddables/search/search_embeddable_renderer.tsx b/examples/embeddable_examples/public/react_embeddables/search/search_embeddable_renderer.tsx new file mode 100644 index 0000000000000..0fa6e785b72c1 --- /dev/null +++ b/examples/embeddable_examples/public/react_embeddables/search/search_embeddable_renderer.tsx @@ -0,0 +1,53 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useEffect, useMemo } from 'react'; +import { BehaviorSubject } from 'rxjs'; +import { TimeRange } from '@kbn/es-query'; +import { ReactEmbeddableRenderer } from '@kbn/embeddable-plugin/public'; +import type { Api, State } from './types'; +import { SEARCH_EMBEDDABLE_ID } from './constants'; + +interface Props { + timeRange?: TimeRange; +} + +export function SearchEmbeddableRenderer(props: Props) { + const initialState = useMemo(() => { + return { + rawState: { + timeRange: undefined, + }, + references: [], + }; + // only run onMount + }, []); + + const parentApi = useMemo(() => { + return { + timeRange$: new BehaviorSubject(props.timeRange), + }; + // only run onMount + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useEffect(() => { + parentApi.timeRange$.next(props.timeRange); + }, [props.timeRange, parentApi.timeRange$]); + + return ( + <div className="mapEmbeddableContainer"> + <ReactEmbeddableRenderer<State, Api> + type={SEARCH_EMBEDDABLE_ID} + state={initialState} + parentApi={parentApi} + hidePanelChrome={true} + /> + </div> + ); +} diff --git a/examples/embeddable_examples/public/react_embeddables/search/types.ts b/examples/embeddable_examples/public/react_embeddables/search/types.ts index 5ba940b2d40b0..dffe119eee7a0 100644 --- a/examples/embeddable_examples/public/react_embeddables/search/types.ts +++ b/examples/embeddable_examples/public/react_embeddables/search/types.ts @@ -19,6 +19,9 @@ import { } from '@kbn/presentation-publishing'; export interface State { + /* + * Time range only applied to this embeddable, overrides parentApi.timeRange$ + */ timeRange: TimeRange | undefined; } diff --git a/examples/embeddable_examples/tsconfig.json b/examples/embeddable_examples/tsconfig.json index 0225005262720..1165c05b189ad 100644 --- a/examples/embeddable_examples/tsconfig.json +++ b/examples/embeddable_examples/tsconfig.json @@ -29,6 +29,8 @@ "@kbn/core-lifecycle-browser", "@kbn/presentation-util-plugin", "@kbn/unified-field-list", - "@kbn/presentation-containers" + "@kbn/presentation-containers", + "@kbn/core-application-browser", + "@kbn/developer-examples-plugin" ] } diff --git a/examples/embeddable_explorer/README.md b/examples/embeddable_explorer/README.md deleted file mode 100644 index 0425790f07487..0000000000000 --- a/examples/embeddable_explorer/README.md +++ /dev/null @@ -1,10 +0,0 @@ -## Embeddable explorer - -This example app shows how to: - - Create a basic "hello world" embeddable - - Create embeddables that accept inputs and use an EmbeddableRenderer - - Nest embeddables inside a container - - Dynamically add children to embeddable containers - - Work with the EmbeddablePanel component - -To run this example, use the command `yarn start --run-examples`. diff --git a/examples/embeddable_explorer/kibana.jsonc b/examples/embeddable_explorer/kibana.jsonc deleted file mode 100644 index 3279a7ef92f51..0000000000000 --- a/examples/embeddable_explorer/kibana.jsonc +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "plugin", - "id": "@kbn/embeddable-explorer-plugin", - "owner": "@elastic/kibana-presentation", - "description": "Example app that relies on registered functionality in the embeddable_examples plugin", - "plugin": { - "id": "embeddableExplorer", - "server": false, - "browser": true, - "requiredPlugins": [ - "uiActions", - "inspector", - "embeddable", - "embeddableExamples", - "developerExamples", - "dashboard", - "kibanaReact" - ] - } -} diff --git a/examples/embeddable_explorer/public/app.tsx b/examples/embeddable_explorer/public/app.tsx deleted file mode 100644 index 1d1938c8dbebd..0000000000000 --- a/examples/embeddable_explorer/public/app.tsx +++ /dev/null @@ -1,123 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; -import ReactDOM from 'react-dom'; -import { BrowserRouter as Router, withRouter, RouteComponentProps } from 'react-router-dom'; -import { Route } from '@kbn/shared-ux-router'; -import { EuiPageTemplate, EuiSideNav } from '@elastic/eui'; -import { EmbeddableStart } from '@kbn/embeddable-plugin/public'; -import { UiActionsStart } from '@kbn/ui-actions-plugin/public'; -import { Start as InspectorStartContract } from '@kbn/inspector-plugin/public'; -import { AppMountParameters, CoreStart, IUiSettingsClient, OverlayStart } from '@kbn/core/public'; -import { EmbeddableExamplesStart } from '@kbn/embeddable-examples-plugin/public/plugin'; -import { HelloWorldEmbeddableExample } from './hello_world_embeddable_example'; -import { ListContainerExample } from './list_container_example'; -import { EmbeddablePanelExample } from './embeddable_panel_example'; - -interface PageDef { - title: string; - id: string; - component: React.ReactNode; -} - -type NavProps = RouteComponentProps & { - navigateToApp: CoreStart['application']['navigateToApp']; - pages: PageDef[]; -}; - -const Nav = withRouter(({ history, navigateToApp, pages }: NavProps) => { - const navItems = pages.map((page) => ({ - id: page.id, - name: page.title, - onClick: () => history.push(`/${page.id}`), - 'data-test-subj': page.id, - })); - - return ( - <EuiSideNav - items={[ - { - name: 'Embeddable examples', - id: 'home', - items: [...navItems], - }, - ]} - /> - ); -}); - -interface Props { - basename: string; - navigateToApp: CoreStart['application']['navigateToApp']; - embeddableApi: EmbeddableStart; - uiActionsApi: UiActionsStart; - overlays: OverlayStart; - notifications: CoreStart['notifications']; - inspector: InspectorStartContract; - uiSettingsClient: IUiSettingsClient; - embeddableExamples: EmbeddableExamplesStart; -} - -const EmbeddableExplorerApp = ({ - basename, - navigateToApp, - embeddableApi, - embeddableExamples, -}: Props) => { - const pages: PageDef[] = [ - { - title: 'Render embeddable', - id: 'helloWorldEmbeddableSection', - component: ( - <HelloWorldEmbeddableExample - helloWorldEmbeddableFactory={embeddableExamples.factories.getHelloWorldEmbeddableFactory()} - /> - ), - }, - { - title: 'Groups of embeddables', - id: 'listContainerSection', - component: ( - <ListContainerExample - listContainerEmbeddableFactory={embeddableExamples.factories.getListContainerEmbeddableFactory()} - /> - ), - }, - { - title: 'Context menu', - id: 'embeddablePanelExample', - component: ( - <EmbeddablePanelExample - helloWorldFactory={embeddableExamples.factories.getHelloWorldEmbeddableFactory()} - /> - ), - }, - ]; - - const routes = pages.map((page, i) => ( - <Route key={i} path={`/${page.id}`} render={(props) => page.component} /> - )); - - return ( - <Router basename={basename}> - <EuiPageTemplate offset={0}> - <EuiPageTemplate.Sidebar> - <Nav navigateToApp={navigateToApp} pages={pages} /> - </EuiPageTemplate.Sidebar> - {routes} - </EuiPageTemplate> - </Router> - ); -}; - -export const renderApp = (props: Props, element: AppMountParameters['element']) => { - ReactDOM.render(<EmbeddableExplorerApp {...props} />, element); - - return () => ReactDOM.unmountComponentAtNode(element); -}; diff --git a/examples/embeddable_explorer/public/embeddable_panel_example.tsx b/examples/embeddable_explorer/public/embeddable_panel_example.tsx deleted file mode 100644 index 880ed1057dd5b..0000000000000 --- a/examples/embeddable_explorer/public/embeddable_panel_example.tsx +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React, { useState, useEffect, useRef } from 'react'; -import { EuiPanel, EuiText, EuiPageTemplate } from '@elastic/eui'; -import { EuiSpacer } from '@elastic/eui'; -import { IEmbeddable, EmbeddablePanel } from '@kbn/embeddable-plugin/public'; -import { HelloWorldEmbeddableFactory } from '@kbn/embeddable-examples-plugin/public'; - -interface Props { - helloWorldFactory: HelloWorldEmbeddableFactory; -} - -export function EmbeddablePanelExample({ helloWorldFactory }: Props) { - const [embeddable, setEmbeddable] = useState<IEmbeddable | undefined>(undefined); - - const ref = useRef(false); - - useEffect(() => { - ref.current = true; - if (!embeddable) { - const promise = helloWorldFactory.create({ id: '1', title: 'Hello World!' }); - if (promise) { - promise.then((e) => { - if (ref.current) { - setEmbeddable(e); - } - }); - } - } - return () => { - ref.current = false; - }; - }); - - return ( - <> - <EuiPageTemplate.Header pageTitle="Context menu" /> - <EuiPageTemplate.Section grow={false}> - <> - <EuiText> - You can render your embeddable inside the EmbeddablePanel component. This adds some - extra rendering and offers a context menu with pluggable actions. Using EmbeddablePanel - to render your embeddable means you get access to the "Add panel flyout". Now - you can see how to add embeddables to your container, and how - "getExplicitInput" is used to grab input not provided by the container. - </EuiText> - <EuiPanel data-test-subj="embeddedPanelExample" paddingSize="none" role="figure"> - {embeddable ? ( - <EmbeddablePanel embeddable={embeddable} /> - ) : ( - <EuiText>Loading...</EuiText> - )} - </EuiPanel> - - <EuiSpacer /> - </> - </EuiPageTemplate.Section> - </> - ); -} diff --git a/examples/embeddable_explorer/public/embeddables.png b/examples/embeddable_explorer/public/embeddables.png deleted file mode 100644 index 90b287962d24823c6717265bee595c9b746ba0e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88399 zcmZ^~19T?M);1h_Vw)38Y~HbL+Y>vP*tTukwsXgriEZ2X=Q-#6=Y7}uzOUEnUe&wy zRkdr^?(Vv(s>2oJ#J|De!hwK*e3O(AQ33%0jr*G(gMs>c9l>bb1pz@2vlJFqkQ5ds zR&ca4v$Qq^0g(t#R)^M59>>hlR+6;vhmnBo4kwjJMHPx9CRVLONe~bUCm{)2P8Nmy zLr-cTtS*YK3s3BNZmM|xksmfO(V<b7fBPNsw@dHS=F{}kRJZSR)?IEw`_nW?p7K<p zl#_xkh$F>IL)*2%@8={H%oAz>5V)~E^gP}kor##}XfOq+OW)L|);zYPGkU2S-{~*) zIW(99FOWEmumwm*ANnC^kiN(lB~1W`h+SE0P6~tSZa6aDm_Y!tbTX%MbYwE8ZuAco zc321eFgH+vk{kC18IY#Tyd2fOnIPU(H)7Xhm?2aU=P_jHYf)a%ArxdJ;8b?S&@3Wn zk?&~Y3&-@mpd2BC6LO`MA}p5(ZR+85$ye^h^HxG;A$FJ{G_)*vWSH`Agf~}8&!0u8 z3&fWxMdG6ZRY*7D^#Z0yOi~!sq^L`eWz_o9{(RsvVY-lAaS~y&B#4RoBI1_!Cpf!| z^h5T+dBMA0wgDq<@d|{vwL4WQveA(^eK^dB+I!kFiRHUA7xF(E&{l9ic}Pjz{JwPK zsYo=lS;Xj&DMf{=zA-815D=BO^jk-WWF3RzrIX5~_kJ7d5t4MT%OJ|kB7u)wSOz*C zfIk>TiWu28L8%``qLQ-mc0Ti}eu^P;z*3wKffD9>c`XXiff-7ab-12aC?u4XV_Bsh zLXTQ{ZAmy8u|0CCrlHj=Y71J^FogYi-UWTJ7p!=>v9R>94&avO<%{I_u9l6Y2U7q7 z9Rz}@&=-$b5<p9AdtrMX(!0oF=m%{=j0WQ$DaNuLUzHKxXT?he<|{xBaVywsuvCSN zF7WY3u=@2Bj9H}-k|x&r8evxl8P;*zE_gzk8JiB4HyHPZzu?ZWhRdGn=(F5dST;$l z5PRG71VIB;IGkh%#t3^3g`*$bo}U*^FL2v_u-hTm-}<Y8l9#LrB?s9SbrsgFH0%iI zQx*z265xtWBBSi|`oy;98n*<FH1a{hzdw@R25a9h-Y;Rzi#+n^rxo+v$@GEW@vA!I zs-vd9uuVx}0$B=qct>2`hSDZh5Ytq?_bQJ2&wYQ7Bb2#M)XYoG0+@U3`y8rv(8cJq zA!R-MGD;OnUEQ7rnkx=Z#ZX}7arsY-Zz7S(2Z`T2hQ7i^7lu?^l`gf8Ru5i9`BE8Z zReFd(%`2QcWU{Cy%<FeD^~ZLlo(Dtg*L5~@Koxw%7i-H~WtN^m4fWooTZxfCzM?-q zK0?3dMNdHNK>)^!F}==@lGiRE4@apt7!6>}i0XPUesIp)Xr>60{%rPs4{f0G+t2|5 zRM_A~0$>uLiH517_I$uTRz|c*aEd$xT4*Z)ie;D<KLP`eWoX=f6noSx$kaYnd$je? z%2Kp02)=E;V`1c=pji|sqbLpHmN1sx5O*?A2`bd!Arfi{+=OrmWJqQ-O}`|PAMsKq zEJ~5@5%@xKq*!t6`}DWiCqkRVxrzwI`A}szKSN^#x)s@R!@uVx&dRVN(FsM)6<a`R z1zrl_%_bgG+<#w<=@Ic{^0PFQnM8H!?_xs43@kRnNkhntPBuEw_@)-iHu&|z{X53R zIM<$Zx=*tWUZ)?$opgHi?t0}JwF`C2pJTi9=Iq(H3;Ihe4^0Mk8bTi|l`$tyGEIz% zBnhnr1rc?+ue3bzI!A(>Is8$C;hD7rxiO3-Ogii=+%t?a%w`DDh#_2r`8!wQyCf4i zA$6{bke2wWD7RdP*eSU;xm7&fnC(8JBaNm|jyyf(6*&=^J{dpdlcF<q3%b4(f~Y{c zoTk`{lx2xdzO&M6*)J8(3Vt^K4AE@y>b&2|GYUisTR$x=H7#E(q8CuDrj{yZS1Vog z&gy?tW&ozbNAhKhs4b)|*DNV5+$`-*oI42k!g8c$N*Rj(%*)Ra&GG+aX$rM+YKB~O zYN~9)YpS*EozFjBKCN^4eujRMbawuyy<nkQdaill;P}?r{7mhHaK5{Gt#Wi0uN<o| zwX#*ju5=T!8|#(ao99Ep+ux`D6Z1p)l>i~iaB7?JISMkWI*KJq4!pp>8}tt`FmKYJ zRj^VpHos?wYLI+TXpm;GFyule%5rp{*(nW}_LkO~mK&P(%@7F%QIogGXRMioC@KUO z5(hR~D*6$7gZ0&Vk{OY0nqALu-Qs-~g2RCs$DDb}Byb!j@iHGu_#@;tGzD>k<35M_ z=cx&<IrpG*<caBm9*a|>JxlotccZe|#-Yp|@g42m(&6Z2CoMK6D5g>566PqKk2y}m zauvQB<QZ$_==>t{fRbVRO2bma%)}<m+|QmR!phL!Dpq!92xm*b>3;LEW3n6Dn5{0Z ztTz@f|5}T%{<E6X_+emfmulTQTQheV+#S#Nr)R8Z`qLkLgJhOuCVylnglukZjcLuH zdry^eaePp6U**7g7{}$&8Iz~h%@$7#`;bM3xyo$W1}g)8t+=mv`ryX?@Vad0E|de& zmu<jI<TMO}Y&!b+@N_3*uVd-qQ{p4uSZtbTh4(f(GZAmAdg3C4XM=CjJH|8d?M!jH zFsP6{s$;MJ8vCq%ws3f_vNW}HvT?H!2pst_Rk?cB((3P4^@MtL2Y|>m$mIfvdjVd4 zy&k?@-hC|03^T0Rm2O4OJr)KRw#Hmux85GT*ge`I89)|6TEkf&H6iRn{)Pa+HXx!x z*uejqb~Q1tcdOTj?1TaaAVK+VKRcQ^$ORdY?2r_bROi3uhvz5f#|~5tFb|#%{2JgJ zFb~QNBNh=6s|stIV%xiIZ(h$~(la)T<|2@cjEb#_@<Kg8r-=MX7#Tyr;<~g9J=Zdq za6E#IJQ%HsamV-@z|Qb^&AHpQ?4Y`rGaMb2iQ`6}gThbYWB&dYv>jv$`-Db-iV;pH z$t{VN_%jhe9!g#-V@t$u^j>w7swAT{L@irhv{<xgQ{IgxL|K(S%Qa_gG(M!Acut8S z*TJ}A;yArusO(&FU2-l@Rzy*HA@ep6xwCZrYoYyQ>4eV<(U<P4m{_7tYnI|3s|Fn~ zb3LPxenYyz@1$y$N~NGee~Rfel)U>#6GaoR5nwWEVmEU+BRRd2C_OC;<RhO;HIbH+ zXUo;%Y?eKxrHgMldO55fKZ_TgXc<R&A@@-30bQ@tSL3AeQR1bCp(>+!=A^S+{S@jJ zlH55skz2r$_tisJy9Xk8LHUXSWq|2-W`LaGoMsPpW*%=>ApRNGuoL%D$jk;)EH{Ja zrrn+HQEk?jt>A6Ip;6;*`!E52@Ry2ufiCHf_U>7`oe|Mz(wl<c!<UhN=swkGsJb-{ zwbb+;O<{e<hjYb0b#9!#=A(+MfxM|U8ge@Hnm$&d+Ytmm9@H?a&o$UwRR@3mKAm5> z`YogBl<%eTGSa-*9MOD%p@<=SX8oH^|EX9>#iNm??WcUR<-_hN(i!AgtqshoLhqcl z@yf_d=1}IPHR9H~g0Z@CPjFkY0kE-JQhVlO_e1)EJ<-N=t;aUi+HMP_b<eq4-R44W zAscu)%Pp$=rzX6!<`QvbL*+`T*8|B(enqcNz5eM*f5E4_nZZ#X=yUb)0Bwz=LS%wZ zYa@VL!g0?UfxDKel(C8!&9yjx{>SV3`g(9JR)esd`=`6}3e#!*uJOlcWXw}eT+T5d z-J_w<R0{Z^yeGfG$#>~|mOjREG!v4|=Mv+6`Rws^Cr<yY$LT!xX0%5!BmFIvkDlm# zYOgi0I;Z-ZdRGmr?nC?PI(x^(a&w;*Wo@Vqzh|K5-u%>YrcEoV-9|g#jq4jhe>Rqz z(`8SOx_#}{=Q?x{bTN_(Q3^k^x5^#EsPBd4lQsV<=l;zB<&FHM+cl3KAesMTUh_Tb zv+BKl_-+-;mLbMD*hTlld*CXYp_t*VL;7>}t?)H@uoB!C>cgYm+)Mt*YUS*cLwXap zcjMD`u`^|Jc~kt#Y3s?G>cisQVU+Sp{s=(n>$Aym0e>PrtUg*hwME*?cRX`(m3nK! zyQBsZ2tG9ivOVPra!d`vSTpc32=TxrPZ9QNT_Lp1Z}_08K#>EoIGE|!In4#yr^k67 zK+J(ZQT<B@Szu!WI#g^Q=hF5kJudGJGT`y4mkr!+5us0A)7N+F_4Bh<+pxh6lrz2* zpidJFGXs?wkaS!UZ$SSn`1!4o$p`cnv3%(-v4FLg&~yR;!KC=-1eH`GzXkyTgR)f7 zaMqBO;WoCjp*J+KGcu)jx3T}L4FbaJ&iyxOW9n>3>~3Ri>%{HONBS=f?!W1O#0;dw z|59<b;v?0NRUj6&b2KGpqi3aOBn7|`6BF|~nwW7biHQ9N{`ZcL)WX@>o|}Qe&CQM8 zjfLLM(VT&ai;Ihak(q&+neML!os);Hv!OektrOY53;F-c5ixZ#cC@s2wzRV){-<0+ zBRdyoK2p+uD*Es7Z#zxhE&rz`Tc`gt>u&=Y{>forqGx3Izrma>&Hf*-e{%i}`&YaE zT^;W~g>frbx|>>Sidfp1+B*F;4Zy_A%Fg?*dj5~B|FQIcK{fsd%FN8p`oE$7E9-wj z|FMNz-qF(ZubcjH27rl|;s22RN1vDBA5Z-+&;7ew{w4j}F90}RhX3|40FI9~@h=M% z0Fe|CRB;DA?{-Vd7I!6b?|gHa<|+X1h-Z-qfR!063tuFU*rkeQC6i7$Z`6BvK0mE$ z_B?lbj9t<K0IalIVn;?(SP5n0#PNS}l8aA5{DqBKfJD!79j$lwZdG6T)NY<Vb>I<$ zIGX8!e)L>*x}2#kRabac+7>sJkC&S&w$ge@4(9SvMC<3kGs2R%W*9+Vh2TLw4zz<H zB8xLeO<IhS6UT_XmkyiCZ*7$x4PJQjeWs}8_5_n<yZa6{{v!{>i*CL>-5VV>WqtWe z?bZigx4h&<C<*@zTw6B1*c!grPQUMcM3wM;<6l|0_WA{NH~9Ps$hrdfym!Xp<*IGX z47}Vt*O?f8+bT6}!_4vd?2NVAp^JLK>AA9F91Qo(@O@txy*qia@5v<E+FKCD&YqLI zmrEm>w*N5ajgcSSrThjj{N--$^H|jTW&0d7_j12`<AuNb_i^R<@WLXRe%kY7_ARuW zdA7gV3OQO}NsB#ud$aF(d%n2>)abhccw-(1-UEv0246VKpU|O|@Fg6GhyBr^fA99q z&c=zTcnXBlPESVC(uEh5j^EBV6qy%Ei^-)7onfiUv9C%X2gY8_3e1QWEL(!C9uJSQ zDV-7>v-V{EX4Sb<ujO1a_Ynh%Vtb)r?GGp_$CU&b@`4@aQUQ>@1+pEo&<lnLlu%qZ zFnVRMY+h&Hd*Kt11;oVKx#I%9`_fkpfNOcF|B{Ikr;LIY*h6xl1N1CtE@R`@R_!j> z@&Wj}0WpQAKFMx`xvVwBUq7w`nx5@@v;nByquZ}u5i^aWP9Zl7hWBU(f(t}wl1*8( z_}v$}9@4K9<j|$PGe3Mnp8>fqg!?3#TEC^-()4b5?PVfM;P<CAf9>wgU8g|t^Z9Ut zZ@zleImh?RwX}Kh-f>{}qTNg$pP*sC=Z4jc^mjphiv77AzCsRV2uTep5e7|wG=4(@ zM8&?!^dWu2yN(jvU9kEz%+WD<|Casg(UeNui8jZ?tM4OfIBuG9;Eyu0z_uwXFW-qW zwtJtI^%iMv+G4ITPkNHTp8I{O_p5GyDK!)$Er@nI{!;Fxu2i~#g$x3?J`k{ol|0s; zqBbret*+6KTbJi&0L#+RqwnQD7#;eyWn%QJBhr^m3&B`s2yfGy=F+?Q`o>Z+$cppE zXM8&a?5_1{k>#IGR>BWE0y&rvPsTVap4;5|ai!bicQc%DZex)^x73`G6^X?V@e>3! z;|eE!IEEyhC_Qn6|5GOFRzpW80rK6{T-1b6B<I2+mE+a32$?Kdv|@HrhWhd>g|GRW zQbOjBMyET}a1)6T%1LptQF3_qmlqGFuD{r%s3-(YKh(dI7eWz&Fn}=e5Jkbs{zuGy z7)!*PG_wO19v<z(qoeq&Nf)L+aDIkkf$8a*#i^;OrIu1jhy!IFjSUU=>FMdg?u}}B z)6>&Gwcz03jNUOZF+p<^b*`xo{u9Lyjs~u_pv<hobJU$BB_;dUp5i8!4uVqB(k6du zvPr1nJSWbp@)GR`&8M@H$HygCT5KXGfbJ9n_IL0Isrk(J8c(J#sWbd^z_38a2cFWH zi7%HY;fBt9MT`ik^Y&uMmmBxaNj_gKpAUvFi3;1Tnn5N+<74b`QkXSQIWdu+4GpF> zmEwn^BgIC_mFU}eVG+W?iJ+i%ws2srALkz9<KyuOyQF^Msoz!LK0X4KR8>j3y+4%n z)hok|mRX}r4i67mZE4b^Q#(y&E-w<0b^u6_3CZbXlyX^diKWv5^``!=Ev)S96GKBm z`-cYteMbW0CS`Tgenz<X*l`8BM&tf<xj8xU1UxOmhLbSK!<t1G&BAtL8*UpU;xYJw z9VrLf{X8ZnCfG8-gq?U4%d%Q=t+!%R<49+{%OqIz0f8?+Onl3v<m7U&tnAF>@o>qL z%gf(a5fN~RZb{S2%V`KmNRku=DnSSwG5454<1(_c(y}(uDynK0IkN3INXj$+1ljZO zA;`f2Go)u<$lj=Y1?_61dFuP%9fJhje&__Al-<}a#hBrElvWI<`P`qa((FIVr88r; z@;lh()B{+^NYL=`&+eD^4mjQJk~FCc<h2DlP{dm~fXANmATY^L9c9P?#i88ZhYGK~ zTwghW^<?sJJc%U@b)+I`iUphxcSycpF1TP%<tZaMvg-t;0{XGb(a}ML5~o9hZi#sb z$ylQ*^^%IJl$(6+<L}sP&I<@D+Zcpzu|JV|%j@;_3jK5ulhVMhg?BbLedMI1B8bB% z4?f7miyedmqoQM^w6!bmA07lr=zvtoIv!j}Kv*t^+omR4>x5_p2=f^i31Q*vNrNW) z(?!enqf4Is#ghdExP#kCmKnkFhw=Nxp!2O>{pprgpfp48_ukv()PojnyX3DU`LAf+ z>%LMyUnzRs^Ca0!4r6q-SXOySbMshqEUXEr*~`<*_<{n`lQw(F5GZJqt)30X`(uZE zCEc{#!7y6=2x+N<KqNq%{DxaC4Kh&wG<{bf0-PEV8@fu_Qhs8qMHa8Pyc}hsP);0E zg}8<Y$q<3-oM!+ClxhaoMMyXKjY|}Ih53`PFa~z4OoysKQp4QrE!6~vbrdugiB_mW zpbh^l*5{#8$@7WsR$rbd*+w^YKX=QAK@8)EEDJv0Bm><~*5YpuO0+Hsh+SOBF0kgP zD%nAj<AJx^_7z2K0xdQ+fyB8%n3IZ$iY_h`szvwrkA>owliZ6r$+ND~VWo&#E=G=U zaHb+`N9$cI9!x1CBTydiH??K$QRyWEWfc{_^9j-y*4N366$q0Rl+JG$0yq7^Il!GX zJ-<5LE{Jh-S+AkLp555ij{r}aI0QJVvH(ubBFmowfb#Ail@&$JE`|HV7r7tjrO7^! z^IT1)*iuy@P*6}yBCXzQ=t&CYF#{bP9mV*Zv~2|iLg5D3Y4JHEWD1Td1^B<{4aPLU z0V@7J6UCfy|9Cc>Q{Y94%iOFqWA&%U?RaUh8MT&PMP(&hnlj_}z``Vp93$~8G8`>^ zDl{~nQXxmO^oGI;H6JZ)iZ%F1jECptu=8ORQT8gHCaDwVO;eaBB*U}UxnS3EqgaB8 z?eGgv6K&P#iU85oi<?xSswVMWHrdq#OX{?=hilAi9UCNFGfLvIuRBn1Jdim(BYgqZ zHKTyGF&ypJfdaEX!hkPl>fDdgT_Hvr=aM-B=Zh_?Y)bx-Gs(4B%7>hP?C00UPa7~Q zUC&y6(RGb0=Ut9J=&Bk=k|R?vJ2Ej3VVvH0>_3<DNQF=IHKpLba){Y6W6B!~tSZe6 zayfh>>Y@wfW+*%72RXP|-UL@lOZ-7VK#&0CAEhXnF)3upSogR{qCqw*mp;qv%zcAL zh3q45c+ASlg%V+hU|j?QA?>&U@xqEO@!i@bD=;sNy?VTkXk5|39YO}wJ&#R4y1!@s z`XuNVk5_(xgULr-$=GorANV$>H+p4K!HXMfRLYyy%UP*au^n8(KdtF4!_Na7_Xpcq z2hScS+Y9}gQiP%$EEhoC(Zcr3Kv0GZ7=P_rFJsmUFeeft94a3WAOY9rJEqrZBSt~f zSV_aiDrJZ=dnS+BK^apN(^JztCi)t9$LWcrc_oN_Q|zIO`H>$_6@}DzKVnfq3`R6V z^qH<?KNA-a(!em-p3qccul%o}6zHDcgsMEF=t2BhiCAxT7u(9<wIctYe#oJ*(}n%S z5fpb#Y?`W!-Fa-Uw=nyW4HR(0LRo#X0IV2+vh?M%kYM<j#&<8V?1H_}__>nY6sV3_ z$%>T%i}Ke04%RBSK};FNF~2VxOLF>8>Q5N$I&N|W@CQ;1aHQ?Dabm}6yGZ-e$1{5n zCEuNN2vFPn{Pla-I%zi-M$l+)FHr%p|2yAy+K5yVw>fHqM}&Joc(1T%A+=0YBiK*s z-T}r5T6p6uZ9!hh{|pTQT=?4&N^JV+=UNn&a@+bZX2Kzb1B@&y5maF5(iH5R%akZ` zQMCu0x7(;%a`P6eH-nQ3f6__oA!<c|FXDqI91@Bgmb(P`K_*^P(iEnXBJ<k;S;N8i zgR_w*l#`Fm*B?L8^>kRv|Ml^ZaM(V|1xIeIFklo1FagdV{Tctrg^Ar=!Rx&`80W4r z#q4||cco{~P%u%BzsBhwf`jaUbImCgB`#*m$qHhM77K3li~i-~b<+3epxxc^s3<bl ze<xs+IVlL%I{+snQG~bk2U_Rm3qf9mQlV15QUTXg*05}%PEXF=u(8H^3C>~QiA?){ zy}iWM$7OH|vjHunqHlQ3BNm1RBCh;<i|A+SZUKI~hjjGh^fZuX)YEh!1a(D0o3>jx zQ7I{xt`Lo-10yFQKq#}Weq1v+T7FtmR}|Eh+lYYa{e{=TM<6B}FK)F$Xn1Q*hoo>Q z)F{s=Ut?w_T*8usolA)2IxLAA|MPhjI<+2}TsNZ5D6fK-NIJCrL$40OMiS1E1*5d2 zOCT9%C+e#F&uTH$ja>ypJX#nFm?&p7nWC+r4_v(5AyW=k#>=AoKOcdjzwa!+Qz$$T zk>!&T`vXlC0s^du@o&F)%?8y;BfxjKS-I(gJyvc<>ghH69BZFeLyLPz<vXA$_wDpJ z$z+pXlyp-V$o3jFE<1_&$QG0`QYk)+SrU-)bF$;Vw_cScZ`i0}hqq0I;`7aty58P~ zVajjKCOO|nNp9U2tS{=25@iu2eN-RZws*3ZGmn8pZ~8k>6*;dgX;I7fc&W|X$Ef?* zinN(S(g;ku#tQG4jN9>c>B1rNi(|tp0Kf+qB<%9L9E+3}+QPbNy2loLiYSXYm8!}9 zJ*w5n2Jgw*=cYC&9XHKl8#b0Ss~;`=IOkfa_g;$thb$Md-PEG1jy`Za9y3jgnLpT` z{z=^*7KEq6{s%)6XR{ocog>L$%27m4cL?z^f%gP2XAwoj!;l^ErXW3{eqb?p+36-b zGm*rUf@@w!nU)V6tpX;432ddcT<SKDssgy4AH<$eR!y7Wq`*8n{Q%5qfy2oi@DF=d zkBo<5GXmYEpO~3flrN)Wa<r^u7#I^PDj`?DWqPHi9@&Y#6U~TOT1mN;{WlR)!dF04 zKpqUngY{@r!--kStK*A}ACrB1IyLkY*_~&yHQFg}#6{qj165G#^g!}iaCmCZPLbx% z$Z~h2Pfb#+Pb)&4)g^wPcOF6`=29}?1Yi*P$Rv)K_oHZt)Aj9iK@P?P;;qTZKiK3- z7{Y=rDFK!&*<MPpw~}qOnt{aS;{T188PMe36UQ4PaTWh-``*9gKroGdN1#_~1J~|5 zE!-1MT8OoJp*(PtI_re0>g5vN#<SFy`6!e`?!EONBFa-b-rmOvAS9X@KofIoK5@=h z?)`Tp_A$^yQ`s@-bf9MiA3XHPS}rHj?sg5>Kjqal6?j+#7wI7pq0q~U6JyH?NGggR zx6Tj3fJjBuS~9Yvzs~LnJ!1?YH-`*ckOajOic?{G8>kqbkm(^HIHN=9gt!!b!;0C# z7`Y$btM+5skSUb6qe}y_+*uiNY0dAY2#UYtq3`+ZHsg1L`?Tj9_}RHT^cw@z2Q`7Q zL1Vbv)LT)MRE;LQh`@k;4a`4Dqp;7guWI^r`|=C8w_z`Z@VCeV1gwvLj)K4Bs-CZw z<1T@t^=_Wu2c8Tocd8GM7PdWkZ42yn+fS!kHO!wMqaIxJ$KPQ}?=10Zo)FGZ47B*; zEciAA&sqcPql+{%p(HECBg|bG%e2D{d^{WLtOj*9=4l}us<tWlrZjWTc|O}ye0hBu z>~dqe?<^7DA2n^a&mK%(T-;ncR5jiigLis6#bP6+UqcR-zg`HE@^W_{C}dBJY79XW z|3n6If;NDlouq|ojNGoa1C3v0fYWhRP+5;KuTH5TgA<jkX~hlf+n2~iHkY?$v@>8( zPReS+@qi=lQ4`Cb{%4_}KZe5lP!yNRYYvCWJ=ORO(wcJ5a8rwKxNPIy>bhjouZHn~ zV^xm4jWr6)j0}Z!J2=C@DmweRPst*W)tx1Di6Tz%L+DZyLjx%mqVkE<$$6c0@lDLv z?*s_&aLm9v6GLaHRA*UYc?mg>8WTf@elSeTNjEeoG%b|F0NlvrEBG*ua@3oZN!)@C z_=D!{i2&js7@kkLn7o9c_PcX)41g#kCkczmv`DRifv{lu{p5F%mm=d!s~S90ro$U- zC;2<RJw?JoT2jb1{t_fFBCyz<u|1f>uEYL4$Xjd_v5Ni~=Icb>%iQ_X6iry4fYK`d zyY4V7cbtQ^tKy2jo3!^JAl1~|ujU{O_ekS5Yy=m-rKMX@e9u-dv_qc5^y%w&w?Ive zUEC=5)A?l-|Ci(k)EVbRPb=mSEBReKx}G<OyEPpz-thsnE&Ie^imco8>G@$deu7i1 zzTK0#nXD_UFI!I7+_1C@ci109SifdtG-78<nh9O<2|aAsz#l9SBMmXd=hXa5U7&1S zVlGl`Fkoj)Iz{+0gx}!TXwFiamjHj%SgdX-jBJ`IEh<&@w3l4Nxi$P-w6w{kk6Bst zdI>2eVsoFYcI1B@R_V~jlo7dGK;jTL@?t4G*(CwPigqTPvfM0CUSS*Dq{-kt9gNgk zzKHY_-ZS7d2NX{XWm&;sb5sOSvR;=zPEpeFa1-Y*qF2Eg)|vz{1&!Of(VFZ#i62dp zTG%WYT%ONOHHU7uqpD<r>je>8^;016XVYT%NQ-SAUh%ossP7UN5@LV_QtZEt#Z6M8 zvId1f&eP-vNn$AIToN?neiR;cnz*7v^BXNHtn2((;Z*Xu7mA%ki1}GeYg-YYHBXAu zx%gw@gDgT_L_;$_O8-**V7v;0O-<TXG+f3RX^dRV*ctL6IYD3ddt$dR^V~{p-Ft>3 zby;QHi9bs5xLUTlDoyaWWM&ptdgHK6ve<X6teo)sXg4Iu{t%k==iq@>+`^<TqQw{l z>)ms1XA$nt-XqfmqK||{!sQAtEqN~Yq?${No5ZI?zCg#D6Stz*rxr_aV@;ETqlvK> z+jIgPH(sc%#>l%uUNH(9+wuo@-YC{0Ns{MuB%c_U$8i+~gRsK9d?~n}6D9>#AYOzJ zFpSp?$i9hvIKAto?)&C*Q21*^*J%$`$fhXcQ)1lT6~uvk#ykZ_rwv{d`6>01)M%;2 zx?(TRd@nWUpIbe&nxYz$^+HAZuuErwRyMd*-8(S{ID(yo;&>hRd#%N<PYw<Q6XiwC zf@=eetM}{Js|>4N^-E-n)i`5_2=YNTY^_x=SojYX+QmwSd}GFZLK_A=Cd&mQxP1|( zf5oW2)?~qD+AmARWrM=Z(=8Jn!Q9GzuAITH{I2!t2l9r-$tJrQ!6!RRHia_!w;>*b zn%H6%2Noc#pd3inerNBKBB9-TS6h7#N9$GblZNhTp#4lyLSA3`@5$@;S3cSibDV4< z%!Wq`V5ZIxrpG$1`{?^+#1GxRb6c90Z~W(Rzh~AvXyjLx^REvEq_2SCUk7guZ!@`Z z9pG!WoNt&V=B8lZ>LB2D5|63;%C<T1*YE1duWs?g57za&h}}NlwgLx`-pq)kwE*Ms z(}jeJalS@pbM10Cy~~u*PnU1xjW@>fYvV*+R495#(&Eu284&yxc+aw(%)jo|+hs@R z!00F!(59;j`&4}m#QabvgzZ>D2i3BVKn$ZnK&f$-C<6Ki7p=pN2C*4oh;}JL;~_jL zqqKx^rd)z3R7Z(J5U52K#J}8s0iq1CWef!%<>%`~(%;jvg^V+X6<;*~He|gZ%0xj9 zrQWzPriXRhbZERwdMFct?;<(2VZxuwgXV>9g~iLfFQ)zI^{qG^<h<;>zgccMCL@0k zW33O|{wO*bmCa-mlh~&`JtAdKo8OSwwD7n+1#3Ygw{dW#SMw*{2$$oUeYg4<NK~o! ztda>BB(a+Sdk^A$xW=A8jlQaNQn=phisKp?g-Dp;rbKqvc;3Ey1;mw3y8I@S4b#V} zBB+LJ<lfs0W`ykE#f{RJz<NoIanuQb%~nH(O!Nih2>JT^g5}H?G)Bb_othi^=bPvu zdMdk{6YH6dMSFDx@>bQ2KaYb64icUmr$DBa!x?OnWY-CxVoY`zMlG_1GyeLJL4ePX z$|Z?U#cq{aMrM%FmY}<byF(8axx)b`TOO9ZQ{Ut3w5LS~k|!S>op%%C2#lCK82e>} z1492o@5BC%H}|YLz5j=H5+46k-P$Tf)(UKsLPniePk_TfJjskV=OyT!10-hx{7IHY zRL?Zr=NR=`<XLal>hb5zwxnqaXyYk*jSb*_!YV;ugBaSj-E=sICUPyg$XhfQ92{Ip zP3;gf1Y$dgHySFu9KMUd3B6UXrN#E1aovia9;2eFD$I`W$8`<c_RrIJX%qZZ)J3E) z-@JjriGc8@n`QgsqqjF42z+IYQwzi?y3s7!tQOVc!rXGATheVbO`Mp<W_$3%)y^AU z<n{?(_BfcNfVIMUD04{=+k!%MW(NdVjIcSC*oSv_P+Hwdkgbyey&s!P`nmT8JDvA* z1?JrRY-B6J9yBnprU2Tic`&YFq=x;42Ew)T<s=h-C{H&`{smMbIUM}idRF3zGUJZ8 zPnq-Mqg?LQS5(dob(SMBzk9i;Wa4cXkSW7`F6Z+A8sr1{zO5ofNYkUc`HA6y8To0L zqwX@9mr^eZ`M`J#pyVJiYFDr+E?Q{=+M7RPX%LHbQma6eV7np_e)in?ns>Rfo<A5h z4RwnDr(o2s$FL(y%vXByLaDs8w>Mvni7i5{zAe9}n(M_n^~J@7QovbU?#p<i<C+b$ zA3tTM>xGKw^?q#5fXGR}y3bqn?R4jrQM-5YrdVob=8w0ht3;x&XG>KT-uom<$*8EP zvA3(<T6Mv@n)B0B8ZMuIqI)s+pw;J$W1n_+y~U>Te6xG4Is0s?F%K{)yB%@5r>+;P z_CwgpT&>o~KF}TGuy>SrCr}mYvr7D3TH*&_lHs|P2H6-rw3F4+VQ~9rjHy7YmL{h! zjHSv1D-Hg8^&#!Iqg-$85CA7-=jYs!iiR>WLRK5`h3`i|lh;9>%9UjxaX6fBF%J0< zO?)#r;=+oPS?$a2f*tU3>#Zw;s|0G)x#9QjqWyQfgju7jw|(EQa_hILP;xx9BFt2V zx#%1u=_GSyy)3FjUWtwBG#QaD5?Ki5&D)dCWqI@6y!627+bOqip}a3Ew+>M~JFkWq zA-Q>cJ5vu8<4+Pjc+@z$yRXx?4wok!<Y;Ypmz#Kpz}>ocC&Qso-%qk}Kh$czHf4-3 zeM~7J%N#{C%Q1red=lE3YUf&=gfU4)kWqSx7b#UvPQgy-32RU2l?XdO(EeJs7F!D@ zD?Ob$JC%n5Epa3ii72J!l5p~+<nPAPZtIN>)lZ=B3ue%Bt#Eo)e5vm(zCosat4pV| zn+uRV3rtZ}cl>z2bL#_;Bv_-z|Lb(0+S1A@ag^}OWu@1xb^quHSPV=(*!o<_o%lQD zjPG;hT~5WIPQlE|8Z_0*(okNls{HnG^;P{oV)u@VK4Uo4EQ;9u*}?nuE`8hg@iZ<+ zMV~QQbx!N~=WJY*KE5lN>{8@L6Yuc-clp<Ami5c4uu@08oFcTGUR(^NzPi>5XL-R( zJUI8bT;yo^-$$5Ezeo8D4Bpw+ODe|u%yPVvE^$h~=g-o&UKGEAgWLy;Uk2!g+QJ$I zO&>x78q|EDjdfYuxHve&Vgr$75;zH|xs-U?8GKDcwbnY$VuRiuy`Vx%J?t3!_w_l& zp~cn70mdlOBG8)vy1h^y)7MJl3W4P_zOTSPCbtr?CcG#JX~c|Tov%q|C?T0u#8npD zLVmNjXQ$#wr1G}`hE$$tc)l-ryG{Hq5+&TBCcwR?;6as|Z38R10V(QY$ehU-xl_2p zn@b;+2_ve$Fl(=SIaR`_(8|B8csCL)K$J0?QGap}on{k3ja+ej_WKNm@OgX%D@-wh zG-xTT(`VsA^>M@ww72lOJCRSP(*FA5;-qy{HV?{Uv!CV5_E`EVj~moJDmi1B^m*`8 zkF!ojuVd)0obiJuyI7vF!ahD^hDY96^&ayQ6Y<;EzPig2g2(idv$4j<h~rdW7g91m z53vUo_@j=K6g-;A=uP4ecc?m41~+AJwF^Vo!&4a<fumD_u8#J)xXPMsR=Et^)ct&M z!o_$2JG)#H<K*9mQ<)}?j!K)JSA6YXpKtre^~Rh43q8WO)6}BUQmn$TZpZzxP)<z} z<%kKO38u$#yH)5ly;Y1zXh?|vA2Q$jna}Vno-L9kRn-cFe`ajo|I%w|CNW-K>m*9) zziS$TT<5co?QKm|Gk_=Mm3Cw3L*w;fk+;W-cslKtwiis<UjfWZGP;>WEE^5Fwry^; zsJhirDmBCmN$>>n-Qg53#vKv^=n`8zr79lQA4_is&%STrSsy!<4R>d`DLX8wrpLAN zk_QCZSzv-Psd`+bA6q;$(O>trHkGiZDV1WYHSHA%aO4MSM*{A}7ozKS+S>Y**@c7i zYg-J#kdQwqb?Mru?bX0AEFprt>n&n4r1{jHFn{7oTP@`ENnKed<Ir{&W89*u5t=6N zOOI#MX-sRD3%!i_{*t0}#LCl&Xk{NeWY`E4%1uD}oZ8y$)bqqM7Uwa&BJx!g$EECf zh+5oi)lS{l`<%{H`lX(EPsGRY(0UPv=KGN~xsydNmvvxAm1-l;OQmDue9!+b(Ex-u zb+y-N@!d-;x@$&qK@vepd1?OIsALWu#J@Y8D7qTno4;Qs=rAh0dnla0yJe!bu8iNz zB}`roeUbo{+QB#2w(pl(m7$#Hj}1ExR=PN8z;%a#Q+udPKDbfI523+cY9L0gL@qmy zQN-yyP8F}9zlwkACjni%gm+>Ht`ago5B4hD89uJ*&fmro^OZS=oJzFhK96!G5ZxzC z_jr0f!*twt>h62oWg^_H<4$r6sW+7vY;t>91Ve{!SXi*k8<H^%DiP$Z^`v1vVZXv^ z@2H@;PZ2XXunvz*21C9nsq3EgI4Dpj3m_)JeC7ClLQ-W3tu&f*pu=3Xi<Lr?!3@~8 zADF3fTPq{nZ3jL{OTwm<5BNS^>fWZ$cxg@K>u~m>2$qJB5ojS+RL~s2>p$Zw=bv!8 zU(3lR%8l$@w5-{x1`92uWOMQbdf<+D59;LQHW3!LcXp^p^B^-~DIz&mMi#$wa7+wA zIzPs-(Nm>!{-MO{bxfsipRuc$=N9^vnEG0L`1A;T$Hsi?a}Z(v^`4-@+o2ngQGpR6 z)zlCGaRMBAr%!z>U0=ml7#~b@x8%6M$C-!i!(CRRq}+hYqJoVG)fj~mmIXwsitO|K z;4{2rkfrpatZP5G&7?Fz9+c&7wmi#xDvS_!rgK9?RHj|l2-X|znnW<(8cMgN-U<yD zC`x*R=M2ygnepD@|0uA2yAUrrv)c-e%Wy^OveQjCU27S?v@0O-{|<>M4yt@{JZDrZ z>frQ^{T>6xlQ#P4JUPbKUHtpZ6Y%rv;YY)r8$TJJJVF2Kl|wPdt5~SY`ucZ{ud7(A zSdZgt59&>w+HgXTr>=d$6>E=kKzWy2rcB<bjN7F)gVfsI(?p5*RmwrS=*o4ucL(n1 z%FQ^*kv00rct=R5+YkHZ91T`-1w{lkR94+N+JP6U(YLdEktUrK?#PGdRQ*qZ1)!t; z4j8idHxzuO^guoiokyNepVY<mc3ohwN4k)>|3Q4XFgqT<TP5pyJG^@!bGYN`^{mgz zo4k*vSUtnhu0Fxvz<gFunla|==tUM1($!fXk%tS-&~7mzI}LcOsQn?|RMW|0pH_0L zMOpo;tVV+`RFURtc6_7<j0P0#_tW3Cyz`At@iiS#?w=|US&XI3#Dr_4TaghFMd)`V zlhDb)y;%N|iNG!fdU`c9Oowvv=TUbHpYKr)H?dcb=1ord7VR)2@`=Xh4<F4fGu~L| z__GvM;-FcF<`aH3y}t4pL_Ml>s4U*gy^y2bx-7b6%=Y_LS<jFB5?^<trexe$_)9bQ zQBp6m)ytG2Qz7<Px!&S`SH3HxLhr1nhnr|1HSzX+5<AvfM*9K;%Ej^57K4W2vSQ)5 zf5Ut7eqRk46?3-eBD8e~p1r%$i_>oXv#YWuN<D1ZwZgcP)x$}JWv^vxqg%e8hm{+> zaX76wF;pCY3vGLEor-Q#rMNIGb5)kb<DrR5xLk<`yv@wM#&-W`YVx_z8!jy;C+Jjd zzmLI#2NJFpJkCj~C`hdYXl2budO%$|9zgh9#k-DI&@1s!!y@!Jso?^=6X$nF8l${e z-P5E)W^@t?)-sA8OR7&fzV&nQb5c_*he_<TaxziMK6TnBVlgd>9u)oP^=#Dfx$)kR z)PJ~^WBY?_3l?*AN(B;cPLHwA3xcutlRggE0TvUD?CB=t{5m|oFnd+lH8i^jVGzo; zn~fKJrBM}SivH#U$G%hs?V<TOYj&^!!Tu|ro&#zgfiv{A|67Xl;3$LCMd6#!o9kAm zdC_UAYsGAy<qy2hK+T-ffY)8XHQse%S5Y+&_)|xjNNlAU$tRna;%|t_-9Vs=EY*Bf zMR$4IGgX=OzJbsWMAP9?YS?)*?8v|{vBA)4;ySp#f!YAa=&muk--VEiWUY8!bOQuw zXxW3RDCR!b2{Kv3M)*1yf*j!sOv^P+^;~gIHgvtt0#lj7Wp*cw%_#<nXBy(MIzpkL zncVFt&+}tz2}p?z9U?A+6!L52N3#~TvhAFR7QwLtv;Hnw>$862d@{531&#@^7&>?Y zVVPljH5UzYUAO%d9*5P4_;)c&l<vM)&bgZe%n_afubB2us!`FL<Q3lp@gN}fp37}F zm@>5WNC|vzA~MQp+-#Hl-RhW&mt?c(j78^3<)BJB@83O@x>^M<4g;^U6C3!Z;E0Cf z*aG%ext^GuPXqRwxk!dFL|$b5k&T2y!L<5lu(%(q?(8XH)HS~ma#0rZa8PCOqopbD z)KhU$1Xq+fW=u3S%=5A=0rGgNsdcbM%$-AB&}i;{>%SzS5jr4H@>v~ciClR-2nPtI z`H;Vi2YCcdguMxQrM8)PMg8y<XH#H7mKD@#iH6uc4zQ-SMw9`8mB=W-=X21MGSn)< z`@Akly0D#dqr<{y5+sb(y<B3RsH9!$ip@Pwn4eP2nNda&5SY#OJ(N8Unt{Ra_40|% z-AjEfy1K@RN>Ol&-;5n}5V5d{m<YVO@l9cEX?E{5u{85}HgEc{#~caO9q$b8y_^yF zZE)p>-rR;L=B3H}joSfHhbGWpU2eR`_oJ-|@Jk`1=kMkf*BFb=gL1UtPTV5c%#Tys z70l`AXrl!uIh$~r2+6cIdat9njChZE5nJ8xOH(6VcEGF0At?&??qipW&=!BqucG)b zg!duZJvthC)XzCCweK{W$?dyK4P6&kpP9G^)o6bSg^A+j#vfw4-R@dn8B8gu12cSv zJo+*b5)82*3(h0KgT8n$%KQZ<mLi;hv^x}dG8WGH0c!u~Ue{QiU$=B8-g`v}dDU5b zFYP@Jd=)``4)?rLPweGi8a$hBtf!uW!okj7Z>n5@u#d9(UD8@aozl}jM;JKV^ZA7# z1Y7S-a1$regG!#EvY3H{uEi<m4y+^74-&A}x6Z6HvmyE#+Tq43+@{B~Tx`wJg8oaJ z^}-VzEHZI|-%#ELLxj-QUbBB7g%za{*Hqz4)PAsm%yQ;SiSx9>(nE0wVhu>5?pPoe zZk@k3q)<mj?l6-984oa|L<`q~3AaFG+Z>v4XF&IEn6uO~h|-dF4VES$#H=WI2#B~= zX)P*$bAe^BrWl?!&A}{ad)lXFy+j__*DUhNn4>AVI#t%}H@b(RT}9<)$QNaP2k3*O zl`{l+dYJiyRsL87<HR8KKp6;x`9?_8>%(%68^cSn^>Xw*#V|sI%i)epypO+D?hL^_ zD>4|ly;xgkn3Tl}+Bc(ybN<r(R@U<U*5(&2ieg*B9oXSECu#O2Zc2hp4Z$gtwrh=m z)$MIwiyM6(adZd6`Dg$pttH^^gppz5$j~baQT1IPL&BiF`fqx+dxm{^TwLholdPwT zU_r5l`s?#Dx36Oc)34qSx=E5G38(-Q=)`hXLju53Aq1{H#Rak$z6upl)<vq=BuA35 zhc0fCFffFfx~h*PqKX(+O5XFDQP6%-zzNk2-O1wTwG8cBBO(11`ud;zLB&}|&c<bB zLHu>`0G5Wf^vL9}!XSj@U>gebR1Zg0q#sNK4qTxLv0hBHcsF1v{0*rlogS9b2cY&S zvp1G!FFIvyI&995p0#5&TW?j5HS#`B9ymO66wsghR=DEtu{Q=#N9?l3k`C13>XJX% zI8djBk+HU^(qfK~faSh7{HA|;J!MYqwy5{g_I9dcvP3AQ&HEY!ueUPD_oxSTAU@tg z9XLr)h4^EzrR}M7>7NJJh_Do=smxTdhaokWIpXN}e>sV9ht4h6-+6nPY1*!!$7^Ti z2bEwIRl!P;Oa9Vyg|8EK!oY{*28JJ$9e@Gu)>+^J+&-_qNS53#`s&F#U3wy&^g5OY zD)F*njnd5nF=gQpGRK17AwE~ouy3p@l6kGCqsH-W$KXfYZ5;S(^m0by;izm?u|2R) zX79Pf)>zEzc0(gVB7*+VsT<^&L689@uYXgc(JVMqLua`=-@zy==|u!%itoSsdP>@U zHQHI^(CPYQd}C)~3irl7Vro_N8^6V=Lp!oGT-<7?*9?IQW%Zd>w%>xG?5?b@Qm+Qv z_AGeZ8@-YAZtZH6v$qX&@*BrLLs=sbuiS5dqfUZV=W8IWyQt@LG{NO2uJ_g=*wggj z<?BBsJn*0JXB0S(EROwdRdc+z;t^E8<i5nrKFhG0iV5M<7niu@NzxG?=hZeJA*qEf z2i?MRhibXF)1kqw$A)JJE-bQ9>jJz#@K7brM^~;oMhb>Yh9)>-oxf9LQg8=k`Oqq; z(R{A74u-G(7*y4lAcjmA9%4u^=1Hcbb@-OsRL(lUNM8gOxXm_Xy6WZ69-FMg7b<V{ z%e+Ip=wxn<HB40seunZz#$8U*|C3_i=0?4Trym39XdUJ%&fG2~W+HAPbUCQ86&NDm zFTx2)A|7diu)~WP&C0y(W@#_kF*<K=wby_kM=!m=8B-@%n9J#^i2(xyDAH)Ss<G?X z7++120aM}b?%ni<gu>eG)5&G!-Xk6QI4I=Z$;s+(^KyS{-=bv);IqDJ!ldJ$pXUm1 z659sy8Y@EH4g=>78CNy)=5=<1%^9Zzxg7S{BTH*Fwkz#J$naPEZx6NtVhA|}V=QVX z>Z8&y=~oB{3Fn>y0-SLOaZ&W>WPKb+;EyQVCn9GuGH9aJ_Yl&E^r2D+2b!aJAztgV z_HtAFMXpU4LzuK~t{$f-v*!%F_Xh&T^A%5g-;&TjnIAj)SmM_W`F54uoie_qDand0 zFT6j%k`v{eRDa&@Fd23sS*7yU#rx{$>>Je7guX9gVa0hAvgln)mfH8!?%El$3S1lS zc&FXQ7J>Z=Nn}NYLYy~rP729ozXOTlxn`5j@s+{vJ7B&QIY7^-lbC^9$iWQtgvz@1 z$E`#n{`Mq0Y}6uyVN}LD?cwit-jfzd>_bcq`@S3&NJjFy;A|XRg+h}0E<Vb-a0Be# zA^7ys_+=3#V&6YtZ@3&M=hue}>Vw@nER6Ji^rF!Dg`<YJlcb>bJ|(|i`-V#^TT~t6 zoJ5HG4FV>ZS{}K2d9&(7LPdano7*?uWWFxx?H*muH_nk05l9meD89FI!j=}fc;@TC z!wAuKXWSu-bv?{P<(F^-ii81%pHdk4EgSqEyV7o>;5$8B7&1qnlc7$xUz3Run>98D z@_-l0@f}(r@Fo$f*b7h2RScKbZfLjD`;4ayck-BvQ1Jj8u$5M~y|!%_0n#Ql8V~uT zO(zikca!F+6m>?^1XF@xR+mu+A@Gz-D8FFm?@tt&9CNX3K2hf3a~ib-NV^}JUi;B} zdmk^|+!rDwagTW*W$wnO@%e8LP;F`)8gQq)X%u}Ea%k{Hj8lZR3K6t7esPuhb9IwQ zjzeCBHI4x}zx^F2$Ac|l<_VG80-#Sw^&(&4ghujeGI!2I?q>^ZOufVJ13FM(V3Ehb z%uG!|d5#Ld6X(F}_gDGRxV9WKE6higbB4_bix<1-zn*!dk;0-LT<^jy4*bLqDZB9q zdY-~I79?yr!Z6#gGV!B`3?;+!brvoF)G%x8QShaLOg|vx4!t^4#aZo0B=2s_Awf|2 zKN}~}YmLlA9s7pj?E`n(K;92P5`51+?mkm!X@OI{E_hxNk=XusTc8mSk;D1(Wh+Q; z99flZpaf)C5+EO}9ey}dR2lsR?^(kzmbhpqC!HA*ypx$g{%dS%A05EUL>*j#Jct`i z$XVSnR$p?BkyYA{4-x{idh|cycMS1+IWf$%Tc&m!ZV2XH*E{2zY)Iq0fnAihW@;zr zCp|{K>ZJscR{ANAI_LFegZNn4{Q*ec%kokBAP9yxurR1+rCdXz%NqB2^g$?dMA)G7 z2#-wBIai91Lg=|MkeXjCQf?oHs0Jfu#GnEGzr&C7buB-;^5p#Muvj^ns~(3FOXZ}c zof4axSVPh3QktGi<*7F1djse9SKhM_jv#)>Vz7R2zCBl29UpJr2Fb->9$F%eB$kj* zTPlp%+i-XmvWD9?VlNR~oS)a%i(~dHVw-^3RO)DomW%V!<Y=Tdh9(f&R3QwyOQyD{ zx@FL)MS+&!4YUFA4&l{kH?4$}acpYY`%7BXXf+R|=y|#m@95U8#WQ`-4`o=_6@iIb z>HPE?#j@=1XkJ$BY%k|&)rZ*h#nWScMgE255xiP@yL=C04DO;@L3goW;ZJ{*FY3xT zbDRAzoHSQ}%po4J{gN^zgLrNL!%-d?<CT@4Qo8{B5rLkCdh2nwd5&e$=b=nmO(<G% z?%TjF<Mh?8umL~uQQhOB{^+0yw?5{@kc$*vryA)S1z!!beI|xBQof7{3$)gS!qi54 zFUVU2wgL}hA1usxN%AZ+9)d;E1y)1RdBsAF89)BeVQ_Zn0zUD+_Pt!Q+Q0u&<~E3U z9e}h;%ITz&)t+FRcNG#Z{0ev7eM2+b*&WoGY8}QWKlmvTbYi@kM0f`tFexmAW#V@c za&$sB7zJybmsu)+ZS$tbN2=SR%IB@M#(Mhy0f9h%zZ;%x``XUouX7wQZ7qP-s%;u^ zTKm;wZji*VO|$)S?hA>|L_Ol&H}v~ibgVPv8y(9eNlB>xwfIpJ7DpUC*aI>S+vL_Q zn`K~-hrcaAz^%^2^(K%PHFdv!92237SiV;+)%!QA(CK{nh&~Ij7oZkBTMC4(SB}a8 zCeLzfN~IphW>BbiA3CbLN^>fUq~WgJ$`mfM;{{E$d+TOARLI_UPU}T86v`X!*&}Ia zguSq}&fs_vp5fF07%N==2kp3M23Pc=QW3_Brv^VfC*#<`N(EPc*DlG%{KOy*d>cnk zgp=-dNDFt3kKl5vkyDpZk<+CXn-+O76!$$0WAc_Qy!z(NQix4*V_3O0h%>!d;VbvF zVkJ_oUdYskqgv>y4s6!Ta5#BSXN9gGSNTJ;A*3_}r6a(~6v@cLf&##o&{!cHS+_Vr z9LdPmk!IR5R<NO5C^RW#)6*k39T@Xk%?r{rya+QEc0|uD%Z>)%gI>o^-xZz!5CM-% zZr&t0;OE$TXLUtd8Wce3EjStjigE0{c3B$1o)Or=3iq`t|3}_GiyP*KB?qIBGUR^& zexu;g%%uSwQy-D0Pwka-ES0|S+6kG*Qc4bea`$YK#%=X7eDti|osy2c6z*xksR30o zbEZos&vrxbFG%6;X34HBmfS5hnA^aFdn6aO-8oeXmbVP#jdeXE4f_zF%nTmMh4Mie zr>9{7z}zfw$O|qYK%N25fWlau!>(p3EhywnOuBP*n=jz6rpVSR^R@gLr=|gg>I(`> z7sK<N?bOUi8U{Z;K4IpFi$GeJli?@|ek^^AL*H4s;KFbHivC!KZwb6V{N&5hhhu_v z?%bkn72O%>e#5ot?BYDM%e`u~=zaGzE*u-uBTE|Z+pFz&=x7Jb#aIT8y4P~weo4#A zlD_wGbW0aDLZj~0q5X1xap)NEup*Pk5Y^tfLl?>n;#|F{jy}w8Elcg~+x7CXq0^UT z{7k1z;Z%SkY(Q*kYnFoQa!t7LkPU~q^LZQ1+4|q&d1Eq^^@?%%<wU9$pT!@-g7o+? zFQObW0M{~v$7<#0hqHGpdn;Fi$2^q@QHZX>nuoHu+>JdLu(Pr;@`!`lTHGQR9CNVR zDlFDDn!Q$YSDT^LXnvf2%+Hk;PJDWm1`1mVu{#WBFjWLW06oqf0zQA0Rao2~;wXRy zM;yTytGt;ExymQ3jDXujJJbnlDPjw1hMujCaA`h1d;zD;oI=3vw$M2)jygDM01X}O zC@t#ObO>48tq`2M#O$zQY9k4RFYAp~)}S#k4AZEM3F*;1;oBzgls@R_ycT@bmX5HR zCZr3*6xTIE3eVU)xI81DOe_2>&q?9r1!zX`nG1qqCls$_6_%rLZGKtKEMqzoOe_Zz zLcTw7=tpewobQX^K_<$G&Umfmp%C{&JUY^}IGhjmPT}N=2*TGC;hZwakc%UOQe99a zg*k4%#_;&`!?Ju|JbOyUW@n_WtU`9xZHS^GI!!nEPRICzcc!EpM=cd(V;@NnN5{|r zM#>Yiuc0X>jdQ45j3*b16yn|J^pvL2_+<Wv&bQ0^J(uNoZ@WhYvCl8!_<68*ZEKE2 z%2&fvMh9?BKY4F?vIsqzubn@Gdx2)<p{?jN2RtX5AI9SJf`@4uo}QGyJ^H?Ue%mgo zL>bV{qD(T;VPZc0yciun9ws%OALj3;K?w(C60XAHVQ^D8zh@GMukqLe9>P}bWkLhF zD&}5eelf&H&sDvHGLP~8dH*2i<MVw5u&|MX23gKtF-;{a3N40@@eu}|2v4yHD*DT0 zpz|EmU+bB;uvUqt=P>-oY9t56Juhf)Tp8)iJpnEX7fC|eT!nUqFc630(l){Lf(FxW z&cT7d3`OEI2q-jbrRkEAC_Yh`XU#VQGx2nIwTi7KIKqP|I*X5R-R}ZFDwk!_Cke#i z$lwESLA^&~;um53qhMtmj&}^>0=sX*Nh6A{ffYpqe~drKrSwmXt3WkDNnTwX9+cy~ zUGm7*T`~ZFo^Q9kre1{!lS{$+^vR=GsTPq3HhU*QBkT-Td_8mem~5@6mMu8T>z#|| zWf%hYVF)&sjS3<>DeT^WALH9o+aNvTqxi$g6NSanR9Y?<h6hwJFrLrv*n_w-mDY~h zdW>jsWi`s|(VhF`hezK-Jay8C@F)9vG(F50-5i#vXJtg>Xg998M&U8;b3^?~>oePS ztKvA?(<w#SxpJtZUDLU(vPRk}tL5zrXQc;u|I+T8l+MMWL1`!{lf#!U$kBlwd8BQd zG$Nh7W20Co5>Xyb;mG|Kzy^?yYA8jkcfI&7gf%8F3)gdxj>t4*<;DtJLyh#f`l`ug z4MWOV_gwmeY&cKy45QoQJva+)Lvu)*-91*o83_9!bliK89x7yW?ft#di+t>FXoNC! zD-mBkcSdRoi!`6)2}d2BNLOQVsl0>yJ+j4>)ptI4TXt5}#>7XuOkbGxAR?xiQyJq> z>ctq5Gw+rU%U6IJ^H38O5w|ootJ#Xa{B}Fh!4S5fB#sS>xH%X$rrh=80Qu}Y7O3xB zIdGn0UV4XMYC(~))L6NyN^^0v4EID#sz60?L4Yhvc`?kBIMD7}&&^3cmgvIzB*Rn7 z@`al+<jx%t8NmLK1qd3JFHK%~Sc+9z1XCaOlgwZafx?^c92`-@JrTn=xNZ`AM5z1- z=Mv#6Y_c4koR#rO3JfQFSlO$}^KpLKJi^R6rGs?RRRhjt#Dmy4%6RFR*UC~iPt=bz zg>Zx^<F0niTX4Jzf-r8|<I<0%)$H4l6yb$1b#N~T>CDqy2M_WhpLxT6nIV|mW@e*# z(|sU_dxUwL3G#+`IpV7T+>Kl`nbDuvqKU$<;hQ!73+R16i=O;GD2Gxs`g4Q*D!fk* zVAnN-%`*_*<QF+PdFi~A=Hy9jaf$RoSeMY+0A7zlXt6hM!uq9ir=%65g0rBV2cb#9 z)-yS-f|EV}m(HEm5$6I<_od=!g&_S;Z@waXYwA>3KXdAs{N&7WDL_Yb1hi)%luq_` ztMGmqX<!Fu7J|AKy=10q3l!D&KRk@@LKTF6hh8*=^*wD{<fZnLNEa4wz>GLL1G6?p z6JOeOle_@<(9|T3Cc&xNP#Bw_Fn)aELoLtlu@M!ly%?1+ZnlA=-JNn~uuon`{QGM+ z$mh50l4DRjR3LwM;se<M8m&l25fnsCQI#CJcutz3Y$jpSqB8v6vG?S@<~AMW9PYd* zofBj71cZD(@TnBuh9cclw?Rtt^5q}SoKVGlN6RKTKhUQm9gfi70uHN2H^P>nte9q| z?Z?NDNLgNi!kCv2F#@6j;ppK=*CiRk$f5?k`iC<o<+Iy&LjhsKGGNo-A$d<lJOO2X z7G?i16vr7T;n$!{dGX&aDrP7jb|_e9vZ2JuL*||78^X!ZhdVDw8PY@L`hF1KmWmqW zwNbjz@yNhvo66McoG*GnGP)0hqY(c2j)9_%#U1NbLSp?>U)P2M@qCW|wper@2!uj9 zO)qflX)a*(6sJHq32gg7xZi`ljfJHQIoH1=<J0Mqhdw~(gvh`cCfE^9PZvP>L+-1P z<peWLMRTCf@EqAtD0BXV@OjWDoK*&3ox9TbJvjY<4SL*H0Xj$<%~OQa+~g*@UEBuu zO<+#wyHStfBDm7ByeS;Cm!MdfChZdjdEjKY<qc6IZ#0)755z~Bm=`~9=?Z6h96Ze1 zvdc3~Xt8YsOixxgS|Zo>heG~Q2$gp)b;z;4ZrKAxa<aci9>l1EZTWBBe@A|43r<AH zFOZ*}J}ws^aQmPPC|qu9+9)R=*eR&kqyFxZccl)3Di4ZhClo_Nahd%0_urJg5JF$r zzDHhwqGDd}KscJMo@+mWUa;$>e{J6Z9Vsw(R15{6(NbP1KRI<&zIM~?@)kw|Po4Zw zzP9HUO)JeR9No}u#ghV)!k6?vfPiMc1}7$<s3US|Y*6lMZiT?Dfij!dFdQZPJ?K?H z@ZQ(DMPZ+Y>4pONS;WavQ#t76L5XpMG6-e!mEAYH-gRL5BK$|kK2VceHquLT9F?k$ zN-*NcM_4L|mpjhrXoVxJb5saWqPIcVQYmsI@#ckdn)f#mXC?Sdg-ss*0Q_V=S-<F7 z%gUt+qlWvC<{v;|mgAX+MISRLi#INJ$bq^>+!a$QXQ2Fl2qj9TLnZvcrtPXEsK}`} zr!hkOEXw0mn7qzlbi(-FLU@)vN0i&4$Y1X`tNGtuw?P#xM`twY6(Q|ZUaz9QG?rFi zw9+BF5pEVEy%*4NxTT?4HXv^_FTMjDjwos7JODU59xNa2z_~2p-BTc%%lMy|#t?+^ za0np^1&I#w+1nx2t8ms3uQvRZL}_uwS3y>w002M$Nkl<Zhq1U<^Iy#`p56`r2J6}1 zv?8$l5Wx2kj)WN=_jt_VkNZBTL@1Eek(O6cG^|yi&;vLgQ7d^qNuQ412Iq^t^J!rn z3FjFPx2Tj>Ku_Nh$kAfH_(y1zru)#}@Ktdb4gUf!eGfb|Jr<#d!vG;Z!nrR%z>gI! z0cZuzM*xsK)2Y!Q{=%#rxn)C(nx5)$WYFIF#*q5g_TQ@Sth4uT+NR;Y55dNfB}WtN zjh=w1i-LDAl*Twl3=}$aB{=r|QJ9HnLZZ<5EZ#X9<Tu^pdk^T7v?)~0?XGv>nLa9y zEC|tq8#l{7^wcSk@87&l6%g?mmZQKj2z&j;59czN9;PK50`Y76Z&Modrx}c{2_qz$ zooH&wK_0A4l2%(eZe2t#oJ#Zp%w6AyqWR|j+clnIC=cS2e|Mq>&K@?E>rt4MMrWq9 z7f$-OG`8@ej;1OKbLQg^l*By<$Mn99(M&hYP4nR8r#5YZDRE4`2Xow4cJ9X<M4^rj zII^P&it`hDymEO6W$_9WQx+8Q_Np4W8Ggps1BjbuNeXf`%LeJV8On<0K8|#l&pjAP zQP7h|Uxjj{vSQvC=HSLn8j5AWv{K>FaddQ)rcIdd{>O*!%2#*nRbJ9>8#)T+n6CF= zHvGncgD@?Q$q^`9DiAv5pCRI@r|~)^iRc(3TT1X`TS~)<l%y`ebGB%QXN8$GOcD=m zyzsN|_MHU%BZ1eVoy=dEhr+wjj%@ZF>PbS!l(8&W!PwY2da&g3$$Sw9t9nC6e2!44 zICyeE6yLo&S}rUDX&gWzT)*AJ(GKF)et!UG0LB~A(NH8r`cb&6bk38c4PWaP0Suz) z3*NPI66ok#nGx0A9Sy^GxUAds=U$jF4<rs}@rH1V7k<W9nqYJvjRwF^lCq%p^>ED1 zFnZJ!oOCQ_3PF8m#bBBPA*n$8Fu&HW?tw5jN8vbpsY5E!8|K`EIn5Gius2RefldKM zXLO9mA#KFrIIU><PN8dUhRTEQCMXSVG#x$0?C4BD;Q(FDT86{CF%II^!QQWM<loZ5 zZ_a=4kFFj#Pe7ov=kKSRu~2!^1Vl%Z+7RY>Y+|1IrDI%F9t=yGt@yJ%vW~n7B|^nZ z$BFB2+;T9)H(Hh!i=UJ$pkO$1dLAQ+x+3fcG6jlw$fx`=xBAuR5fuaHbLa>!#%SsD zJ8|2mLL5xX!XYSBzb!9FZxfUfnYt5YO=a4IQ4wh|P1;uQ&M-GOHp~7EO-ds_ScyxM zB}bl?5B0=PgcIPp#y#wMx&qP_FVL=eG>#{6hzn+jMZIB-7vmf_aEs2JBtc&l%!zyE zH6OckueUpQ?z~1(Q&X)syVc+bdtU!pi*M%p^qF?N*T^U?@!?9MT%NIof85~J(Q!fZ zTv=Hm=g(s(*tkLOrLL{5x$3-Mi~KTuTzbm8S*+)x`#NYthQ^o$Ty6GRW;7Q;W2ECO ztnnob@v$@(#e8CHSw4qJb<{E(1A-O$L51QlJR=PP1O-kr&n!$s6sS7##3VT#SMPCu zh1)B^o{)k82R<iF0bu!JmK)Dp-6LXf)?k{dH~~%*(+tuYp;iN&-z*cpGY_Og$Gj~r z;xZ+Cla9?tI1?7)f^~M5dqh}r$P(c>*c(DOi}@F@N*ha<HzbaE<{^@nH=R%i1)8up z@8j}DWy?kf0-&u4BT;iM3j4ZdPc~dOZkn9F2NTGHZ8$L-0-E)cj%8(vPcs}Bvk4RS zj_F8`rk1+`g~HshfQYAAz|(|9NEaydk9Ub+#8D0f`2IWn{4mjXN1IA!WEM-skvEGj zio?(@{Y+?(S_dSYv1(>;Z2*KM|5n5ugeT9~R=8zh8uE)KFFHTJ{AS#w%eais6;Rrz zVQS;t0Udc|N>;z|!`xVUEd2@tE)@(H5hyOciR|KGpr9Nq^Ge6jBfjDVIQ;hWNBSYt z^i?5*#wb@R4?5B^3>UvsV(N(>EdxB+PS_;lU4(6uNf;d&L8Ej+h8w{0aNlxnu#DFt zh!4!~2@JPhef2fHf$hgXep({X?4`IAhYTGa#;LYg4$KQ|C~SFv9B<HTYHHHk)>v>n z<A;KJ6j$nU;=ZV;P@1rjaqpfzN`slY){e^J6gEuq{^+B}PRQMN-67{YI;8BrdvHME zguL>~A$jEC2j!)gUd63(*fBdqMY$jq73Fg5IP8$PDXy(;qaK3Cd#HK!C@<&vI1jsH zCCbjkM$5E$%4l^F^s=)v^Hmt91HOdwoODqH3Oyqo7e3{pSF;bRKcGaiu;1fB?DyE& zlmkC(q{5yEw^{~`2l$yVY0&1MnX#n#=0-lAZ4^Nrad0%11#ILb9QeH0h<5l)&|Svf z6o@xfIGpt6arB&ICwvJCh;@a+nMz{`$}VjgaBOI#W1Y>+a6&H~`#P2u6bu|r)aNT5 zYy-s}BiHCOtvCmZaqE5$C@^gpNE6S~Vp=1}!#p-RQt5C*n&u7lFf#)R7<I$)mI>2L z280<m8ZON{I2BqJ_773;n1FRDa=%E{b#)V1B{M#cg$a0au8WHj=+@Itln+4y^_>B| zZ(s1NmnQL&Iltxl@5%5DPC?8GY%UDo+*Tr&EWauagUGZfkiSH@gc)U;i`b*5W0@wz z55%k~mn~S`#CaYap&%T?s32D=_zs_Vvk!w2H{d%0#>A(nfW^Cbh#z0PUwqj3?^XGN z#9G=I2iql`TlOAL2@1y2+J5#dmhr;wh#i={eZ6wip1o4AA!^TD8Pq}8v*WF5ZEdac zr+@lqa`50C^7l{uSOx0+4}40VdG<NI9{0tUUXfc5z*Yw(@e<xUE?mOBBb%idx30Bq zYLzqS^>YOC^iQ6ZoA&Qh1(K*Blci(5a56`akN_9^aCL88T@8B4^U@5Z#!(b+e%rSf zs~wJ?klSv(1tXO6(%QN)*j0^<ZBT}1&tcUC6blc&+q-ACT)K1_f^TuXNx0^CEMn%1 zr|53kSRJhZj45b<t+-G}dqV^Ta6UhMM`4KXJSfD|WJA3h-V&A0%Ayt*_|#Ns6^wyb zRg_3&xm$l8#ZQxRZ1gO{mBi*8oivm?HX`B#Ty1q4fRz+`N+8HL<E{vc!SIRFh8rd0 z^Fa7U<}GNDmN&wiutC+}{5D~<p)NjePLw3eTQxQ))?gE>Cdx&CwCW4VMjb%94<|@V z)Z^N{aSuafUZIS`#KX30qs;`VNf@b>BRw^Y34nyy9}keGFDejDlCL*kiBh^&{)`vf zFp+E((O`+_`7rW5HytNx0BC8nr;nHHeZBD{3s3l!#OKplFJBmjofP78<dw*|88P@| zl@!T1_h&-DH=uW&k%yrldRwj!m?)@&6%^pMFN_+FA3rYt>R<f{%vm4k)tlU$IFCwj z?>%?R$&;t#o8S04?pSxnH{X8yZPE|nO=UtDX>4q1(O&*T58kiWcqWhWqxn#vba(ei zeM6np!R&PEG;Y3wX)1!9&^*A7cSf^iZrap_4V5!eT~#GCarN~N$SLHb1XqdPe%k>R zOuc=5vSVpma2TGmTYj|EB@Vsbio!Cc8H@j17;da{Ju03)%e)iLsz5k<Q@l@0>jni0 zJkWO0Gk0`YX+nJTL=wT-LE+AAnzJ~}HT*<y%^eUjfzQ)zv7udC0pq7-s!%(DphNqT z=k!7=d^>p5FU%YB9Hf=Oe7MV8kY|h}Xr3aS*t`XBq@Vd<FP1!H9wOX{kCSw;8d<;L zjZqzLyNu2oM^g&F)t0?S5wHGj9Cfk|W+*Oe<?_p)N5={BNvsTGS<$h?-J5=1^B<=} zuRI3V&aOP%HP66xBuE)SW#@Oq{OCdjG6(b0_`r}<qqkiG)6N7csA<V$EMmjwJ<N|i z_SKMPOG``mZZCJ-al5@HeQw#}mg6NwxJDi{Tikq;vptezBS%?52D4!U<?ef$r{Y}! z8|~<*nz77pGn5R?HD-S&+<0a<H{z)c40+&vAOoY*)PL$I49j^lBTPoUxRO^LJelUw zLaf5Uu0ie(q2Omlp?QY;B#H`xJ2N0?9UOMiT-@8uy%M1B@0H*_5blZKK9DKw1JU^d zR1BJ~xUXYuVphf`=R%VY`BPt=C&w==$zLDBJsLUgyscau8~@D*v#_*r5owx^3J+w? z_JQzz56c_pOEhmViS;56PRe+B!wr&s$g?U0@Pm0|-ind80qkY*_knPai{?%51Bvbf z$-#XfRpoi|{QGnAckg3QO@5k;OygJ=ELi#aLs@DvWE=1u^LIV#05|+rp)MZ9vfT=A z^7VSg>F4i8ywm)s3M4FSFxlR3L;}_s2Rj<SC~nOWNL48=e8R*|8f?Ct*Qmq_44u5R zZNCXP<(H{xC|2b7cOT}HF}U^ktPyB$(kJc*x`yu-kEOR1C!m@$KYsH)6C)JPff(GL zYDb5^rQO0`%V(U7N=ll0JJ`Fno*S%-Fuh^2nF5p_9FAgMgs+N=`36o#>yGUZ?k26d zAA$qWWre$mWY!1W9|B>_G*LKnf|+pc>7bA%oI=&zQpvp`gfq$T(~N*V0OQk3*d>k8 z0{k#Pt%o;q0y{h6_LD?{#!1?CR1Rs8-)y#wi{G@-GOgr4=S3J7^R~2zgD>&Hys;`d zIMd?Ngooyhc_5zVf#L8?XL)1XBjd|RD>lr6&e$||e~&W1*hGmrSJJr=j`?FF=J6km zm;mMOaI-%%#pKD)y0biR{|9%4v-6U2A3q0J_t<U{IV|IK;0E->DHK^~Y&;x_Tf+@d z5`_<8z5q@1?!&@Bcrm!I%?;+`U5|H*$DXDX7?;8P_qF`5M;bN$^%7=#^V*!g+7HUr z+M`4BI39#?@Yu){h9Acd3TnQ)Xxuw79E@@E%L%jqPCp{R5nt;Yo-|pZgO3Sq2;smp zq#K4%5B{iQibGm4?_L~+j3;qzs)FyN9}=)vzzC*O`cRm`2k@N_&3YJU;oK;9%nSMw z(LfIShW+k@y}ly9P%Q-6OxVw%<0Lwl)^Zng%6<GCV7o{<0-=r9CKuT%*uc3OhJ8t0 zy17dFouF6+;b+Xt1V*xCujQXC+((56B5h4FENFHB_@`xK!VypH%>hoCXhNJg4mW@^ z1|q;I9CHRrlVF9?o4EKx2LtCV8oItP4B-d{c#vv?0nT{wX_RzXAm>#u9RrUL>}UXy zVEU^k{5i7HxB*ecz%cj=(-gq@O~)t4EBqq9LNyJ5gD%n1y*%(+!-V0LjE1A~pwi<~ zM*Igs=XWE2$zN_3q^rX&@LcQ}_<3|(#>+WWz0njI^sC3uV}3vBd1AfeS!8taWr2fV zu@um?(v|rL0<H9jg>d*!=QmvT)(vLw3h?mk`{Q_8nv5Y#yNxjH$#fZ>y%W#!d85*; zf^W^p+=!8<_u8BcN01APScVG8$Frx*{6mvXK9=yxas=}kJRZX3iE!RRxV(%b7O=O1 zW*@CQDBpDM0|B$Rhk~XinvT?DrIH+`EZ}o)gmsC%6$)Ec0e8AHu4Dy(ywty?95s2J z8-bY&<|`aCrIMU}G_}oOi7l7<vTT@#r6SsjaHTHbT!u?W_#*PQgb8`eGx?->%V7ry zc|)3L!eSl>r^$(q`$ppP#<;m}WR_Rgf)M?eu^Nqz$Ju{?`{DWBg=4qM@|ZII-FU}z zvi^Mz2Nc@jdN;a0UbkE$Uvyj=n}a<d+=GyEA0G!;!&xFM7Pp|vefud2C(#LH<)pI; z$<Lrn301$CpCASkSmsBCVlbM+%qH*qTO0<9f3D>pkAJ1#M&Hj>2n#Z8jn!zIzkT1R zrz@4UW6OeVC4##yG~GaFHn{JCcU@$r^BgEB3jiVFF|nSj@GQ(ZaC0F0>4ayaS4;ft z2u=v4(g8ltsmjjey&@4kt#=;#5Yq7v;vaZ!uS8a68Ya=_Fb{z~Kgv8C_o^rzz%v9Z zYDgUwiWB<j=wY_j&dWc#byg?aDXb~nOR%(wmtRHFaThi29jD8LqM|aPyv_t1n@tq% z@`imc@XN}eGMU$Uiv#45XXFivCL0qh%p3Ed@QAwug?XFC@-vRS(}TQm`7l>k&2xDy zlpWz&nzsx&uxVEQBzqot=Y;>V)Rbi)y~q#J&2-#I$2!RRz~e>C-QXlxwAcJ;`Cxf* zqn*Do@0v%JBDii2uskrEsQCP~av~s9Ao0RdvDf%v<Ds%ReVUgfVbx7_we}1-**t|k zB{P`t<JFv#IQ4M`o9(!Zm_11DwOGqtO?uX(si}0m*TKOd-M`Y)(}TSrbt>$5krtQj za(_q(&VJ!$xQ+`Km25?MnRH?KZxwc+bJO7UNZ(rNPv*}8WqNWUg}Em}rL7`6VZ+zf zCLY`1DgnQ_kAWS8mJM859fh;U&Uxep?3GXiBGXZD0bav>Abc?wz^ifDmhP1Z;52?w zz?SJg5O>sudIk6mRoT*1gL90G4)A$|{PJ>!v^BY-D4ds<2kZk0)5OY$zzpAv%cY`l zhH`0b#6FM^uEZRzdRzh)1Gl_Y!90{8Z#!G_WLI0@rKUNK_WWj~#8sJafdI?mdO9ob zkE=s-J@ZD|%-4fBFRCm!qGctguXhSk^nDJ{44iZhgoq{#$FL)OY-}8-LfW}FYzS6- zi5tcE__+M=hfiWBdV?y7dW6l#UJ7o?JA3w=Jo3mxx^w#+cB1pBkPkliP@1vRoN;h> zdR<+u^!D~?8p_JbgaZApyYA8>O)Oo0W<JV0mwwVl&vd=>?t8ik@X4p1mM?wr^GNT! zyz|bx^6S6$tMbANFUvy@-H%=A<JiM;8hceL<N_4QsnhMU8B2Wcz4vad<R2w1R}$7r zAXykI85S~4H71n_=Z<fd;m|loAg(kCFN6t;OKpcIxU!0iC#Y1gzX5O_`JpG-QV;^p z2TfM&0C07cF0u&V99=Sw30#3YHA_>Mt8Cfmtrvk7O;T=^6e4BB2***#49r4U`Kz^y zU>*-roCi-JF^<p!AiH3TaFfl%<Xjzv4UbS!xC^f7VY)c_2(qA2b3X}9Y+)WWwrJjL zB^gL+IMQI;yylkXI&%OcZblaCG<ytu1KiK6@-WufIaN23rxthW8E`-wk27ztsz6v7 zx!La`gd|VuY(LwsJHgr0j=IDRgGYSuxRSm5_R63C$Nwxt!$WfJT!-x3v0eV)4}M?X zdh2cBnNvgP@fQ{r$cd9D<<OzmW#9h2a`eMv^48mj<#)gNb?L*VJPPhI^z>U=T4c+X z&1l5V-WyHB)xVJz1;Q-O&S#u#=K}+Ss?<(nGvVOiFa!l`;}CeQtt~3-s7#r5D#NbM zZtR>c!l-IiM_Fczzxoti+mOu9H1>h?4RareD=P}U+Ok~CF=WVJzKFXSa6AYngGXnV z<*T=5N=t1-zWwryjNtBbUL-Y&Jr0lT$&g#O;?4}*rD1}f3WIlMl;PfwLEM=!t#ci2 z4kQ=LlWMS6;+3Ow^5V%w96ynUV>YmB9D{<#@5#YPbQX7la36>p6;SxrSLMs;%Zu{E zcjmEloSO={Id56M2K=1N_<bO}(<Dz7fZGS+^2Rh(;;s`akqbSz>jdni5A$4IiW}?l zah);tflz5OPQr@|+&++g>>DwqNjUeoa8C*I7IW7LmWfs3PLq-G8QgWkIV6_{D&DHH z{LoArmZT*j1f*WBmIK!IU1?t}l~lNE!2xy(+4)Z7)P%*tn!@=`8#ZmkaTvMMj}ZYU zKVw~D0^GShhs{lIzVVhk@x<dgf}t5G2R6*_fB$b)U~{)QkNV*8AYb|Nm*m~UhjB<_ zu591FO>VvQfOK}^k`$bq_1nMmn=%d47k7r!nIMc!$JKoqEeigFcix6LyQR3eNN-`R z$0%qA6dsRL;h9+E0d3+OCB5+COAtWmvVF%kxp?ssOjwoIG+kGho5Z20{Ae~pCtDqb zth;+7O-Be^iUbRh?yR1fb9*|*af#GC6bl<F^bZ83+o!?(B<z6D@yU+Gl1^N6eV!Yw z5KcS_;Yo}@I3GX9c?49QF(@PU=xO34p8at(2iKHOW3+-P6I~vQtt8kB;zk}>n75$N z4|Jf8c5Dqg^Ftv{#~u;$OFYKU7y2+PM`14S%mYS5iqEvV^jO{qXSzZ-(;C3|WV}p2 zC+sc#K7M#WByj1NmSyB4<vuzGti678N+}8-l>`19NIb1@4rGq49>QBMWoJWTONnu= z;rbw=P}u&~Z~lh%#yD}#aBOfCz;rgD{=^f%s*Rcxt9x*M6#eNpk6!<C&;1m_ycnjd zgAh9IfJKJA9+imk(uBr8x=owfbgqN%%}tG(CdO-VKXCtj^wPPTty?zfmA~ev9-pM2 zxFT|&%!@PAfZf^~r-GpzHaMUB)<5+?rtqy&Q(xRCUx^z!@7;xU{(Oh!Cl;51h>tqM zho-?xhejLF3myys7yIR4!7sgn1R0ir2<CfCEe<^yo<0Qdp&s~(58>bzheOr?3>5tg z-q;>E0so1uA1hLv0;D*wHV0UrDXSAXmGVSrsISF|rdWnayE509Loux7wA}&8l!XmD z{cl^1#V3UZam=4E9)<GR&weJ1%KSpWb$IcWBPYuJZ%Z$uCEQF^d}mre*$ykIAc>>B zbP6+O#0hjK*m?g)AUyG4nLwwjz>jeKYT(%GphmGWR-s4%2>?fA3@2FDs&Kp#k1M87 zeUzStS9ml{6tKP{E)@+Y+$oUFU-yzQvBYOQfw0y(#E9s{)n4?{JW%u-Jc{qq>heHR zii1dWNbcv2LEu*AjZl|5<15q1q$P94uVnr)aL{t&xhT~58HJ?YQXKerIl%T}`#|DT z5{^I`>TTjYio&(OX(}lQV-t*Zu2Du|@s&URo0#!1UwFs+MJZp~xA=JCzb!T&&iDBI z8r~=2N#V$m-xN;%vpX|5S-e;jLAo<=%NdX9;LU1+JFbJtcI@pKo?OJieC|ryUcl!U zRATF%i@-9ZCL*W?79Qq+<}gpdW!i2IWEsm@F%AWMNjk8v1FLgocn0^n;A|^8nnJm} zm&!>M1b(nyOy^g+#(1?YCaGb<O6RUbIQDd=kq6Fg(9yh9%6%Xp=jV;)vEqUV(vhz8 zQBhT}GtVXYy!a-fOLfDeOki5#?TeVg*Syhe#;UDHzvyB_EL+B0*KCkCn!uJgVI(xs zA`iix=*$C?#yn6ZC2AJ{uFt8?TSXhKk4g$F#ewU}0m_zDC(#+ZFUa}rgr{G*{dZ!x z=HuS3{?`}MS5M`}gj~si8xyY+#jD3foE+Rsn~TZlW$u+gVtE57_eo@Dr^_$zUDDM` z6#P7yx3Mw{JDD@&vwLtV?vxYob6AbFbwe&j1sOQh&?yV;^<z&&Zg9Ux9%wBtxWf^l zl5h!+yL;p2Ho-m2bJ&A{RZdv7R8fMx5}070orTiE{tX^W!5M~3>`Nj2mg*(>72HK) zC;4V$<yUb&aBzkd&%;U!6bg?G;i@gVoJ^Wl;fHtTEgQ5*4`)0=A#uM46cF}!<mI@% zFL}^ATo|D}D8!wE`#oqvW!|_ck$L0(5ax~de&j+KE@D29E46qRbT08RXGZv}DiH4d zi1H%7&1fRm@xySe_q<nTa&k(|qFmfT#}$8!gE$=hS{y%1?PMJ+NTK{Ja3BzPlo?6y z1F?KuO$DXUVjN~4V}qo#2BIHp{1Dg2PnHfJXAP2TdXtv#7^lIK#qZ;P(%xAHOn;8< z1F2$Xoe-3b8#VFk&OOl;b;MtU`H3TpJ9igxU=cdP**mYVDFX#7VdqV@)l`;9wOiv5 zh9RBJjrp>*$*q=h9*$0Fae?qJprC0Yeoc9{G*r=i7?QyWxh#ha>{;R6C3G$i#Ag!q z-jBe?^2YG3js9L1muJEo>neavO3@4wo-A+Gnm5CDPvV!C73m*S#59o};UCrUg0+hm zFGGQ3V#)X<_7@eYdG|ucMO|*rjgC|@RE|5bh=YqhoN_@5qFIVf2GXS|^!;6u6_4po z8WtF#zZb>@w4CD$v_m}gbUzB?s~>j~|D@p=){onJPZUPU11Cg_4^M=^pRdXCPTDK{ z1ELB29C}DQq#GtAKnUVimiTEiJo8rsBZ}u*{)TGd`5jM#Fw&ueUkv{OxJ9$VA3-?k zU<Zl;*BpT`4inP$BrNJIB~gf_C`NH0B^1J@RETW?T7`3%Vn>HCg$HCA&c|n3NS`qC z^YMdVSM*2}-e8IIensT3IdY<Ukth<HU3i78UsCL$Q`pkP#Jri~4t3_aXV~on!7Kc+ zcOwtxEFQ5AyOLjNXcpt1h*{8QJaqi!c}48i)AXZzP}GO!p)}nEPg9c*XPk_C8cT`C zrnv)N>!*%HieY-9_@Aat%X7qMTyt@7j;<IFm)`n$O9p59nGfcTHeHPyba`|JO=jHt zVk^EFJ!zAcngY4JD{uz4@2h?C9-MM4Tc-lyMq8`rS(s}Z9v%T%EIlqM#)xl0my$Cc zuLxZM1d)?JT86<lAH*dr-o?N*V1U7QxE1~c2Fx;aB^%(YA93K!Utb(33>*4eI0G1- zeOtj;+7sa$4#NcRiWcB12=AJIA2(SXga<BR{^>{BakPTyVtGbXi<{x#G$?*zp7bz! z>Op{Wai0c`O#{Lbk1oUyU!rinasMl$qKioz;Bi4>{ejOm>$fi@68xxD*Z?L(?P+lL zwCJNy;!((SVHqx6Lqmf;2L=Xk^m&E8+fPU{jtuYE7{PV6Mc8A(i>YkV+VJhkO?~Ux z!EW)b_T-+EOxy>}``7z%QIu_F<TvB^q$v>=@M=yg0Qky%ApN-0f(nC<`KZAD25$7@ z-Usc^!;5zRiV`dcz>R9(eq}~@od&MYz!BjBlU9b@u^szBaQ6lUKPR-QFt`t-9Q!eb zK%WAhLX>ct!FXrJ$T;o;ftknPjMLo*GK2d-cqh8+wX;EUAIQ0$1^MZbd6>XxQiG`t zCn|pNcHCWpV@Y}ju^NyQ`mEf@LpA8r^$t#{Ig0PBcNHZ$s*HLEyu2YzWkuQ8+u`my zL4QPri0%X7eISL|*eiqkKoF^=m3gbco{~iSK$y2t<ZS|Xop3J;^K5yujuX>!CC=(} zHcVvoSiHhI&rP(<D{s8a!o4(wh50zyp-TM-x43M6>q_EF;ifonH5}me2y`5U%%KyL z$i*m-)7S^m-`B6#wep(UmAYvqi3!{x{#SqXZS>ye^-5Y+bRJ{U&`_uLUG}odaDM@J zn6tOVy%hDBu;(f--tPCEzxl3A;HVSsWFN=Iy+<B-SOx|MASifO1$v^$#DxnN^se%) zTeqlUYH4ZK#%2w1WvW&}$O{Uu1=we3Ht6Z;m2w=p!k*sQv*#gvr_l?|#0`oE!$x~0 z^jF4s?I1|@x*R8*VY=shvO4COFco}3{s}WU=Myj$001Y%ono26$bcg~_RzJDZuo#H z90C*|rNJi!GleSuj5bmbz!-*DQG9MlBAq$(_Gv1kfM=TL0H?x=VD2MIhl+wYKrk8s zGaTIQDd9WI*21}c9hRmbKtPAIT$-FhV;GkQ2gj$EHwUA_b;^vXVBQD^Uoo0t_^WkP zVCm`5+;BO#O4?i=ZUfEBbDc4RrJgAcd|VvhdPjC*=;CD&?gN3CK<isXYrX`*dbzVp z8XGt0IZ^7jW~yO|z!4~$H*b=+-+osbHq^_|&=8I+IpPF1lmM5%p2CqJ+}Zs*zw?`N z==IliXZIie;qU8R>fFG`<4l;izkxy-gHn3^^*7~#`|s7X@t$@z;D7%g{#+h-;8W7l z(yVYx`<h7vf)g-YLX4f$*j+w7J)??(w&nl%!>8m6pZ~Pxoyw0p=08bpy)ue<T;USI z0wj7thN-i6Dj&W(Fk|)*oJw&4;(r6QcyO|B#>@0tn)MyX?%RtuhQLa=jkcm_tk3R? z596Ia39vu)2@n+>@BXJFk>ocdveMroT<NnaBy6BT;_cfKWqDeaNXj$Cf$P8lE<!PL zc6<vAM<89pgR;P*8!&7>kM~*(t!W!x%W<M_*REai#V<Z8M~@!EK9US+Z$B$VFa>d! z`ozS9!uRairS|1J@4Q1^dg*2D=5g~N?;W3-n$o+`ckkY%yVXUy<?g%gkXvrKS%>z| zKKq<(+}NT+`z+j}el^aN4SS9+zw(-JBOw*V+wUC4xmTZ(W7s9nqgzaQd{Raq%<H=4 z8Zce2c4Y`w0-B@f*qLDd*so_1bBQhQ5$BT_T1ntfT6n<mi5G?gjH{Fs&V3*OO@`#? zlk^;YhI8>)nzR$+l0Y9F8F6&voIRN)(usZ(mu>|-Kym3beAZd_&a|atbmj6uDB#Eg zd9e(?5FP|&9yJbpry-n6f>TI-9+=0ZE})gvKZ!?teT)B25-bHyap1ahK--HpUTay= zC_@E80XvBeW{X$?SpY$zXP@91brdTr9ZghU`O25jvybQwb7Jh+z8${|tD;EmyYD`j zj^<SXuwigS^6<kC5moNL|5I|$J$I|J;XVc)DZ+yd*<eYN_TiS679HZ#Oh)@Kol-Ul zppeyntU>bm%a49ehh$7gQ)46I&J`+@t5r^`$NbTK6LUVEuG<GPiL<BD14Y0I?7}=u zK;wH7dn=fC{?YzlfHSKiSR*@x{UO6sSdI(5%>5yAI5&$LfO{@z)?zu(B$S4I6;hm| z%U`E4VGiq!`Y$a~n&x6+dJf0Ja9J*wx>6Z2eSo9P+%jQzN&)NH^8e4?n?UJxT=$)~ z_kG_RXaJ3UB?uDSDNzfx(v)P`k!43?#flt{oylhB#3wVEBtAJO$z-fEwoe=<<75&i zj-4aPvK4Knc8Q|66C?l<#11roMmM_A`@YWqck9*H@B8pI77{cm9u&~ud+%1&t-7_` zTid<09PR_@AJg3;y1PTGSz^{KU6r}{lZmMr-@GO)0>2485Y_m^B(p{))WKW{v?27M zInu@wCC79n7TpdPhkg+RTtQo^BfjW?KpV?v8QNSAq}(^Mx%(s1hWU1Apgrc&wyZsq zl{T)|Tkci~yv<4=aPKhSQt!-5ovu}uu+YDCt!>t<8Nsy9qc_#od0<y0j0@`CZL@Kx ze|yJ;(bL(lrbUj%H;!=ZbHw-Z@^XLYhtVG{7f+lOl%!@KbnVyTpf{~$kMJN*6{&o@ z7QAm{oa>_%P5EMNc2mY-&w$IJ%5}*FCyA<cvdRU4=r7f5qf9y@<=Q;{nf)dPFViz( z`14xp-@GR1M8KT6Jc?2LlI&AeRU*ubWyMz~rIr!!K_{YGo7HTxu@Q|91y#s&mvmj{ zLhw1wGJ$&=(TOVXtZQ4gNB1I#5E5eRSnt&-EcP3!wPJ}L2<?*kDn<KIu0}#H(59yZ zUWEwcuKF}>OA1;pIB8>X*zY<?XsA?P94^{sbl?C10&UeYrbwQ6+A?_!v{hAxyH1F= zkV~6rhMrsQRtdb_OTcF!Y&7O^J_BKDPiLsqsSy5FT$**|L6CS8*9B1~Nake)Rq{qS z+)A9)!xApw%?=ZB;Qv}&ZpTlj@p^H;mi$~RPB!&dhNeVe!sQau8`efWkT5=mnZxJ0 z)~qORc=!aqe@AT=Lhvy2=#(BvmJ<$ewMtiln?=%&8Anq?T2~_Y0<W)4>w&DmIR)0% zSmt>nKhVgmpj4;hwsxZj5~!waBG{mTdp`m+o3{13(<I`EWkFuoNDn0Kz(L)2w%r`s z(ztKE-ztH(YYAM9C%OQE@M|+sx@LYC6G&u(0<9i4VpxfD{b6I=*ZYiVr}5;2rTyQ^ z?=V%$p3(cX%x(mB9CFMph4@YDh;3SMGAm&@XhO?QekzGTVy@_opfACZVBnMs@z9eX z&dlsWW+nq19O!9a?qi;%F8zb~v$sLo^O6earZ^tK8O<>JLFZypaL=6Z;E(1yr^0$h z!jVDfB79o|w-jP2I6rN}<AH{lc9oW4Icn=PfSVE#GV%`{PJ<+695`Kzwpr1}a-g!} zcp}ZAgm3-cDuK6W3D9qF^g;gexr_kG=XotyL>U=VJ|=uUeleYV@$m!4YJM^9jXYzX zVjOTs*v(8Q;{U67Qome5JCL~#BphSq&I}m*CEbk?1dW!m#5@~oHQUtk(|~j$qM!g? zCtZnJT`fB(c(@Nl%RCY!+?j!{#L%ej%#c!|FaHQ$F4HD$x*KCycV<k9!2_o(*_&u@ zuGWdVndCl@um?gz>}aX-`!$Bfw5OrvBErMq*L76cnZ9NFoyX>^PI#F`XuHLJ<B?Kp zuV0pa$dvC-FhC)%&{iOOUN4=D_kM)^oo!v^*4cy}NTe+s)#W~r`kHdriD6blULtMW z2XX~%GGT%)%ZT!c@QSo?A4pqMwF}R`in_g(#;p=~GfRMh)@pn)BS086t`=yu%sWGp zXN(sZLBPX1@aV^8C@y~IzVl5O{A1ks1Qz|$@rm<VTs|BT7Snt!c;D<elo5<r#U&TS zI}DP)C_I4DAP5`6uhe^h!^{Johyzp}UNa1~S12pT<8>95w*1hAfWU>(^Wkx52M!JK z$O(3JNFxibaD+!_p^q-!t#Ft_;a-uDCnqAoMM|zyf`u&+hcJkAbFHk?yiyn*E9#(x zcAJEE+EO$_fE>6GU?Hy*YJl^iY=-=6e~=`yT<&+4=dF)hCGeA10^Z+4=ei>E>ZZZb znX#PeM%^;K;_AJDJ_W-a7#Q$B5@G`~{Y2AzSeHcskA5*j9N|U5kfXlfiT=4yF1v~_ z*wgEEC=Ze*r@qic#|;e)yKV@1BQHOZF2m$v?h`sv@D<7;`=$<K_}pjW!2=x0A3^|7 z_)X&ACtwmI0jBsa-dUb1=S-;ZLXIeZT*gnItF&DYcSU%hijawuAo53&e~+jXJU@7N zk|Euga3=lWnaWUzolRMU-Fn_Cfwx}?(3e)YMK*mIMZyW`Vw^g4S|@21thTX12JO~m zhm1Wd2RbP&^8fsw|H%6jM{}`wT2)o0D`GF}lux-m{`iml(k8CGE!28>nU3M2_pxo; zHv9bNzi55^{kE~YTcf%~Khle^;pi^MF<}np&Ykn?Zujlm=f`a^mjZ*2j3XyItA4^P zC<uhckynqp`IMHHChP6()0MpKE&$P6dDlblxMAF@CVG=R64rJd*bw01kH8YifzOF{ zU&B-ZPzE@jFiGIcDR>OvaN){?hmm?2hCzb7G(^WgAf$oCv}0M54hXW~4h%mL&KG%c zrx*4+u(1W6A{p`FiOUKPEJXt!WJTi?cf`r1jXaXjm9&L8A%4(hfi|a65du8W;duQ% zl@RCF@2wJeyO)6XZ8||7ms!F()!*k+c8+9@X>>j*(;ij2mUhMEN5HZJBYG4Fzwr4# zvx}Nhw6(SQUE`zDP-i&-7&;gC+<liFIPj9aaNtGz-QW3~bxGqLVS??fk&zK;qyG;Z z*7Ml0<F-wj?PU@`B|0LE?#Cbe!GEyZZ{KU5{`CKnVOlGByY?IOBX|%_8#ivSqeqW> z-tN@h>|gleUq})1BX<7Wd7qiQ742bNi$W?H;W#NB3TA6KOoP-_>4>#BGP)IMIA+<= zl|VlPridWmm~Tmu&d{POA>)2=pCIUg=-h09?)?y)>u6!-zC0#8IvDMGAQMxvd8M>j z`YF*KNYtU2m<)H61i>%xvhD+sZ5{MF*sv#kU+!uSr?SqDE^0HK<s%(2*5)<&#NWds zUE~67TI^E%ahaoE(gjm`RXi<&`JE=&v=P3vIH656LmRhm0+-1|VXSZ+m-PP5BI{_n z4}{~)6K>Bd&{pcSVV?^cmC0M~Rtda~O90*w2a365W(3H{<b*ZKK2=M7gT2~w)|pXu z;MF_Ij-A_GkK(dSm|*XUnFm5)&6-X>h2tYWaS4RP;^KmB5(5uw;O61#8|v*n?|HXt ztPdz&mu4Az_Uv}!jNkh9cVv2`-L`L+K7r2S$Js}GX6JGBuNa=^cfRv|Tdx@w_P(BZ z=6Sb&b@=cr`mS==>R8?!pVdo#B|p$rA>E5QS<{7q`><Ji2<S?nSA(V7s0V`8-3sY8 zAe@1RQ&M5i0V9OyN+5XHlt&h^=3i44;I(=d6<|3wz^kNzh)_l!WO)gLg8`0C3h7qM zKk87BElxtAyTJy2ZKZ@-BG?OcM@Y~QS+alfL7mP*PhR1L+BzD;$uRB<2@IR%FHUWd zr()Z&HdxH1ow0AyQcs?WtzH*Su`DaFXee+4i=iyiv=vC%Qh1b59W-WW)3J8S0@~yc zZINd5XP}ufzvXU~z}vk9f&j@+Wk!JPSi8=8&YZCeW0TfYT`PuB?VFU*R7L*ix_M4a z_~$<H3GYy|vok)L#P}f=Zy$W{L3LnVR-{hOy#{nRG|yR{s+XDSyEP-(y?eLcbHL~s zQzq<-U>*g<Llg(m5U;GPa&y+0y^fMFK3B_EE<A=O4?p$D2jyMhOJWE)^0H~uMxP}S zjxaHNE}pmIH{)PN>t$l7X?+j!iZIcCTicPX6A|H^ZB1Du5f;C;)&?J6N6!dvZmKh_ z{AC<0l$l6lLydGnYOa9S%BpOAZB+)&3&snpq`+BIm7d`yC#59N?%T6+cM05o-Z#;8 zN=v#dq=$<%L)_+d*?JuaJZQ+(_lPvKLmPrCg$Ei|rL8_cZJv=^KetNYZC(Nl%=pXa zToWCS7TJNS*1iPhLTV%w2p%>`W5oDeK|_aR$)YIHGA}L;jAG}`9d43@kc>8Q(FBQq zBtPsq@P~_9=4s7z;L$8R8sj&^v5bQauILaR2n<Zg<9^bFhv!*8)GvA<Q!={|nJj+j zTrkRKc_}hXp4{e#KEtH0n??9gyU@;&UuGcF)AK8LW(W=pKV~I<yqEC$<G3#R9<$O9 zLFdB-u;A!{khbfGWb{DTe+b&~3?jH&#M4!Ho@kKID>LKLjL(Gwm`-R=P<Lh0P^V!} zX?cmfMCUYIg|>0w@ue%pjWlDH9_{orobrK&**R#FR7x_1sd?ae9bs;{TP5%|Dgm0b z?;qx&Dbow+NSOGDW<ElPyn1hlLW!`UZ|P0{<LDina5nejJ>}A2BGXZC&V)$&J9l(k zs}qumcpWdEFNO1Tg*W|->0Sq#znUN_ysOtj$Od%*bH6mC`#^}GKStFVJrL<c;P6Ax zG|8@2rIu#6_d}n~*!|87=}Oe02Qs2NGvooo_ZfrqKw5Mk$nfa2?=xhUbF@#;Dm{=9 z>3d8_=(y>4@mh2xI$El2d}7u{Cv;7$m@ZWaKH!rIJ2Z-Is{ki&=!dYJc1gM{?6J_6 zsH^toFfi$tE=#N*W*Ct+bXjmtn`lPIg{3&)+TsW_h?csVKwD4$l<qVM%8m$(#+qVV z->$n(a%d|PZKMrt<0;xoMH@OU2$);$Rtdb_OMpJ-{V@-r837WRC}DV4_stsB0mn8L zXX)J@kvec>#O?rmK!d->PvTbKFagDh9;xR_n7|}bUjCZ)cg_P8hLRUsZtUy(j%nmR zuP^o+AIh0!EOU~B15+`pI5wJLq8?9Sybh@^)^zwz>Xk6)HxQn>VH8hT{t!A*4+N;g z^+OrCeg#>G;RRQ4UoL{7I~+d`4=$w<;a~!;e;GXx$CJPn&h<11uYYXKYdgd92cF=- zEub7Xta)3^rA>aGE^vj3Q}2)`r7gIU2s8^7{(L(eyq+hXiY^bwMV=fUXoF_o!^@`! zLgsF{TP5%|DuLMc^O2MhAo)DAVCqE0x^ugzTpNq(Krn;YnX|%O@ew-w72sQd>nedF z-G#EGTlyI57P1_u{eY`Em|m<Gn00W}0fK=_^EZ9Nrh{_<3L{OvR~}&S2mzEt01BL6 zM;IgMQ_0J%z=^__|9Rf<4{ild0#M)(KHzs~K$wXU(+g<>4w>>~^_7ONq`5*Hf&u5@ zR30&229MI?ShJUj<IY5IffgtMLjvdZmb+B~Z{reRkaf)&NEYMqj=s`C+)vZ_{-<BD z;u`H)XcSkfHQ<#__S#F2j_jRS$t`O+VTpBgEe#ZE%^l~XQclw3gJ~V5Q0wwp;nFbC zv6QT{JM$%t1V$WSFk42Ggj<0TPGl<G0Ml_%4;Nut+R?!PKVU#O9Z4mhjxSky35y#m zW$1`*@JC7N@IbKhR90DLV@J<fVJk;nSJ++_N`+^SXQi^0izExcqhL`ey^BUg_7S)~ z_{POB;6O+OIKqZ<3gP2@AmPr85RrHxZOTre<LZv!ENeMF;Gwoj$@kA<UR4DdcLfdZ z6Y(b*jXEy!14qnvpe=;Sq#0>TQYWnENpP|mXhiVpn|7wB)8p|HxR-07O|PrFRjOw7 z2)BH0mB3rO1d?u$H<LaCaRH&;gHj+<_NWIDV=Rh^(Jx;8ACKF@q^#X3>@o}IjyZ<9 z@h3PdblkF3*QhQ|E?C)?2CLlMYO|NdZ2Dlo3zX6gbym5p&E~cKJ@wK>*&LUSL6<J8 z+R<(cvdc7e;G!+dFkf+7rB&_ev_-ACPaf#C<=I6mYOb)V+d6GY8@!V*T(Bh>4lHgJ zOyQO#FeVRNu*Gqm5^EG}uVCVklP~t#;;`1{8+5Ps-Zc_jDwl)3wlJW3x^*u_)jq)_ zw5ASUwE4bCE7Z}?s(qbSR8eY^uUxc+UR^M*J1(Y*C6r!g`B3Pj4`W-@CT>kzjTP5P zmm!Y;fi-hXcYGr3ACNTb`?Y=_h;$_chbi(G?#!t2qrB*cu-XH&#b99613{mJ(@zc; z9uu7f(gT^69>|o+6Cr{<s!DBq1D}-@#BsF^_61l5V-G~<!fkGLPWG^7wFw_=UXia> z!O;U5(_P~cPT99K=$;U07@zV@dtl&dOzs28r45tw=$njBhI`<hHl60HDAk^cj@nL2 z&xEW;+DePcRZ6NS-5(P7K-e5F^J`^An+_CkuRAnQmK8GY81+ELeIF;#hUt0qMnVUm z72k5VO5kl+0yJ|uj<T1_N_IY%(M0E3+6x!NjP<WWdKV4S%|MvIm>8=Ts3ZU7+y#4a ze%hLJyq0?xoRNtkg^^z9PON$3;@UIOVN58D@eV_vgR+Kweqz%8{?5JjvA_Qd>W@0M zt0l5h&2SdA89XyO;rNSnCqo%939*@x@c^qRvoakGWwtUiJnp0aA{}8ZudnuX`kA3I z7Y0R|VU+7=DYJuVU}6eInmIX4>CX&}Iu2$I6^+5HIpLUjFvF;5N?=N3iA%0DD=Jqw z7}d;(OreN57N~HE%WPy?;R;k{BRUHGkN(B)T5sQFs}xOaLcb=b@<LFTXgJ@aa{rb2 z4YsqO3b}HHqueXCyx3GLr8@$6wG~O1q12giQ*DVeeDcl=p{i2lEgHG3X->?X`a)Nt zrm9Tgi=AoDKywycx)R!mF3}pM!-WU@MbhEGP+?(#mfBPf)N$0&s1bb0btp&|!4mX9 zNWZZ*Tm%K2Ho=KKW-g7QL4_>h!-LaVkkp{fZf{<ZHqlF*#v0M4y3Npr{zgJWnzm{g ziUi)(TI#3FLSA(biD=@KS-qZIIu+rSYG<w=0&SMirVNzpIQcC-kSm(tTLwUTqKSky zlr*9n%^eMmHuy$38Z*tCG{`II#I*G7-ui}bWvNjl@jOeZaBoBw!5MfzW3dwJtP4l$ zqdbUdh6|;XnVz2W(k7RJmF@~Zc<_+jfB(JCU}8Y>zMzvRa~f%mjLz9?a%7WU&hbYs z{h8G9$U2>Xp<p=H3FDlT)^dA$jkMLL{Boa$`f}^n$bJ2WdbiZNG%{nAt@TzQM(a*- z5e8K{tH0s|6XVZ?!O$ypKSkQH1d$7)5-OWlj_wkk`l^slL#~U0Bn_`f={H0;!YbFr zaFqy4&1|MM8`6D6&fIdt-pKc|M*CyT6q>>@+1$7^bA$$ZGHW_l?)@N~Zw||^Ggl8p z5vZs3oVzi6$x!gtW|eDf)WSnp1OxYeG&hoBa1maw@@PnxlfqN~wNlQk)14q0r@Z*g zrJ~%bbM-(Z1d5AGrOT3i;|Rh*RcPJoq{~7>#Oa$E60@hy_Ne26XAodcTdVX#R<i0H z5<%P1T9*Q&e3;Otfk1N}n(OOCn{+`kE}<>+{a5`G$jqb)t%2(VkTax=Z+P)AdX0Y6 zvpbbfs)$yKH&qTEjx=z&@Bj_Jo{bO=oV*30?j9kk;(OYpn~O_ncrq!!Ouk8h@Q!|k z$$A8bufVeKdU|RkNm`L9M!Xr~J+mYdoa2c3$pH1@=|@1$6QXgcFsUpn55YT@iKmg| zi~P8^z9X8jL>`cN_F`Do9e#w%sz>=}=t}1!BBXE=9HDafOyYO~A%B@)@+96vn1~{x zjo-e6MF6z0pLza(?jUdQ>B`vHxNDUYf#`%OmXLV%<q`YBZ~uyx2d2d^>g@R!4$JP< zh|c2A*q+<Adgy1LJ?s|`RciLIWlOj0U0t?OX`zGT{P_X<@P{_obI%>I_wVYqT@OF# z426tP7!*uaA%IcwXegm52^gtW!*C~m{(Cri6EX?nFprXnogFS>AZ`qoFK&c+LS#XJ z3``Lfe@V+Hg_@DfiN>~bvv#aOBUOc2N^pAuui=N$K5O>QElD%Sc{bz?qviTo&sP$L z(K{pR@d*ha1%yh%mrEeCd^9dIBR<nq8qidx5j}T;fCm8(!iSjyakyh6qwk^cKD|{M z*>E(-(Sk2=9SU?oC?67L|DZyH1#mFPh#A7WLNf}E7|&>C=kSCEW>%1O>Wub-$h;iI z-`$P|ykxa#OTeB+nU<c&*Myd;5PIOcf;OcSXyeFn(D#_q0BJ#WNSh%%vu0*e8QK(s zbkKbP{-!xHj#D1VC!IW9UViFMG&mhd*yKG#3ct>r(tzYWgPPR`@XGnkq^WlYQeo~? zA`~(0lXOxUA%y3Turas-$FyTUL*)fJBHG9cV*e$nm3*X9QG^JONld8!mDW{RsT#+; z+CT}{bmq7;UiXTTlW>a~C>N=n#{6WW=Y-3^(=Rz;{4)h(zm>h)=>hT0{voSb-|j0f zpqLjQWwoPB1G2HReO9}n!!Z**BY0KT3!-aL*GQM82Q~_mMOP}#fFuP-zh>2shYUXn z@e3NfvJw<sDyj}t(Et??(;g$ToJ-{vYe^zrK}#e?{{`xl%TsD8>X1#1^|ovGcA2P{ zw`yq`x3xCQ7~zm1baw69YMVE&v+nM7Ha@0h9yP?KrUnV9N-+=CmKPm2O9q33Bi4EE zu8_Id2$fz|A!Kr`M&oTY=`apYlad4!$eUM=*A+NpxQIVS&r_HlHy^%yFz~31inLe5 z9!Pp~I47y={uJ5p3M*7S*i8OtWP4gme*>-u5;6w!Y|(y0smeO&O02*ewU<(*<tOg_ zNO+7h+gdHx)Yp_r4`f=*l%*<W4B<Wy^guGY5`qgXK@{%H7?rNX%AFZvvgm;{BcNt% zOp1O8G3WpvaP&Zi$1sT!@&r}wO}c_sf@Lu3fe1$0U9FXNexT5P;|mK~KGl+`qMX+K z?Z5Z4%eHr;C3m2J0U5h&4Ydhv(q$o!qyQY+>U3Z3WzpvQJMu`=HawQ-xCl<X@)FV3 zTqHdf(dPHPGrI{oF72X$Wvn;DIpbBradZeHn(P}C)2wlZQdS$3bIDs20u#N1R;HO$ z-;*!fyy$7UbBj%!8?ZUub+Rx%Ze1U|Tc<3`Z2VlGRccmRlA0ZYV^PAM!^!J%?*ITm z07*naR3cY0V-*$!EVrz4C^I8tK8Ru!VP<&Lsx>1XIeFfu`bMm6|8}h|6x*c($2^Vd zcw?l;SJ{fO_C0;nYBsc4&Dvn@U{166IW1?GOV_Aav(_c;cXH@u{Om=$@Qr6}<6nQD zRuXEAa3yNb7k>DHjUT;WMaqAH_E#6iC#`04yUmYHS*cbW*1U7CGvdKRr-Vx@Dq6B8 z|FxUfI{om!u~WTv`S}x8xvtepw0vHn)sRJ9^*!A`EJj~pMN)oV)IiFXwaTKs)?zJ< zmPlBQoxEf<8#|oF@sk&<O!;cPbGyx|97gnAw`r|SUL3MZKX}o~TIwVOW~`#E!TNuA z$U5G8hc#^LvR?U(95`i7_inR+?;o+wkKJQ!s;hw)PuS3b<I1aakRIA=!-r1V__01~ z*uTX}Yb&g>y-8)=WOLeAJpb6!Rx4bbnjJZM-fFjWsqUrEbo7jeD{ro~kyp=oolf^& zwo<L))NO3H@iP}~c5qDemH8?V0(3?KZf<DOw*1lu9bX*ACsi)fKX4v7o_l3V1O`tg z8NtO-0N=PpRq$=v)PCxz7p+sv3<!)GEl&)~6#9h=eRk;ZaT!Fs<c9Ue)hK&<dZn0H z?t)`X!enY{T50UCty?##5iHs($IjT1$6v6vpL$3e)8SNC%#SCS{(<`_8wiJ4?J-PU z9yRtjDz(%?LAiAHp-@5(f%Q!^cQL+bL1^MUExm?OoWctp{5+vdn1Gv41y=l3^XM_e zBvn~sty+iIzJ<7q<4wF?$3uei8Vt+pE0sU04HzBHOV0g5cAyh|3>-|{!zN{sDW3!$ zN)lWOuQ1Grd_WqadzlIBgAZ`Qd~x7$xQD0Q9V-7&&Xl7I7QsW<6kL8DS5XKLqt}Ga zbPKNMmCFf%#k9cX`Gn>KKdF(|d~gq+4BW|AD5GrJNZ;Xlfw9Cm0nWe+e^R-5E|z^h zjHG|*g%dV*yw3_GpbNO$zOlw8&kk6*t{@&0<DBWcU|o;C%SKN0Nl?sMRlAfn&-aUg zYIY^&QYo`9rLrm3`>m&}cI#U8A5~&or=9xz<6_VnD9Ui@(!xnGoleCQ-o|Pxm(t{= zCth}8RI#SsN@cZTW?)oIblMuXR;XPRS-<=jHJdGMUgIO<Wlm1&Fhd#3i)v>@#k2P6 zzk9*T)~;8@EjlwS)pB;REO%GPQa5dD<mD5#*muY-f4{(*-}fP#*8pJjxu>i|>6Ns1 zi<uYM_$#k!FH-xWoolS^J^St4m%m|c_iwP??;N#-87+&7aqjqEKcdn7u=3bv742(m z<kTgr-?_;KpFL<N|Lk#FQoc)cu~>O~n^kr(!Y{DlmwQ~07M7Mv&@|ZA&pcw&mj?7V zXk$kXT1jJz)oy||9ke<5vW`cNTE(V2#e+0RVdj6PR|h)!?eY(vXT)vI55ChT&t0-3 zzyEnFRr!`_Ab0LBzN@4bZR5{>z@`Sqtgc(arc|bSbok`tpM2f=AAeRtr_nlp>R!A2 z+;Q9W8$V?|Uwhp8|MCY`wYkeSee!+UMwqta|LJSiaMw=T`M=#`0|yS-{P=`jc;S!^ z3&|owfzrNruLSm}4hqd%tpvls55BK~Pnk8}cbAQxxTv~1s=9AgTGiIHr`yI)pRmg> z9<{pdo2_}DCI&hv!=Cekrv3HXx^3jxIU75D(HeKC?$qFEhtc^GR{X$&O~$LaaxG(h z?W<4Ng}yN@b-*7rYMfityDD7`?XkxWNyC|AuR6a{i4|2b05*a(n&TwPS&bZS+jGvI ze)=W*+Tru|iLX3k%kO)@1<0!D(n*s%pZ?}E*7xnhR=uUwrZ0|I$Gi4emqry~TD(G7 zz!jK>zo)!n0nk}_kKbfE^Byxp7%`8C&!2D&2+VN`>DesO$YW5)ZHrDW+OjryZ=Rzd zuHuxX?5ri>Q+dTdKv&8JSagA^gf@9VQ;48I;PFowJq(_RNmvl*({TajFXdvoE1|<% zI&Fdj1+S-@#0M5hKxQ!$MR0g_RuCphW+&|UlQ8~>hzKnjJW}xR)I9Bkwh%4+dT>x@ z&?j(@_4<EY=!q!y@UG@68gxo*BaFJs#twehM!x;D)!lKIHFWRR2}zw^teLRE@BNV% zWO-AYO&;#i(fb-P(6zQ8E8B%-lVYAVR@I<cVaZw113|sk*sVh*^HXA|-8MZa9AEpA zm9K5LnL(XaJUFe<vqrQU42~Xs%BEkQv{Ef!m*}v<O#fzI>S?{ZO$<!<3v@6={e4Mx z@oag*`o8sbTl?{cHA*hgC1IM?PCjR~JGP3s_SkgaC7bJ?)5%9IvuY+=R5opEKK7{1 zT)JTA|KdMd-JUJh@y<#smSu#A(}!&0;H#QBsjnAISV^sB0}_PuZI|u*pP#nI+na51 zs$a7aEnOb}v4p`TwUarUIdjD7Bz%@<2CTN_ob`Y2S*z?`V+|X&T46ay_jPQ$RI~KW znw1V;Qd-Sc-q~d{=bqGx%b*6pI!v=ob-mng1#=p$SBUQQvg@arP+`fdwp=(bVP2-? zTAhBZsI`Xew`&PXr&(tYDP3Wo?y*ws8CL29Wwj2C(17MHK4F#hniXj#JUu=vfp*zi zc24-Ls=Vs5P6f_b>mJQ|PdsK#TMMnaMW%BaMr``b4>il1v$i`%HG>(psk2XLmfUNF zHMQckOPcBE;L*~o)pl&P${Go_nNfXTver8!<QKIpR(;M&*J@R$RkNmY)xA!v%w0IF z6^aFG-lBsdC8um*@FWb|ClIB=TezTsNbj?v@qXofz5cS@71APfT@~0Wj`mhpS7|l% znkMTb(?JDiM7VpGPC^0Hf1ZwsAAL8gAbNTR?a3dXux@Rl?`*5n2t-55Yq*%FGv9gM zE`0R`yW^jJ(q|r=mWm^`p%drr^5N6gx^Ii7v(r}F)#@Xrv7UZ4{4$>cB5fNrRqcOK zQ)q3l)@Ta7pta76&%SDHipNr2&-V}bdSq=^o6Sy4S@ZVw8o~71z`>KkqpMZ-@9@)E zQTU{@9>>g!m$iR%Y1Yo`Zf=;}&2g*ONd~{tVnoj$ZdoSI!%G-h!*SuCF-tt70L{SN zU-c#cc!1+v+<1Kou7($8AV5O^eq-8He~jlblRN=;mpl>7#L2)D?|?tx^%;g<Lm1Ky zc>=#HM#{tU3IJHp>~Kt1&;}Gl3L9zD7GXj`Xsc=3f(Q6>X!8<`#3Y%1osVP3PAY55 zGV0mwGkRu+*oDKms4qpzf+hCiip!O5U5U+Kdd?d6KVY37{_7ekPHGf8rjv>5tZwfk zT3ON3ikQdzs2FPdFKCokCdM81APaOz0fx6YGodA%IWgj9g}Y=G8(5duG3u!aD{h#w zhQ0TwoYa1`oLyX5>&rb$VnQts)rxtFfy%0Off#Q=VRrvrk{@v>`+23=bnk~Wnw^&r zYq6SLm6{3l`BGQSj(0obUYZ%x5{VA*R5nPsRq8l=qg8Fxaq`-FG5A`m-gKYh&uAud z+B)9<Q7fu$b7nX*aMtN-|G;Og<zbx!EK#{EPHPEgIMCCzPcw-wjm`&ccHoTiq^p{5 zdsOA~LD5;^t10ti;WD|!DP4G1(WDu{-8MIPPBXfLio3xo)=F6E1QO-4IL%4S8JinE zZ)I!tYq_vh!nH@E_%4;Du8Y=5!?FfRjKs|jU(`&g%&K=hEc(Rc%f#e2YgtZxXQuzO z_GV<6e5zOU)@pXMNi&RhSknWQE_~)jwcMyShcGKFDf6Yc#aUe?-FHIa>#S<agA$TY zX{K0YHMjk=WQJ4>Dyo&9PJB*}XvXv-<$s;>wo%DRO`^Wl%Y;0Yb*}S)LQ$0t+b9he z7Bx*8Tnsyn<c}pw>UVK+$O=?1bvw7I#Y;UQkINDukr_L~rq|?i0wX9ELyx{9gd3ep zLA{&BzNV2$g_!WR?d`sS+k5Py&3saYq!C68l8WlDkx|cU)4u2PPui|u|A-3@ro65k zs8AQ5KWZob<9Dq4QxDo%t&0vndD8CxgI^WnzhE!@{XezM|LFbdgiH4FZ-3eD|J}c( zb;iS*uB~wa((}C+wBC8r+V9wE2R`>jEAObcq75bX?BD&*w(0LaY!y0n^wMvA-nRao z5BLVxyq4kO@!s6L#_y%kNvj*sl0mB&xM;pP?pk<QpVw4cLNAVDIX+!it))mY)$z$G zb!tvjgk#lJWmRfF(v=WBuJ{LBQ}LiHQKtLN(E|zhe)thtt@CE<fk^K}?VwV7W3C6H zjqh>4GlP7v>5lM{9*8#j*yN7)ez=fD4@3=gTzQRf>KQ!{(ju>Z>{}S1VNq*W#cI_3 z!oN5l6#dRjXj!B{$H`SJ9Owv3Oo4_<^gu-06eri@?=(AY=x&tBD5DsG@NzK04MR%D zg}eqG7wHcP4sGaxXzb|sfdoB}KwGJ1)98nU9+*=vt8^O$zQV<}jZVz?#JCO-l<TzO zu$?-6#>)^3*3h+}rQ<z&cIx7@Ht9BPvxT}%TGE-b1u^Q0ISIg$Mk{F4U`Rq|T+38} z3FrvA_A19&>swac7ct<|f2|fQYj#kerH%qI#u@Dq6qM)`qzcLN<AziVZ8llnB-6_> zZYfTxvXEJO>GbffNGf>kM=a@RJz?~Z_C?y-3f7;5bdiLOo&{Q+;2^~^Gn8VTj8pVk zF1y#hf;hJoG-%m`ylH7`c~tn6mx2xNa$IBDyWqR9ev3_MWW21Ua2Q-+-Fhpk-(V9O z02UNXi7t{<eN|}SSk)n;oI0dIyC~6#yR~=7Q+tGJbEc)7W$B$25Vo#MPo-7APQE(o z&&g6T^HTkh=8S~Gvi34<jxtqwm8tz`pJ73`=T(jc4c#`y0g+-EpH=u-E$QQE0tICf z7L<wzD`?yzHn5}<smyqEWWH&W70A1o<r&2T3LeVGg>QAIAWBy4!WKlBW)+Os3fp#i z9n&X@Hoa5mm1pu-B$WoQXO)EnddZFtcqTARN*-n?vtrFAw9M&zn>0m3aLTtf<O@oq zicprEXr(UjRQW6^-J;5ND<Ka!#Z9{`0YV{UJJ969vP0bH7tDn_L5d}vN6yO<tTr{> zsW7fgUp@#b<!fA<fJK@z*T|$d&e!|ZRvF!#{*xctreAuOb>6*G0#y|y9gPxg1PyEL zuKwYTw&DGE*~G=mHuyu<PbIaxTh&-~@sJAc+~=RRyFd3!Hu&lpjXox9|3ChD$A9(< zPg;F<r`n`C7EDZQg6kgI7t&rWukNetY8hgQHEOSg1o#F&===!hW+^~Y#<42VL*c+e zWX`}T(rT3t%azSqhYt6Fz(AyUC}9q~rM}EhP*Eq0hO2c7gG<BMd@omj;y?rf3tb5| zlk0VSyF_d9K6+93G94)fPp#^gE&_8QkFEzIc(vlq*J%1L{J>cX#i}ne40KbX!@pQc zOqx*I@Bch|A;N{Hel~P++N#iLb|IIcE$DkRDX-zg7&L1WJ<)N2=8TR@LK|h&C<Bw_ zx@;<oHo@z3sGwNqu_F!8b~E%qBJGq@TdUfn^4QSOU>i0p>9k_6b#?}QECftdRoEEE z@IonT$5Mz?1n(QvoA1-X<h6MXGY^jE$_#;WOV1b>gk`>ki_j`=??Wym0z}X>n}|!Y z8kVRHctz+JNB*HHy6_$G(GFDCnY@LVF{jW{SOo5s(>@`8p)EjT0fI~Zv^%Bd{|mHd z5pa+$ZvjsJ3)LT@^Z1lSlE0X@ut%sk4p-r39JoS!XbN>j9vDPGcPs~4g!XbEqJ)zt z&kykv$GhhpA&gg2b`A?+mb8zQ!6SeE6)-@ej+7>G0)6SaNbu`Xm^%}cFy=&Ph!fht zN;@H5%s=l5PESLhN-vWaeJ+>Q2o#R7Q-=Yk9&(x7Fj8bQoDt8oMxSkMtv-bg!EWv^ z1+pk<zv<3eD?K`(^+_=j9n}n#y3zpCsk)gHNqsiXanaPt)F7LAnp*GP=<w0wy;i@g zE4;sQ-qyS?F#W+JXRN$S_dtl@lxUNCrhn8<e*H;n`@n8j1U&wQ?_29bJ3_pkK0k#} zt|M}sUby>rK4UNc$8Xrs;WM`9vyV8F^adh2(oR+G#aq-?Z~g1UP%r7OcQMMFHw#Ip zw(=etC5)xmI{bc**m!B|oLbQdCv+mbgAot7ny5TFrGw*{cBn?XF5q=HMx%6OoIY@c z2233EAsRI+3%FL`byDm^Un0Uulu>+*7$0|nq{|CtUnK!nuhUX7r;4aiYB)N(o)b7J zk2!{?a<^>_ik<$Up9S<l<h2@Yt<4R}x&jbgw7@J_R&AEPN2K|NXrmx0lZ3XIkJt00 zFW|bm)@0DMwzjw;FSmFO4r)zY*Ck9y>6W~f>!cJGBX~!Na!vy%U<je;LMx14*-s9) zQ2q-G^Ew^bq|=jwB1wv+swadZ!YW>|kR9{NFK(wq0T~P4%$8bOIE^{z%m-M=-<)4@ z9b@O_E!~60M#nTG)cU(<;fiZ4Vhr^4`&AHJlMRfE$I>T6!MlQE<qi12Kq$Le&5rAI zLX87Lqe_FNK`xV<(PldNyw+(t`pLL9syPq@&8R%29d!e4{F<8^1HPnQ)8XPfxt!E2 zn?Gpb3XSIGCNIMvD8!hxbT&UflNmU~b`o*qK8M7+<DiDHb#=AgW?X4I8N9J<OPjhL z$6=^SmCcN1iQwWo4(~=eku%45hjg3Z=?mvI+AFbRhmP2XKBW82RnTvgqc4`DF{~q- z>}6o2F|SK1qIO-I))9;C_+R|c)@mj&b!pguu`jVOsM8ucGtG>m_uoEccYpC$v=%yL z6Nhz<`j^AH<j{+!b)2umlVDlu^#A*PnMi4|z5n3j4lC5Cl4FfiIud#GzkJ)uI<z(^ z=09}&oX>h%@7ZeSzx<rm9W{N_hF`wI%;aAkU|!R9wD)hG%kCU$yq=1@S%R9<$(t0P zQzOu5Sq*1YOB=v(JTO7R2<50|fx)bY<eX-;-2T^CtJ5wzQG)>R@QR3V;&#JHoy=fq zi)sNMOI5C?fs(0~S|S`>3AEH1>CZ6TcT5ue3c&4#1EWiJ`~u5J8lh@H$qD7%-O{0v z5IKG_6<+?EJBy{CqT4Hn<1|{xly;<TM8|J)X+xJ~j5GBa8r0sjBn2H~(59uum{;x( zS)mOYf?#A;Ql)l@9!UD`5~ocaKSNYPn?FL4r6Je#9vKILnd#8cVN6(ufH85^^Onus znw50e<BvaOtvWjIOJ8Da_uO-*GemIYV>D^_>C-*BKuyOuN3;=JR<7%#Px@&}1PFo% zX0dJC7B4p#PCgg$^@+J7;ILY8Nhg-b^YP=SoY|rS2GfC2@7lFp_*f2Q<euMw^TNeG zEiX>nxpNo%q$YKD=+G;olMCo-#ZVV)hc@65R51^^*dm<0qYD=<xPZNUd001^Zt?V? zm%(yZSErT>NA2Ew_h&KQTzv8S1zp8mrQ^F?!QIi(?k0MsBs6#J+TmArvv)S2vVdVD z3}QZF{M_e7(TY&wo+AX^0}nLXi!UC^)F1KD$qRLnzwBZfw1eK>&`x@L`@D=0azFaf zQ!1;F7f!%#+qT&!2CLOY#7Elz&#Z(80(Z;S&9<?7edzGsX;!Go3|p8MmrKgesBm}f z+NI1l`cyWqr^hJyn^g3@{wMjEMR7~(-q9dpzSyxdm#9JR{mq}Tvw!)lozQHdQ2DKp zb~zj2n|}4Z*7Nmet>vz*w&}M%preb8I^V8}{^;#iiMF{aqe`RN*4sCG5}cQ=zrWko zynC;kNdegX$h~&ri$An;-+$5C9@wExJn5~7v0OfM+Ik*)-j~mI|GGBu#OY!|=jK;z zM<C6v`i88%XU0xpKT2ue9Cvj*lqVJe26VCmCXGV?wCR;KdvqVvI-TbMFVON%fsPw~ z?FEe@wag5ICddc(6xsbdOZ~1652yHa<Vx9=DlMt>yD_+T9Nr?Z>w$2w(-^uET8D+{ z0LMlZaO`7^VIxcMSQJ$ig?8xFvVH7JOZKoP1C#Ue(-P5t`&(wi<4g8`Kek}46_h6H z(#!UbAJx)x<FZ}WeI4M5wDF3d7|<Yua))g4%+ghjHcio4K{!Qto%V6+Y6_gT^j#;_ zI%xxK!_sBRqD|$-sl&XqNk8OTBUjJpb^fFoKkW;85MaE+WF~ZiicNHwUb&VfVFDx4 zxnPtZFJoIRsn~~j!cbrkFmvM7Xm+?|%SJnTRC)#)#jabo*3nRA*K%q4!AG8Ib*vwJ zCr+G_a2d+XtkU%5!;3#m7<v(6IPk%&n>4CFEJ1>c_Z9iaRes11#mFES3k{SdWx8q8 z25+N>4j-|W=4PMmfaYrX!>?X>LYOy6IKWg9P|T2cHtXmu^>Q6WmdSCPEs!T>A*e*~ z9vwn&{ra$ya<#k>9)JFzxuz!U$56-2n3x$c5JC9HndP<cg}iBbS^|@}47yfx8J~0K zFW7{pw{x0KS$SA*%@>KLeKQ>E=_j67dVgD+Ug{9B)8xYq!T488S!UPY_}~>m*1c<= z@t1a`QY6~`^Y6`owteE=;hhdC-I3e>_Qx{cR2*hf_Ws&OGvVXQmXE*F)6NvS;%DAt zpq%Hj_Djm9WK2=a%6G_e{9oJWO5<8BK4lb6DTS~wSe9(`Khwxml>SXvmUJ|kvTB`0 zr;RWwM+O2X9KwKSaD->=Im{x|R)yR@y?kgFg!edncsd|sy*I$g2kC}Wddv2ZRsz~9 zwZW>r!WsF29{(oIvb9a2a58<Ubd(*3Q|__sp$!2;_y~`*3FtJCJI{}v;lyqXpX4>6 zP3RRRMO%jE02jIp4RK#9rpxnYyGSF<Z__5}Kd5pxZd~uo5T@GR-s+?15Kd(z28oOD z^5rM`u{_4C0LFp<*|lq@kD9|RomxUnmcnBAtKni(pP2!8m=UqeR4b-R->$6<LLe~i ztLKd(r0x)2(8nmAa%D!tC>+Mvs96p!3d_~<7vao)5M<DU(4Z_yhy0L6Tbm9fC>?NL z%aIpuS>3)}M}M`1#?{>{F@cNp_$x23aLXMqa9qqsF7DWF)~xC9nF`E$X{p1R{oQxp zp?CI(!%Y5KbwL{70|!@sM_Op}#Zsbt$2;zG!4cBD{<4FH&6{<YKxMdb;|3qVWN6B1 z?ioeGdMWFW0j4c$yTT|WB@lDV;dOsQRQ*~Vk<*fkJ1Qb4bLm84VF8Qp-p`XljIij> zGgcPw-g<Z{JPtn`@o<^2g5#45&kgU9R{1H^`u<eCHpR5mqje%7UnSrTfv*FJNXgJ4 z+)xsz3kf*}{RCQqZ~%tfz~qV_7^4!vLwqkI8fl2{$n*|g*8@rX6JHMp$m7AWah@k& z;V%FKTxQa==b|$^`tvg(3QKjc<)PI$mrvv=!IU5fU!j&V*c?A!8F&)O^FkX5NqPdj z6M@ok5*(1=1x|SPAYg=t<O9A4_lSJFVJ<SHm;lTI_ga^iiJyxTnsWCQVtQA5!r&N% z<1+aXKfY0X)H!h&F|X#XckMnMA3>SxNC!T5wX|~MzzY!Kam%=*<Vw8YyB?f@Pia*^ z%$dJjNA-rZa((iD2Ygy#Ne)@$hI%da3XXWiclr=UE^fXvGZ0Lfq+RH6NiR%$+@yER zlXt9>y_#1CWP)AGE;0q+BV1ZjI@#DqBTV06w5U!FjE<gy5tl~d978|6X5nKvi%amW zge6MiCvQgK?jk-u1oH4nT=$Pr2qyquh1!_zTcb_%Q_=>N1=--^p<l;OI?+|oC<Am3 zMj$wKl?+8Rv;a?-CizVY2RKpq3%V7eBMDD+1gb(j;PE~XxIO<!iQkZRz!BnwxP;e# zuM1C-801xf_+uYrS$1E5g(JlwuP)2<6XW>t%@l25R}9C&;Sc|E-50$J7kLeT?iGH7 zESI*B*MtT}rJ(Y-j*-_K+Jrn)vH|TI^&9FaU?<<vtp<<&S9`{|5g*T7*wx~v{bD>| zuLoZ`4-tRF$9GI84U6Gcd&W5U$9VA>{K6n=wfMPk;t)ULjkpL$i=d&VVSw_vSd9@6 zVbbv;JPpf-C&CC9<D_A{r{UL&@2c@=f=(=<QUWBM5FVZ>Uh=t!0Iu*FoHGW+<;=4t zfnp$GROOr`7vD;s2|oUv1H4`s7;>UI(whX!RFF&xRFCP*y7mqHZ2W5}Cg)KahG$$X z^b8>D1xAkDF?1`U0AW+TzAET}Oz6Z1#FIxhC99=)RH}`SS?zg^Olb-(IX5z`G?uj- zqT_>Xy2blIIJHx&{ewck4<zh$U@VdShAO8~_krl7%UE*vxw4^kQwlZcfnX;q=zAnI zEbD}hZdtq}`%+EXgqM1UMqRSRTd4aw3YKh4dt;><9U#MJS<;X)6nTI)(gicLan}hO z+USi0+5)_~oDpJ)>$oVG3k38%N^~EH&bc~mbDH+BpW=ETvXK?_Kqk2lMDPr4t_Kon zOWy~w`ZBMO-87eJQ#lw{gXaXx`<X9pK3Lw!Il$H8tp?ADp7nXPI9Kz_LX!HpTAZu- zrBGzO#yIhr_H-5!B}3ZdD)0I55PUWGRZy)O=e6LvY93$_<T1%iW(IQI3B}mznM+#k zatF2u2f%xD(J%StQwK}cy-RH5^q@_AP|QbqA#>-3r3{2w0Bs7&*cU_A1s&04KLNo~ zEEq?3=Vk0`Sqxg-#!7Tw2bVj|59&@3DHM4)!7w^Fe_7#lK@i-d7?@7eEDTATR3~s$ z+Je>iIq`*InH|s!h!QE1Ir1V|?p%=Zwk4hHahR-P7HM|0DEnKBy1>d|I<i_MZTv+k z3_46S6>8JHNPpTyvdQO;S^MCO9VpR}KW!|t=1TecNIIuHVlic&?jJ@n1zh5iX_R=Z z?$}qrIATYWW^$fT2wUZP8ZrvlsQi)-fthIm#{~ahyN{DnE6Q`t^%4|f*sTiB5mE9T zaO<#x=GV;)x_ql*PQ@DF71{t~UAVEXLYwAcMnU+f2U0JaL&b$FBRAHK3$;GWd4@mv zo7^{|cBJ-FD!rL{**dDy=J{`ZOg4RzHpHx^L*^+8rTEp}Bmt0WThPmrOs6gmL%@VG z#%LnPT8pez#veJM65-XVTh@jti&@bYX{gll19)0QTeaE|aLSO)YS!}`pp8>?3EXK@ z_?XAlYvqmciAAt#iy*+No~!2xnj?)oaS^t9tkry0&jjV>*l!?@F(2`{TB@tUy|R>G zo;1BY{U_DkRz;NU@tX6Kjpirkiy}<QicDt&$n{d-?FvRzAuE+S0rgrP4Rnvp0DQN9 z+>U+jzghL!F&Q7!29i4JSf|c>Yh+n_L3Vp)q{QbisrgG-)ab^)QjJ^}bwXxrjl$_! zeNpGBC+4NRCs?PLhK_62^a(aDn1s)Gr_4I*IBRwPl$DQ)IcY{P-XR95Q&LsBX|Q5= z&X>a`+I8-kTL;DbD~EI(R>V!VmfN(H>MDl>8w>(-s#&Ah#&U;M4Je!nby`;bCY!Ym zs-vcLO5?(|wbnA%qRXHptX@MQu}n9ASvoQ@HxXQ_)^hOCC-7xWx`lf@QZ622ZBE^N z;!HwZn}1z0wig|BtEzQ@(WuQ)I$P`@Jo&5FDVzGbz+j!p2!_C@k=4>#3Dy{%455Hn zrNazZVs<zPJ&iD<;Q}W`71Ihi(8S0U4Y#gGCn&)1)1IQ!*VfYLc<@=F!9=t4Jro{# z9InWu=QQVmUk`1hK_0+Ut@Y&^(GXpP$M3(&XQq6WX!<=X4@r4u!BQW@i_YsX`G{qg z3&Wc@F<uM@ocDBih17p#fQloXSh)mFTpm#L@@GsZ0@G>4v|<>ZX;?aJjGr$|^yBHp zb=_qKy(_UvFBiXmCvBZ~90Q@Zg`;{!NGyUZ-o^-((N`>#yaem0-NN*wm95)k?eBaf zX&`Bod1K`Tk_pnhz&gW5*6V@jmt9r4zD<I$AT9I-a2GxM2$uu1?ljCfp!Mg2tyee+ zrhqSmvowr+uxq<cjUuV=f(YvpOajW|=7Yg`+5J^GgkOa^(K;HJQ*r}8bO@!rI5#V! zkzca8zVkjSyIu@_lF9><@=9ZmBXk7Hq-JKZ(eurnA?QM2Vm;25fR|||hwg;mlaaIy z;AoR`cgM6w>*#*4WClJ?wJ<9{_k+9Kfg@as)Mn7xKr4J&X2HV<KQtY}vmAx4g~Jm< zs}!ETM_w}wLZwM~s-L{#PiH1=@<aOQsbpvqoI6aQ4H_^fK^o8ij5|H1q<OxOhc<BF zVqc(oz4B9K3M9*s7feJXC%UryZo-GxC<M!;-y>@34%(s%<rYrq0HY01MzK6&xcEe& zjZ;p{+L(E%_4sKoHhYPaj+cIq<sI-Se`FEc?wU2G9pUKju~P(6lKrlPF2bjA^UbLw zbT`<jkL@!u<aF5dJMp3e?k5Y?aQt2Qh+)B<RJG?j!r8aO;m_<e!Xr+eC^k~w4BXP~ zB^@^Xo{swy`%d+)G_f!^rc%!LU34YF868pUY-v;H!XySu9-+ZTf*Iv4YE--^J27rv zoQluXKn!*LPt3;GYUv{jhl{mbSU9Sf9gcvx;Yj;+!f4^KkYZl02L>HUIQp@Vh{?_k zIs^!RPREVLB@6B{FPU!|GfZM=G+e+$2-f<U2^7oV-mvs0kd0I+@R~|lP?hQI5$$21 z4G!amF75z9$Ai6%Y1#J)f+8$Kp*Jz1Wx{dYP8oGS#Isxw!Q6*+Q=`L`Ht7?7MndJX z@)Y58M)pt;hJ(7XGVbY+C&H8nA@`L)Po#l~7lJS!ZACKkz+E4aHaa~5s#F7le6)cl zx8qYL*IOU4=@8>)xyYnPr9J(nm!8uFTXXiax8G%LvY2{laM&*b8<rg@Y@0R8QtpuS z5|}w*--}seb5p&Y*7XWCQZQ?fRyO-!lq)BP4jw#ceSJZ3tXaAdyzkt(Q+f#N?aN>O zvfX#zeSYlq{Q2{WQz$)+I@e2~Ep>Kw3P)HrrOYrYIQ;CFZSwfzR)628tY*`G8<b81 zOcq^)!J!ce`@ma#N!8;l+vbg3(!`b`aNmHflNDeF8}uOb)8@r*9((LDTeD`3r;9)% zPrbdp-kzg=16uLuuR%kap${MJv7>+Z6|36RVLLzlh|O!cbkg?<3sp{IN^3#Oo>gl9 z<C-y-yKS}gU7fDu(J!;`n>MWRfe<)Z8ii;5;0HgDPECvST~63T4?ScD4jiyM@4VB? zXJBB!>E(plh!j96Gx8pfAm6Mu@uuL(Y229^$dnqxq-@{Apa(Aw*rtu$nHveO%qYti zj3g3lJVOujN?*OB5#D=Z1|^je3^T@@$=_e&cM>$Fm5HgByx|BC<MLb$AK@5Qrt*`8 z?^<zV8sO18)ArnS@yc=uP7fE;jj$x3=nRcNjXw*?>-zB2lr*fDDvQPHY3duM;_ys% zLOvL|yG%pC$S)n<8GIsmLK$#WGK?%8zo(PN!;FOl5?b{h@CP_v_>%@q2|p6`I0+nB z6d)8mVMF*F+6Yg1D@>ZU0zcg){7TF7$_vc_M?$1|qmF1Qq+H>1qiFJl7i!Pz;R`+X z-;W)(a;3Abq0t`Qz0ZXO+Ui{N#`VFiQoO@d5XV7>N2H*p)ksFs<zl=r@t0pc<>qBZ z#4z{o+v$2CFk|xlz3+X`KK}8KyAav1VT1bx4fEr=Mf5qJ1)$UjvqmVq<H2{>zB~3w zaA>fpH0Fjb*zgbjcbO8OwIP|}sL`DnGhB3bp<jZlR>DkX&9$tF@ZjLZWeGYMGD7`y z&jp{2o;<Btx7rT|Jv-Z5WU8jgnKg`<I`#ptgxOP1J>}mh^9>GSdcDF09r=%8Da*58 zdBQGz?g=l}j{Ejl&7O^R{(?-mt9)7{Si#3KC_If>8vA3^K4nHb>rvj>5A@T78oX@V zyx#o~2+WEQXoN)t;`s67vN+!3`MP`=&GeuQ`skyNx<HO?+B5T$_(Q?a7!&6Lgu>po zeuEvIJ|@eb+;_epZA+PAmWJhZxvajH^^p_(wfg0txz10RWQx{2v98PykPzoezdQ&M zP;S`V?-(<};}dxLJ%kI8G(7ztalQVhGvpjJ8Cc|48Ab|&raYrZh)DPlCk<DA6F7bW z#R?4`N6|A=VGkbggVj43FCLK;13pIzniW)@8xNWSlasWE2T$^Y*NR_)NEsrHT-rSB z4gch1@P^}GJwj`3ovo{`u_^V@HFetik!#TfNQ{hOemIH^?R5krqj_wXAz(Pg)~bCZ zz7Z}gXW=m5xOeYf8E`yrpZ@fxePrJ%<Bp83`}>0}sun3A-get<_R>o)$yCM;R~m$Y zqCAL;LbFJw-%C5+XEP^%-zwJKiH}Txl<Stkpj!sBhH)3^iDPEeEWrm4B5%w>d|)6N z(17NE!?etYkPah$1l_uI>!iR~Z~OM`llhMq9lm?_Zr4d+sf#qg7b;qNsoT1Apk0<L z-m}KawHHVYty?S8NMi0d+8g;KE#8}C2adhFrHP;)Q>LZPavc^SUvX(`<Hn74=FAzl zUxfu_W<Cg$?(S|E8pn<vv%BuP%k#;S;Pq<IdxqZ1Ki;`kGMJfxP^f5Ho;fdj_@i1o zPRt3c1buVg$hR-*D5ET+q@DVSGqDJU7WxKl6h9nW8#v8gQ~V<s55$YD5%7bXWfIoz zi9>X@K7jL1=S2DKjdbKE+g%CC_P^1uWb`gtyzeB@5xD75I^e*}<)bq3vgDp#6+-NE zbX58(TH_(SKSFp#06(lbmO7n~G-A5$qn~&Oh=<pn32*{&44UwcC8E(YFd66wG`N>X z3Nw}n2T{Pe0ta=#=ZLasBPGxTY6$n%a6SuDR<^XX+i$%~xAkdlenV5RObx@!b;01} z3KWI19oxE9791{EIcUK*0wf9%>Jvdh`7SAq?c29|9A+C8(zfpC=<vT4%;C+KT!pJx z_eZpU<e%!^jK8Iu1~<EB0|zqlxRqlG!4pB4&yh!j1y7cO$QuqtL6|l$M*6uGryBQg z8$NKa)gIEVfI8$+jag?oF2u@pEd8Y&OMuLlVtUb!d~|hn+1j;heUAh<-#C`{n6Yi$ zy48(UIxzK<i!0^z6Zx7EAQTG3)k(6CNn+N>4$51_(OgQ!M5Z;u!ZuPh99_<tzC1@{ zn+bpZ==>~+UDO>0m69Se;{06B(xA;?JTJ{?<12}az5G_`F@R@E8~4NdtJbNmaXp*0 zHeW7j!_@ks%#vW+$(P!Mqgl8}=dI$dFE50GaqG?y=}oAJRNoSYl7{6a8bwMMg7x#D z`w{dhilz5aC==%xjhl`~eI->fhFGX0uQOU=@VyR|4dujsMnMzDf9Gsedk*M+0Qb8= znsu3wmPto-9J*Nb7t?Rkv182pkLu2X2&XN!xLJDXgvj8WkNT8XM%YcY+OQO}7~>ub z5fEvp(a0B*+1!WXl%{Co?u$ShBh#S!Q7H5C(1zvdDeb{9XkgE!#_v5@IhpoWspE7$ zx*BAy_y%2MTs&i6k55qXj_^ps;s`zZW1fUR!qAo|`z!}QekHZKOI&}!g|J!SR{02c zgJ;YyU-3OYfe{v=!E7Xcr~MsB{**k&`kNDL-3|}nYYq|ueJkY^<HmG&B3RRoe6a_E z<2{B=hxti=PuFOMdI*K!22GFo!v%Z%fmy#<MAHUf+y{o{?4#Yac5io`{mF9|#q@QL zu>?nt>|y*L_jlSw8PxmMi4m)lKq%96{x|OGw00R(f`R?`_@I67q;6zWgZr7C&35~G zO=E@l_{DMi(xFQ-rBPtpTPp04J*{q~c2vgy{^G@pc3#JTIdSyMceUHbRv9T%UJjod zu`j(mAVDKW_68LS>D-7T{I&8D>lYn{&Xy`4IR%(xhelcGM|23z8hH%MG6<ctRd*+& zaL6c_nHig)MGD{2q!C?}?$1czWm*enDWyR=GHJaDmO8*+S0j9CPLzFQ04$|o?R`zF zeiA}p@|=)bR>$vZtM;&z2l=X$nHbU|JarqnKn*$`O1o2V1WiaIp-r8<UDqumz^<UJ zvC3%!9%<wKt?Vc}+-uEej2EA2Txl3^Qlc~>{F+QLDR^HL^m4rZvW#hv?zLPD8}k#t zuZWklDYsss{KRnApQ{zxufQ!pOh5X8|Mk{S#PybZs^Bt9&&ps%fRNcMiNBFzzWL<R z{^m3)?9k}={}gk7aBH(~RE<xJ$vSMMJ-kW6U|p^4?{2U!JaOD6bRDNI2)5sN*IMh) zNc9U(9J3uV%l_ByS#Lc9qt+^gun+HRw{Jan%7!&k{pfvL{Y2Rx9~`h>dT^T!42{{B zb=~fV_jTFde6Y(t^Z7&eoA20YcW<n>Kl{-!tJM{?AHGL7qiIC`g;$1bt)|2aNoT(K z)Tc3~>Orruf$GKA)|REH=h;XF%k=z+Ch#1uV@}~@9QeeD`K!YaTnYy;?zgT*2ckfK z2@c|NaaXkj48kXq7THl81Wcv=(hlZ~@IpB+E4<((V(=L~l_U+qBPg1<y91ZNp`BOP z<!}%EL>ly(rj7PPegbV_t=^*$p1d;S5N$QNv?)%y95VTh>G4eRLmDwpp%U~>e1fF$ zD4aXIcu(SI(#icMa2l5To}^2#D;!~C8u3XW-f<BZ?`c>%EPgn_D64chuYrgoUz{YO z$ID7A!IO?l*!azRK77D%F<j2K_lF!<h@jsLKD{V@CTzr&37F?4AI=CPc!DE?GX)Ff zMuI84dE&ZnE<An{m-jS|6uQi73=be3_F8dQ^N;Yn&yYZr6<Gp=^rM94{mpjdA4Y<f zvQDSlh?YMj-*u1qq%D+|S(T2H&WM?hPiu6k<Hz&ToiMAhR$Wwd?EEGBhu=GGpW4-K z_w4Ml>Y@d^v#ZLEoE@-FeEo<t*0{Z|-gbA@+B>DSUM#WtPrm$;9UGn1-=h7SPuy+~ zG!<K8Wuf&AP1vvg;FRr^_WA>R)|*ycB!DI)Ky-XjIU=7o)1})$z`Fv0DaA{*im_t6 zAT9l5N$7g>5V6Jf5$BlR5i&^FGe}YooIoEd%NB)#W$=iL`nzDEK`CNRTv_eRU{0qK z;b|CckUZtWK(HDN?4ClBP7DX0*rp>4JP0RT8WzKOc|@91`Bq?$BZT4Uzp4-I)36;| zq*)V%R?Jf__bLPj#;Eb>K>g%?15d+Ndynzc&looM8N)<){N@>9@tMzWwQ%|3q~qtl z=Z3%5cZ`2M;c~;I^BnQ4221;=-}B*I4M%R+-0z6@df+ike8#v}d*+7C{mzZMnty~} z@r(eqZw>si1W3Nll$+jP<u?PkGOc;^j?LMJ9~-bgexSqNv8~znFv<o0^OpzhsMgNE z@{8KI5)<{k4Q24_2m9=o-m%V({bqyASyWlSOql%UfnNLmmUdg$Qf(iX_H{vJoo!ju zXw~HfHldRr=mflbL%j{1nYM?vc37<x*4ku8>W`m1W&iT$?y@ug@V$N#gA*Qq`fQJ_ zt1R}-^ekTT1{V%j>lSO>e&B`UHm?h_W_0JXD>|`@y;85v=Q8<H8N%va%%#HQ%WAx1 z9=|0W16@K%PzrbP_Qx!k;922RelfmZ0j#Ak7-$Bja$AyeAvZz*VL+b0vL=lSw@k`Z zjhJo`Cdrk*yf8I{B^{$AK#_DbVBiSS08?}=gMl{-CVVas#PqrL7{{eyZgdft_B|-5 zLNWUQ(^4tngqQq*52*;ug?0+Y1!&B`xEqFWTrzf9Gp^BB&I-O@r@!;8A>0>reASnM z)zK)!WtC|#80y*4&uSHdpt_2mdsA4@q2r~{0R5U#g=klcAJbm#dA)Jd;d0->oz8#C zUwNj!)B7u4?$ibKNL!ZU3TYKq7L0PIeR%yO;qt;LXZ^)?0X}cL4#SjA(sp%7z}vX$ zCbn_zWd~M}1ykE)X*Ug{Jp)rdvfB7{!PIsYj&@A{0tfAaev?&fWIW?y8S=zYz7ght z<R|T)hVz~de?9NH@j(&r)8598U&t09aRinp+M5O<yKIjCwAS0X9@Pt7wwDlgO;QHC zyS&cVzLzx$<bHW(CGXTy*QwqS`}ToT*4a>P@7%lI{{8(M?Dv0k*8bT~?Xutg<Xtu{ z1-O=)65sIs_K5-8b@+n){JVDA2etpf9?Gm5@Ra^OvZq7JZ`1aTr;lr0ztG;lf0O;S zJG$)OKcm|Yl`s12&35UomxWtt6(|oACv^LwY<STTsK`Y%Mmh*WgZf2_7(D>$6XwX% znX4LUbj~#O0o>c7o|CWiI|IeGde!bWtLSR7iJr>=F2t2P+N^3rvu<t_Ot(GaDz@kz zh)r!a**k0#hc0>s%DW|)x3%lm$T1r~aKT|^>*}p$N2kqR9=EX{pY`K#WozrKcJ~^a zlZ~;_C(d}d(zV*C-J{bj(m)@5_N;87>55Zrz}M~V@{T?F+*w<cl46PWw`%u=4b<_M zFWCI0N!c>1usSV2(oaTT=#fn`8FAEXwC)atqrty;PIl8|kWq&K>h`a9Ml^Qtyv_Gd z$TW}kX!ftOBJHt^A3ATdz2g!tQgXd>oi>CkY~)C<&79Rfn##Xc^<S!i$*|I$JFkm` zgu805?sRBxu=36ZJM)J>WaG}N_qJPETb)gw)J>PVy18;|qw=$|6zE#(UW&;NRRLpE zogv7A)#(*K>dF1RK2?_rzbFm+nKMIHzP{dyb>}-n1#bwh5w8Ggr+C^a4-ncy!VEG& zuH{c$^)pXczrscqGA{j{e$NDO`qXEX=V|2`%MAq@c+~Fi(&?=-8&e;gOUk|G&Mqs_ zp4qs{eYQtsta7ipW389_#L+&RIj!rrRqi$WI;~VI0~4?6Mn39CWmmmdC$8FRZSuq= zn?7;b+kYkPSp&wY(*rhrY|!~f)lThsu4}d_wehJVmmF3h-chx&#ilO|+tkbbE|kkR zHCok{Hk;Ko*pr9)T!_)0t9R&T!odlfc&XQ!f9aZ9tJ&3Q^CP+q^~DPs;4GTMc6Qi; zE?lE8EXi1BsRppsyF0xcCSFq8m3gMJtr`S(*16#G`ct8WK_4Y~rAwD@Iz+zuNQX^h zS`8k<M7-e44GT|!rj;3p8q>5kO2<Y=?by-dcHjN?>iBBX*doR^;prJy-sVIFyv{dH zlYFqb9^rt7B|+9mtGZho-v8#$p0<DSY_B+6r5)bbVRvk7w&!~%?DNm`sA6^9r7HR7 z?&-ERF_<Qu9y-!LX+JprvP_V0b62T-<~=*CZ*0c)Zfv#hy>!-o?XeR&Twi71?rgC= z-K{qEqaO8MaoT7}_$HQ3x)G$&7AT+d15?)ise5hfqYv7w&i12_RiUGdQ6LZ=p^*M& zw48T2C5>F~XTSNJHSXS^B^cdRAOn(&Y#HIsYUvPHDtlLPWSxO2T(Jx@GGd&S5lS4l zN0w+)8=*Ec%uQ>8DNKpN;^t+%a)FVvM)2SaFkL^Z(|>dx?xBY>O<$HVP1P~86Nf3_ zw3Zt=Udl3Fxr|>DZtUD8&nx*Ym+?#7?8t-*QRwz?g3SQajDpc-MY6XtD}$H|QfNaM zSIFolj@vAOQHCB)d72~7nyHdMVEARhlouEpS1B)G*i+%kMF*o(M$M<b@wC;hZ?hID zvGMIfJ&XN%(t&A&SNUGq65>qKafpuL6Bq2ofAXic`yYJN>bg2Km=Jx+TZrl6B!k7{ z3ik@ul{b>i@>jV#*GTe`_D_NQ6)etda=A=SK-wiYi4L9U(M_LcZT)-iv<1~irEV6* zt(3d&>u6Nnrplf2q8=&Zd0kaJKQ-h2)Hn5+1*;QGBYUp6p3^KHNBf~2Eofjer~OZd z>GTFyX@@orOv~lk6XTj}Z_l)Ql|!aIYi2S-8yAc=PamO;)7EIG#hQhdO6Wl+?Vec$ z{e?D;|BO~bfEB5KmH9woS$%8D#(M`mUhUe}Ods$J>c`79e%!=orp|5<XKXR_mskGy zTPp(O@`OfQsw9{anwU|8@{J<kdh_iWR=ybNW5NRaOsWfaF>jdF;K*pL_DU|uRK_Kl z<oJaLxA=@@eOr^Pwbt4nee0CnuhUnLYUBLhKlX|?#%pY!mbCulyD#g=a+&?|!`tnt zBNy#ENBZq=JfQo}2gdBb^o-l5FHhJzcdxbIld;B1ole`mq1B!}a@LBqR6(P7BV43w zHQaP2+>f7p(gg^2QgfUT(+N{LqC28N0NSw|H+IWp!=#<<>Ct9!wS=!WzO_+4t$iau zJFfvkpA^M7zKIrXyGHpnZQ%$a_?>x+DOa{+>kYuDuYjpua$$7rGz^@hJ$-ihl{2>H z{yiDt0VBTf<YB8>+hWZ-Hu&-ojGrruGfrhqX-6g>;g=4dwBGL@wA=sAPdmsNtKu?> zKmC;_ZR^jyE5Jp26fQ9?9UaD^-Lw!Usn1e%?oyd?kB)MHS@0L#sxUE&C=>}xIGEms z_wUz7h|M=HGVB1o^7pF#5r<GMX+-Zc6QL;7h#nXBc-TY4(PH9KX1F>Qo7gKYjV47< zAR#V7NdL$`2;`FNhmXv!go12dX;CIKa0xXfTuD0xhdck485vzUT_IhRP|m^2%kw(R zoxurz(GfQvj9CqT(Gd>ez+ZI0LVI3mYYwA5r`jJdgwho-1|z9(6rvA2lEDb+5SOyZ zYP*6VAie!DVDfNUb`!qra?bwpfH&bM*6EF+S~-EG)~WLF83+VUi}B2Bgf+>f@$GHi zXc+Am=#2lH=}4VUP_HTM$pMWZXJw5y^bs#;2zd6`B|FhK<~kkdHT=Q%Pua(IH`z~V z$}1A=t4|)aZ)*vmP9u)y`iu6l{cF9meD$dl_MKw`y1}=~{`5zu?4fN<_SuIvT2KFo z{n3w3*ax+2_J>cLv!B`9W)JUOqm&Blsh7{%A8B8tOUoLIY5;FW=}=!dgvQ05b2c(8 z`$96~fZd&;p&>u3fA(yTJ^JV)uFTYTvCjr1Br2uNi}vh+0|)JspZr-@!urc^d{c3Q zk-GOh@D4Wx;hMbArauZQHeqPZg^`b3*h)B<j$%6kI#!`weDW1L_Q^lDssn%5+HT)M zbnE%<3wGqAU$mWH`-BS+ghytLSRKlj=LC!C%xMJ5Xp$Ms(5pSN3LO;C;(h=)86mab zx5LAPPR(A0*0=TNhYv(ooTVYan03J*oZh5-!9$w-#WHu8YW@0PAwF?^k4KSt4|ISj z?UGXVG8ddeOv)|w5j@;ao-tqXDc?oS;)>KR*c&5$k*;114!d@&{Y#fh0|?qny7ey0 z_#uLTNN7%Df68aJ4%2d%TnJC%xFo-V&df~tfQ4%SBt?|1u*ZO1Eb>?={Tz3m??o$1 zZVC+hL7^<KC{M~k&ci4T|1X$_(_p|I-~7`vU;TJphLA*0;wC~-1B?jE7cLD0MX0l+ zFF-o=h!EHNN)L(Q^1wVwEVCppNn4ocyNs`2*^Pn5kd{Diw4(r4vUKg#Jba+mt4C#6 z92+!K!ZF>6&iXkf1KvswAy6X$^33@O`<4V<V?~uJFEmQ@LH_WWi&nZgr^}NnU1{yo z<f8raZ=bQ+f_a<JYzjfRMmBf~%PQ;-w0BXyH0#TCD2{aqUMvmU$9pF2F|Cc3FVESa zEW@tR2&YB@XKuOJe)~t~twM3=Sd*H@uGKWPgghi2<z|=F_15X$y|+ngc#mtoGULDq z-mzoH6Qgci!^yqP#rF1Hj8p&sKmbWZK~&)nf6(9Ktn&Tuf1e8v^8L%d{24bb0rS21 z-Ir`(`<ydaI*2>(q~SI5d)+W~6#b*gp;7Kj1-j3r<DcE5<*u+SHhk)WjU4W=_TSoX zbsIZ9iHpy@YUjT8tkrDk^bsT@)%EYW!-h}w+L`~US(oake%CtN{K$Pa-8-bEu}XX8 zzdmM@J%hIWGw-(=Ei+zt`epANP21PoslR+$ch@XvNn^%F4)xgPPrcikcW&?{sFVNm z3E6MbvV=Or#*aOqxSD}QCZ8cVVGOBnUcIAV0~VJP`(8NaGnmG$U73-3c2s(2;^M16 zvp!;otfwEYP(6=Lj@f_xPk&^;_&0u0#{Pcj8sk`(V0Kxf+4GQ0ZeV!u%$c)c#;JiK zvsT)5y)>vV4_)#B$H9Y#?3>^GmhIlX%N~62K^G*8Vr+y%Nfd{+_2}rBVK@*waO*d$ zb3L2-`Z`_MrDZ&YMWGHsHasjFd$a>F{)XlzyL{@L%qh=Xy9N+hjNiGEqxT;#-!zOS zsp5#Ut(B1Z>p~So@D)eBy5I;<PdlmWtZ>B0jT>R)!3VHO3_WsE0dOVEQRbuqW77bA z^sM$1SsiE(ZI86GGfv`fkju%^HB+HnB5zRkGk2nQZ`|M`SeQ(_=Qv*nxn=@yPyp(! zN<ySsYo1tTP3Nsc7YHpbhr1=@BhBg}+pINI%!D^N^U}ynwN9M%buuWos67Ktc<5W_ zC>-8YSzryUhpNGIb;gqXz=ekLMs36|ENb~el}wx^HWKxGquljkMk_e&u#C!IuFJg} z8o?4>d|xh>S#_-$zafsw6H(LBvssWu-g+Hsm`nCm&OP?LwcNec`hR@HYSy&a_=N#` z^<RI*_I>VC+UF>-Cx7<$?e_ohDbL%%fBt#f{A=&?nG5?Mv)XSM*T!r6hi|uyAG+6` z|5tx%L$bVz0O|k1%hvJmZB9=A<F8nGORe4Zs~@o=bKkMPr;oS*Ir87WX=Pe!*!|f@ z?8$%hpKSQ}xr_k0dG#BJpAqdDp{$m5vp9q|Lztj2Vqy2mA3te3#rU6p{&_87ZnQ&( z4yoBLYQRvT!NoC|*x2TFvJM|UY#TOgaApr9ZEtT^*n{@>{@&lyEcUW7$Ur#!yMOlw z_K}Z##4cUBWKTc+jBVStMP^SL?S&T(xY>@WsYy2ycu4q$h6c4Xy4H;ePHLd{E5Gtt z?@zz?d;iu2SBZGb&V76B*jJyhkALK&%CTmkFr!ua5;H>v9lrOWeh87wAlYAt`w~$I zP|<0DgW&c;ab_3d;!hi-jkWCT4l@YFL$D!~(zwV|<S}Vngk!&D=-4@H-nGGJmhMjm zoY#<+{*=7qOW-`N5PS-T<2bA`5k7vBewF`ZF(~9317!#gFY~t`A+!nhLc$-ms=}W@ zatXty{`5t4xDa5ITT|;|8lc>?AC=PvsBV?gcBAjB0G|~cJdD^i4fA~gga-wLz*6ly zd<lH3G<fjb3>WCRHYOTAjdZoYYhy@-5KXOjZt*o(hu%~g14U!f%_-A~nYvA#exj=H z`J?__)hW{)qN7av2j?F@Xf2QIvikKM{#_+20Cnrzt?$KSR;?3pYwq0@HYTOOIB{{% zkLGUr@O@!f3Ntqn9x$CbT~yYzZM|<&&h?Jj=1)B2Yu%h2soSj6V4499KYd!KV&=6O z_)TlpzE|hnI}_4FTS=A9Yky73v8tm<Yv5s>{R&3%+Oe<1R5}QXJ(`t%<$r#~nLEpw z%oM7ss<mJClnaI7;mdaV^cmZ*VS~>~nYq?#7XHK&Kel(j`@MRvb2H|HgF2Zc(>7cu zd{l-35kAahZohr6ojrS2I8OO8*XGTeWtn%}UVizo+s%6BnP&|{jJMx@n}p7Q8*$vS zb&KuUv&Z({zR%6ybZ+m~X4c9eW`zj7rI^pFfASrB=GXr}9exN0F$j0&+t1nKkN%Dr zc#lVe$y1(Qrh1P|+h-aXzm@t#D2<+w<zX#9A&4#=Jn3<Xm&V0=K3pWq#{Y;8FR<T+ z^R&b(vhtuL)9`$C&a52AY`A&ndhs8Y{{qZC-ikk|`hj64i<2RznF3Scy;U7KtChKu z1u=El62;x8>2S3+MoQHvMs!RLIQk<E6}luz=1#_SoDPlg8qG`^bX=1oylpzdJ1Kat zHpiO<tJaZC!p+JK7UWY-Zu?5ODz!0Lq6Pxqx0IuUT&1oUk%|(}_x02$%RTNO^m-zM z(AWM=@;H8`&#Kq8_$KO^KY!AfllK0DpAH-7(!Ie=X&I_%|7L&hedZM_)SV<4!JF(8 zGt?|1?U?%4?vWuqZR)d*JU=vLoMai-d!h72s#+Rs;K*q!U#o#phn7<$SSFA6+s2RF zr`d~?QpI@IylbzoJ+q&Ji;N_l&g*%PjHqQ-H`~k^b1JV7r*sdJ0g?A-y|ZssR#t8g zzxO@5yG8pK+T*Cy-X42lSlIsM&wj=QMRBn<^HsUbJP|OMePOxj)1UrD37T+lpu4-< zm%#41=N`NN{`>5^-}$a)8S7-R_cjTpdM%B$+k4*qZrizQhaEq5!Zyer)or)!HfA-S z_{7h8+T;%djR>fH5<29K_i>qlAJibVVNZ7`f}Hjnn;x^vnLgbkf^9XubMkHUT)$oV zz7D-SxW+1ygB_CtBX;S<<350ByJM@BYG6S<kDTt+26eR!96G7?)?}@FHhFq1)py>% z%Z0}gog$jKFyexsZQmAO((KdnDYM(QJGNPcPJMBLk(p^(eU0O4y={}jTJPB6C$WZ4 zocAY#8BURP-m}X$^f_AJuYAo)NR@FiP=vMW9%uI2oVh?ZeM}X|2}J?~b1R`(-paqR zj>uz{00D3{hJ^o{>F6^UQ+!yaMY?pQERFxt_^h<T=iKyjhjarDpBuFr2?WBSk=~>; z|EDiaNKvrJ9zQi|cgplhnNDlfiZS)ce%8EZ9#aatRcEv3wZGAGdCF%W3!3IsV`x!{ z9+jTJ`B9}Ip+w=m(T;ZYdfh8WWSU=$q1;W1=oFhqr({0XZ)UJSLTbz$p{<bZukO2c zX{L4aMnM^dtd25#;H+)_#dmurAO4GDw(Yk+>cZjD4_>jZkKW@X*UM_ag|9uYVcwGU ze&a=}yM3L*n>0#0^1ENPV|72&)N<K2JiOocPS^{<ah$bSOPQR;8T{@^EAP_Ax(agO zg%dI>t{INr$8-n8!ewnBiy3j8v|>Y}^*(XPnGwQ-eU?~0j`Sw{MEb`r4cVEq=fzBP z?Jt8Ll}8jVoPrDY>#QV*U-XYp;t&=Clk3)WSX(;=3x!AZ#nNkCWsU8>O9H}2v7x1I z+qTWaPyoc=xG^wNQi^%t9R~x$u;tF3yZkSVhL`Q<f8mqz4Xu(mANarrGI6(U+wO76 zW3=K+nBbt(d|xGk2sbAKmcB#)R()qVq6##rK|qOSr0CYfqqyh3`MlNNzQHEX4Z6^0 zDe9$v`9)jv(K~JA=y@A>_PE{g>pyGLnz0=GXJ53AkKS%&I)VA}zy7k7|6hOIYP;I( z$p7<I+xlxC&_;fx>lv;2nf=~orUysurO$oI8t>X9fwE{X{hKe^UH|-3E=*qey{}1M zq)BGsJN*dm@&Ecwt6JY;4V%{3$uIuM7NtA3_Ct5r`LDm=%UhcteZXG*@88zww!j*9 zthZNx`>VG7A3kEmI{4u(p*b#{4IVk;1Ax|D8+8am%B(QDScF-H^X7cS!Ag>OT2dw> zSpwvW%FG1IeF+4n8%kC)$b4j8auM9{chauJ>}5?>iewFI#qh=SW@p9xH`UvSV6gYQ zWN@)Tj0EekgSs)VylBbpmB3*v{^FTSc1FrTKXcDId*MXCb=FtfS{Vu)(hYiC%~~tX z^XgKa1J_zDjkx#nr0w4#%c5HBIwZx!4vlD7KD&7?L6*YlWvbqmr9^gv34(*mdUoyH zs+hWcO`DpvI=)N&a-aZa<(K1#86ku*LO7w()0sbi+!k-&rX$>`QPK^jof}+i&_Rsk zwte<}R=cLvHG1#<;;&fkx;AG-+dlh#tJZOAT=xg={{Pu~4<JjE<GwT7dvB-5dvDeo z0K_f;fe-<ZAPGYO5=A-c?m`MF?x>UE;uIHWLKktm5KmNyl0u@6r;|uZlxRR62om1y zE_ShgXLr2qnQ8C6z286UtM|V5`t?lrOpjZ#X8L{g)mN33<ua?Xva&F_&0X@GCF%Gd zKkwfa-pcCe#6SFkjb6IpqM%Z~@A{b!WW++vd$(A_-|19TYiB0f`NTo@Z~pKxW~V`w zvkJ54$N!hl`;1Wx<HUdWvo?6@vd=&plMQ^Qc=<%lA>HPWC@1hnIHlgkN@~;I-I&}# zO`bY;Z8z|ckw@)4iaA6lqn2U{We^=r1f+Va_ABT8YWH=wsNA8*N#BVhZ5$CDy~pGF zGpYYvf5;`K31C7R|00-t4C6btU`UhxO`;`9NYB4?K1tRB<N(#D)fU6&uiGMO^4p%* zMO35{!OXZ2cl6>7C(>FOE^@AB;N44p@Uv!fi=VrYy6f5h_-$+d*kRlG@h5GHGefWZ zy<hk9J5znbR#IDLdw%9aKI6X*Vb>{g7lnza??F3Lb=!n;#z!A_<%aiu>l;4l*!MF( z<|~*NzIM{42ExI_MGmCy{nGO=pmzT@b!pIce&*TW=dj{l7}6$IED~!);y?7#d3)r4 zg7H$ca?Yi7Ji=I{{ZywJI;*1Mbbe}@{l~fki)g}z^GD&!?f<Gq6Y#eWM98bnkif`L zs)j{q-z>-+1|njjMpkFe6fzq(@g<#v&R&8&saPqFE|n8H9Z|j0+^h&H;@X{J)7Pw? zjr4bVCargb17#ct9ESMs<h1V~r^P!kmN=r5<cO*&&~DH{K%E<@b@9Y9CQU{WUoG1o zz1D4)dxxwY26CPg)Vgd(qOVF0eN_=xCA`6vsS<TfqS|~Jwcd*5a9?<s-K`yOua{M$ zQz}|T4dXxZ^RJkF7R^q=2PIx#T`7eKl=gFmQ1QKV`6??kHpwAGf+>R4p<CYCH`&)- zy@G0Ul}%yhz7fVzl2O}Uf1b*Bg-gI_z&GuZDs*s~y+xM^r_bo%UB_`YSJO`22sqM^ zaxJOkTjS24FrYqH(-AH|lfRzLcscnSm~}?K&Vgjkg78h^j!ln+8MH^zk2gl<ZNofL zD}MXcckD(5M1oD&ZQC~6;NTE#5j2~2?%eK-LDeOOKFHOtT0Qzrc&so2^Ix)Oo`T@9 zdRm|ja~ycjvU(_EeCPtCFb+4U4RbQO{TKCVsTEH#KF65g6m&`bkDc$ajwkoKxM<{5 zw;#gW`?(L><!}7R8urn5=o6Dzkl2aloSa0QB}^P8A{st@)!H}+EOqVS^WEO2b!a&C zzJ1QhTWfs9aqXp(h&B<iakfWHY~pN>b$$GV!xA%+)?OuItKK)yx`hHU56=hYq>cPq zM50;&mDDlOK|H3iO`Pemw$HP|quSd)a>y?H{tujS?fGjT4d*-Pb2)T1X&zm2RoS#? zRrHYxom+W;Rv>B)T{*2QhIQVKBILM?8n1|`Ho$bUdE3@4wtF`xX89+Amg8VB#So*} zp?(`Y^Cpc{&9bgC{FPy9n+<50O)rv8ctJH+FvwsLv5C)|oKi0V2gTB6xQKnv*t`?O zQgqBOUF6OPaD9!{g&XH1y7ow90;Q-J880fh;-s||nEEFEOV`j_Uq*!0JBKOvU{6YW zCTz*G!e9m`;zC+kiT#69$YEJ;*K(qr-I1g=)`qY5B&F~{k*Y@}*NGf(T85}=^K*%% z>*72o%P|VMgsSA?)Hr_=Z~`^jt@2A%RpM0|&0wpMh40wD)iKwM*BOi22Xw?NPV8=R zZKshlr>$`}vRa6f(&lvZmEdnH#AlnT1~LzR)s3n_`Gs)x4KJ?;glr-%9`1Fac1>n; zo-FtkTX8*J^iyU5&xBKzKI4t?V$}+jRGxyh5iY`PL1X9e<|eD*(Afe^L+w&qTjLwn zny~52#g@&T^tm!$A-1=-`aXqLl3Ecf&OCiY%td3gkfS?6dqP<YeZTKvw3%ED`xj-D zS1w)UvER)z8y|oB8Y_qoa`Jo9&VA_*?dUiEk{?PP{O%d+{3SHF09D4sM_PB96rB6_ z-?lBEe#~JGV1;|<7eD0wLCy(PZbEs1__85ayC+O2#xM8sozvmW{wt9z$mGlrXS{Tf z_1tfN$68@P5{LG^bjlhIY;jon8Pa}8dmUq@)cV<guinw(lb&(*K&H<RnpUz>&=|tv z_twumY0Z1LW)9QFz7T<F6|6G15JyhuW-_a>P*pMNeS1cneb^PiBC`U~;i3v=Jne0* zu2rG9kzD4a15!x^mjey<*|q=tYqm_M(D{mD)C7we6eXOGkV<GpbCYd;<N$Hu@SLSE zF7;sz%2WRE=Q>U<uVv|;?n$1Z2y7hP*{6IuY+ENS4w!)6RY*lu|BOilPAe8Y)fNi( zQ@I2*kyPK%+|7LREEQ3X$b5EJLzv<^Tmf^Jh#LGohVj7@DJ>&e2{4PoR(yEkFXD^| z#+_JUEF#yPu%6e?u<^!9YId5_#FJ<Q!94IYEk$&}Y^s)fOQiMXnTMQL`%M!~#ZeO7 zMO}m5e>s{su_MH9#BjpBqZ5Kg<cY8UwpBgxYyhvsnX-nUjrh$B4uGxZSH5Xn)A@RM z3a@m$RsAWkP)MJJnE#&rvVlJERoiIarHenU@|CZcraGU_Wyp!Sx3#vZRs7xKkS;tG z#24Q6bq)qp&;c)`4!;HC+{ZwbWeFl##TB+yEErWDh2^_>_DGta-NUKxa9{bhfB6yH z@_}P+f~5JGJ%~HQYV**4^GUn>M=#r{Ghbu%aNM>(|ETYmG#=y1+e9R(mEWchAN4F` zN=JJVavhKFw+rm0T>j%%Z2#w;vwf^?&i}y+_U^y^s@3n=WIGV0s*S2TxN`T%PEVsB zVY})1pdK!fW9J9hGsH;+zLPzdG7jZldx1OayBe`0*Jszi{)Tn_*b&?IT)0s&r@Tq| zrO-iUz8{z?d2rD8`6ua7;2KJw+qW|3K%~mo*4k=w5S@6Iz#G`BEL8>?yab|FQ3cno zK`Ta`ni;fPv83Ubr_r7m9<_N)p;tfM<Q3}1{yd)IYDO*2t2KizWfBt*W8oYJe$K~- zzsPLZ+3*8<zM2V)Mn&*qc;5>HOBhD2DgT<3)5{&vPvXaYjO;i6Kr%h~^Vbljy%Tq= z7y@GubKtZnjKOCN?2j1YEvP;Wf<HrsDL;o8i;6@nbasUJCE5TLab)I?9D90x%%<Oa z%a`b~jiWj(Wo1_c!_~~hBgUC#KqWz>@FS;V5=G2ZcS<|`%$u+Z2cI11#ziVY`yut8 z{H*o7ddXU-9Bs;a1+O9B!q}`cl(te|11XA~&D6sHC0tee`WE_RKu@{kgb9R_Cop7_ zN&`~+DVcQY7wLSIw-;8>f=lBN!*2KK`GQaXI~SN-Rai5kyI`9vlr#20nc|5!dR~0+ z7!Ve3s}Sg6y5wvQan-}-R6d<npBflumOka1(6N40mRRrAh;$D9#Xsl8llI)PzxiqR zYd_@hU;c6TE1fj%j{c2L`Fs2+r>zhFl~06M;_UjwQ<?btKl@z9FA?fvzx4SKk6)cN zIsEg$PWp#FD360*3V3)#zHR?VSmo&3?oWjYm;7Q_f~iSi_g7xEr~lDk@qYH+Z+_i| z*#8m(i7-OL2KXwoR!MYJ)W{E$C$u8zzahc>|5ZN>y-}5ua(wU=h$=u!<XV`>Ag5K^ zScS-~S`I#h&K&^yESZi`!mQbsWiWy=t|YB)Y;!rYG<<xJGMKf;qS=-PwiwUS5=>`t zGVv1&uJ1GcMG*@PDlwV(7Z^>J*=QvbnGT{et!8{h!>nBxI+9)#eq!O1z~t5OqS2TG zdLxQCXqCX6B4G#&)W{f$#2nPX`eS1g@tCr6#^6tw9gILT6FrNHWhy)}K<X^1P??%o zp2HYmV~bnTmAM$7kqTAXBJ-zrxrlmrTk)&*8^?-(_BevxKdV4u#r9LaG4K4uv5MM{ zKVl<@>y~^&mwFBm@}u9@yYN%~(!oE&#^=sYKW#PbO%yW}tPp-NP0TP7(O8a%x4vh> zV$;&MRPWv2f6F&IcXMJrKTfDq@>kvDc9fXq#ynL<@|Z#;wNeHGaq05%DdW=qOkfH( zjR(2H@p4<t+dm8B!SE&REhCwu7ki!HuGY=c?eBio1OH>V>M;1dMuOktc%)ECNkzpp zUI|HG%n9Rz-W^f`H~RVD;a=&ntr8ge5aGo1VrsHteG<zE{++(Kj}=bFMHv1ugnC*L zy$93<%nIN~kTZ}txLTW=t%<{gu~NLn)?6r{DGwNgRwH5#YCl&2OEv-1pfczr9<M|i zMo%%Bz+iYn(4{f4%s$2v`xSxd=sS#tzh$nY_0>#fMI&aD&u9XZAtopUhTtm(Rtv>q z4q7dUVTdVc)qv(!U<}j%gh&h_!xZ?CWej2tVp=Hzopg{ulrp8v6g||fUWL2L1>+Ko z*ikbv*WeL&@)JXT@6;JPede4UIds4tee{Iaj~I$J(zO>7+js?3U=+i^<~bx*j)se` zJ`^b#d@JJLPJqe=Je}2$c1kpGs4}a5^^}gkG<3vR<b?0^uoNZOFW@|f&H~8roaE!$ zkY8ZWPAd$FhN6Yt2{uw|I+}v6JusTl+^WFrjGWTTf~s)P=4ddCNad0D7@MJjsXy)C zN&kQ2T<8$x;9jK7Z2+rX(jvUI=B55FEv#_9C+TRZ#OaW<KNaPH@Jdm_&qIKXj|X*P z`7=aR6OO<vGjxIP&g$tGA<UD6pQNxcZtUyvU6FjKD6L*RAI2YEkE{NvKU@q`+JFxs zr1LBk=JE6vCPnVk7$%13mW+oU{l!nA@ipdsTYXJ!9dJ=Lf|ukgF##?pln6$E>46W) zk28>nYb2EM{cb)()saKu35^~@wSvexZ`$NX^&c8TjVT5bnT=L6@}n)a$g0Nu$!f>b zYDFLoC$jXX7(vi@@>K#Ws3OE>>bUXGJC38oPxzlj>Xtsw^cJyVd2cgXD*4ten@xYZ z$6QWj)2dQ!>hBDK)tu_S7&X0mPGZN)aaN0aC*fl{_;;K;9i;g}L#p0o7XH+K_y+c@ zDqX){^5reh9I@^f-nOg1_cE%D+?#+{wG<QkhyU^??8>)Zv$50HT@$9`*#kC<W!H26 z{#({`Y=;fMeTn-bYTYug<jN=i>6h)qKlmJsh;sqI{JX^2j$FFm=DADdk^la4&QMPN z`d8iXqD-sI^o-ixpZ};c5XbK(b+*=eP&>$Ndg6c+CkpPi$JUxY9j}<Hi{(m~kjZGG zoQD+XY6@Dt#Xadg|51BOQAHX}joZ6C|MWEjv92<htB<G+QtgmwmsH_$!@`GbST<rd zOj+l~3-l*c$$H~u)50iVPO^xs{hR0%=4H#GA|e*bMkI;s<g`DOh2=pH{7()8*)VLq zqSCc>XOOetG}9NX2pa-PfaLfZFpz$KR|nA0(o-5Mddldc8fV$#hdwFYdZm{OFhZjW zj+~(S#=F1W$DaZOB7+Uz#3;JD!bxt0i;=3VKD*~VGLcN00v@rM8BC4X9#kX~rc)r= z`h%$ZI4H)>UiS@32ck9t$20%&TQIE>+yD9J?X`dWpWH^4?(I1HfBmsN@_&5E8h326 z@Bi(8!C^5D$l-?Hxy)WdIdbuzbS;?+fBZx69=4r-|MRZ)`T9TnEw|)5iMpkXF3N;< z|H+Fs{-bU?^k4miRsKYsz3^ZE3tzox)icJWP#^f^Uo^of!)RkGo2(fE;yK>okJ^sz zq!Z9;52=>ksf+a~IPQ<bAqBWVQ0nV_@+SRQ^)SL@LdGq%>T6{0Kw3>Boc);R{tm5z zwWpv}imVN2^{6xrJ2&~MZQcLkchAs&WadT_lJV;UsQO}WjLNRx)*h@EpsGK`Np<xz ziI%j2)%zsja<aXqy${_nqm$%vQqNVNQ6H3=t_XcKt75H;HQ7<#3af%a)G~Q-(<oQa z=wi%OvKp3}xmL+KuO!KdG`w`)N$o$1B?e7wb>~RKj!wT{W~{s4#(`PSH4#m_IG^%B zGZFQwq!GQg5)qdCf#@coJkp&s8~Wh*R1^{aDXBJUV8RThFySyGaZQ51zE`6bDdsUM z)mT<5Rj3(PBi50dqp>EC`D=k%hx)3Fy)DqdBba{BhI}<~t4JT%lPB4*pY#A<*(`b4 zq$B5jQemapbNxEEqJeWI>XGg3X!9`Zaq$@OBSXngs&}OkgV7bB6R(`MMLK(lh#cV> zcz5cYegenMh+G=5Egub=i6RIZkmILsSRE&P-}{ZPTPsEtcYd7fgTMKzH9WQ5nTPNw zYp8Z2BN)>c2RTsqd1oHNO_qGO{e@?JH6bEWy{FX=oQ+^&qW;(xM}H6o()qbZd~k~( zm2z{T%v`9BqzZcRYp+=U4^G>jFFoh+H}Xd-WUXj>WsR4EgwYg6cDB9t+$6%1>U9{a zN!tLMfdG))fxUL9Ym2F_Fw1!W(S`B?=K<CRMUx4wp17op)8aDOF9sq}F4G_gDi=j@ z*^>_ag)qc@h$<DPNzJk=4q!MHajPzc5-z$zSS}|lS)DC1<^%IlJSn;mFNRSbKlQCJ z#(TVEN`5)1)hl21kqT~~3}KvyNWye+l!uYOhcO1rxDirL$~E)Y5erubAU?+l&v^_? z%6?Y3vxV`Acz$+toW2_`LZf~>_JjCSxQ{s{Rfl}g8AiHFRg_s6#T1QloWpQ~sKgF( zC&5wtZ5WQzszHBqbfj}w2pylBwU6%DV|5VMD_9zR4;5s&O}Zeeb2HX?7wq-x-8KY_ z2DG4_-m=505$RkY?U})Tn27dOHrA!#rTy#5MG2`4og?Y#>9tW*f;%zMEe4{~=3*>j z9{Rhf1BRPAQN`--F1X2lRs<aKtmYyiF*Xqr^}BgY$83J?nCr_&<8-s!+@`B#<*u?3 zK7$p2hAkb;T5oW03+0SNJRo~X)0YRW>2n|QxWn&WadQ)T8G7rowLi1p!$;q_YFj`3 zM2K_#npJWhLmEAky@OWGzK?7ro%p5CGHVSt$K8#wAm*oA4&_wWMXvGZuWSBMeMx*J zEv|d-*d=6=5e}L%9-J|*v$H_(y$tLHb#ih$I*GLeuN4cq(J_LZ5X&HD)~PQqSks=Z z{ujcv7m7LhotynH9ag`!6LDFvP9O%Wcy(Ap&|f-UE$#27)IBi7Qy;5t4f}BlR$A@1 zRblHYI)&-h$!LT##?y*u)8hwYG*2r-p_`sKlnE1)k#=A<o+f-SQgP~s$Yl-^>Kw@6 z(6FC!75*YZVOH~C6-d}<b<hd%e{?ej-uU|uFMZE0afYJ3rp~rEHgS4<23uFv=-s#2 z<?nvOe(vaFR*j16#l9Z<i9^S%^3*$aVPwcYf8q%{dF8Uh`s|TM>|g)zd-g@b=9q=_ zqK)>GhmPAHzxyT!6t7!@4ib{@M!9sY%70ss6Cm0sKYH}A8><uX3xq}|(G!g@!fr(r zWmTXW-FWHEyHiJ|yqO~N>M%f5@I#zihdH4ErcMeka8smAsLyfBW7o${*w!CAZe2h1 zsGa-G?^q3YQ)~a_;FmsT9gpp^cmB`cw|D;SA90v+)|#H&>0&OOFxEjZ8BdgxD58io z+GN*Eaq@hh?fSw8eP%m-e!v>P_`Hi47KUdsL}T>SHETMu&C~b1c*^hG)>Xlih%mN% z@Hm5-d&QmMs?LbUkC!(VISEVGO`&*V#G%fWz}y0HG^wHkssXrvTJuk=cO3=|8|iCK zx*-w0oS7L$DA#QPrY=Q%ql>FC4~zAzRTUZLhpA3;!gyaTOhh`<Rg?C}O&i+Cm04oG zNxXDeY)kcv*aoT#<?AbbKkr3pVwlEFEME+xe=gr7p5Wb1pNMsM_n%1x<z?jOKvXH0 zFI{1Cugr$I)lTM$CDv%=@|OqEiGegh(CZ+2+Dx40+SXELN8h@57Q>3HMmWL!4?g^H zdzZV+yZifGH1+?!@NN5_Prq$1efH;VZ)>}?aNto);+tpQwJuCpYd>TwVY7&|e(ihT zw10Btg1zyDU$8@Mo%Xe}oJQrK<VL!5bEN&ZlZQI8L|0K%6+3zCkotZrr@f&H<irvm z$O(qh<s>Cc0Xgsrh5;ZMIBexRyjHByHvP(9ckvRO*fp;7Vee-?WV0AClqQvCcycmP z^3*^6E6lVppTMPFk{`?MK)jV<aJ);d{p3IT`HV)-iNE)=KC6>h<e7i^H+;WAgZ{Dq z^^2}~B^ZbQ+9$l9pZT5dTK(=$_EJ9OjOdlW`|DQC0kw|fdop`RiZ2S}<xN*%rpz8A ziB>pXB#zq4Ng{3lp-3Z>#o^xi)N5}ak615hoLAJda!?1%%Vw=%p|7TMC=9Pqyux8g z`ZP$PmorGh#}(yUYrHh<hrpi^VO3xkXr4k&FfpiOxuuQS2hpk9mV?{dtP0*j?DV%k z@Da?86myz-$?7?WGFQE5pF8##E07xdSEs&dt*lD^)l1)TlM%oB@t?Aton7|jS6;No zw(qp9Ev@z$;&yUD&ZYid`@NHI*uQ@9JAN|zD?k2Igtyq2U;Y6n)-~%P=R~7sBkCnR zCgfMSZr2I7Q>RY*eGLuV2)AqJ4reBdFx6#dySEZy`5p*jyx~82*_Kg5tY@=Qn}OO$ zl$BeiQ%+nP*dNip#qil~7o$jJv5~m4mO8}hKr&x3fhIQMW0+LBCHrsLzs=>{x`;>n zEmEm%!T{nTYP#cWBuXqJi>OVyu@C<!rY3YIMSCT>FG1f&5I<>yQk$$YJ+BREnU<IZ zPg&R11wUdQ%EOrsmD;?2t1}Oo-PUD7%2#5M1#Fy6_YPYxrbV>5+3@6c$6Na-+SHUf zugW1a8QSQaBwR$Lk-JP(#)%t);4M)o8@X(VsxGu~KbDxtsDruHatDZqvB@e^-^~ZM zabHQR*Hb=GTua-FsYkW!wZz}(IO3aGm+ryY&_DD2DXIawfQzt1KsvYt=ABcgY#1@t z_QQv)v8lnAXDc}A15iI2NR@1E*CB3@Ojv|n8|E@5r<KW}t}XV}H(v3uWkej?8=CB6 z`?w#QQTux@zhJ+A=A=D$@Q7XNxnY0z4}RM|v-hC=)#v`4y>#IWCYLMhlSdzMUH#vB z;XC%`bqup{2ZBV_8#!dsV=?VtSM@3(NJ&hjJr5Si!IE$WNPrwy6Pe(Ak0=9uV1P+P zjW!@%gd@HIT;654uL?#WCs<k;h*^j^co+;Ugax}^nRvuexEO*k(JDh)HcFde#=ujU zzRA>tM<lK^bhKw6v5y#`RvtR{p-t6zr-E=1Ly@He5qH6mHjm)D32-rf@|KG@%jAUO zANaYCS|7&sq(xKR-smTVWn58~Tzw@6Y}Kor>LH$`kzY=6yc~&NVX?kc*2uIyt(UFR zO0lgZoHyJ#$c^lsYr#;N-s?Qqg4dtLxf?Z5u%+n&84*@BB9Oy-_S(R}fOU0rI1Z2n zo&}TM4II}DQy4iR<0%s$T0%<GYMi}`Pi)6rHqTeCUiN(p8A1HQqfgm|p6mA8ufKvd z-%{Jx)?ou&#VKv9&2{zG%;Cvt(o~g{*=HYr#@@TpZC`%tH5ZX>L)<k7gDSL4T{FT3 zB5p{nCP1`WJOa~?PAd{k3UuOKcx%>rE2lFC%UH|ZzI&6mxawCkZQTHvafC@NF}-O> zL-@^sU5WX0kE<|L6}z6yZX_yP1Ue@zVOm9ON~cvsCIy|3Wj9$BB-g<m+WAf*r+lXs zi(H1p;mO^M_0QbNy)Sr@UzJ(nvuNelg9+2hOMlTRo-F=GtG^0YSlEosihT=(IgCV1 z7~!q;DR^>fZy99Fb(%h8M{C-j8*lAz%1`|#K66uUNDs~h`DbqrYz>5-w-P<4EU}Z+ zU>#I{*$(qyb`mcPsA*GsaAKV6Xi+cZpY}1NX?6Nqw`*3(vTQqAS-K>ro;{4e{>+E5 zdRk%cu&VgOci*y~W5fJ^`{d8Kt^1eHp7sH#VJNZJFMi;8!Yk~xtC#G>?u%Ae!r`}- z_4h!8sJ&)TB9PWq84Ob9OhnlI4-B*Ixe{HKDYP;^tq>qgvY{0jre@H7qMf?*FbAtt zAz?P&28TKRd3nSz1q*3@gxd_-XI1QDX>(al<yG0eENIiIfFaC3BNj_aEU{$b1TT(* z*w9|Kgn(wlLOj7&HgYlTt;3W_NONbuS-f-LtP-3PXALj0zvx;4YHnjtUPHcr7Ukin z0d=$3jWbiz%;3>Sjfe--2{RR-1ZFXduJ(U?^A+w{p0Y{^h3-lC6E?*sCnv2LEv*XP zZ%mBYzx=_stO#+47>-P<EI?>6iemrvl^@u)>RK+NnzZh*QEP_T{PXXA-AW{S@wmmV z3M_3Vz2B{RiDg=Ml_xDJamkx+y<`3T1GaO=b~|$9kP|m)>XepB^)ZNDR)eow7bPZg z)nAEbP$$$XCiV#(#w<b<72iYm$kk3#j}jAC<2bP<vuu3gdaDHtGVxMj{zc`{AI{VA zB6Zi8*6S(rUD|kt;krMt>HqQ@R`YYeV4FYw2~5+(*g;)(fyu)P7po)UOoSW;6Pbn* zdZyX3L|DQvx^&tYmU${((sv5ROW<eYXMDk<@+NVVURTkot#Vv~N(v=Uk`reQFM=<o zF~(T9di6S%oH3V<qRGB}sKB#Q|I_Ha%_w-fz5g`UL%PgKck`eO1JT=qUP)?9B<jvQ z;tBF)L^V}xm`kQE(!uStekZe!J249pL&~PT5R!WwU20PYQ_#M~RnC6Mz`~}M7EIHJ zvk7y_pjVv~mvT+2L_vDlKqvgx>{g4MLaL*q-8%WJ<GyKkeAE7rL|JmHwXNzzGjfTr zG$B`f5s@O@SAq*fC9wsTrcnO%{{5)vzB(Elu;OzsW1i$Ey^OLfEX;+sL_H6xGRW=J zoGWsW(9M73Gm+Z?n3qO<MEgFvr$m#9i)d!n*K?A;f5;h#>QwzDIQc^dObr*>Ky@Et ztmfC(_)Sl_TcwHd6*u3n23M9F0xQ8K=HaU_kkbS*y7*1+Yw~-<P{uTlY5$sGrRw)~ z(&XbS7%EyCm+05GTe%Da3H6h%q@-nU1>qij7iQY;sD|)Qa+-9Kja}%TYh+>l3j4n$ zR))!Uv5RSD%euc@o8}dg|MP!}_!<;tz|dy9octxF%(|$tSycdkUU?9nOilPVZ1u}l zmZ#eIpG;n>fxbn?B9dBpM5h&ph=C64$wej-zo(yGUIpOs9WPa?za~#g9hgdh<sTn} zA1X~3Ep7hnU$A%fpRnU64!cDH$34M6)WIz(??EWb8gWSG0^YWTlBgfuNom7mq10~N zxMBT$gB(h2_XDb%xqn?Q(^vd${XfFZalB0=m4Bd90hj3aLJM%ptq0dM+z290oca-w zSF!4=MJyav<uS&spBcDoDDS%PCF}fpyjA)PE~HKS*HDU7l-PpVAZH+|tT02(mQ-PP z=I%6oHuu<=e}4aAKd13-52uM~RN>sunU6YdLX^7amd0kA;zqw=L{fu@we<ZXdoW^0 zS>9&fLuN{}(cZ$wx@M~7Fqa`tu~(D6t+v)KaY|ij#85;uwK3m2InG&-O-`J?ed(;# zaQ5U*OSbOxH%p*zG@C>XBV1pr6^P97tIV+tUHq1<&K#eTtGphUmzXB|3}Nv-C-HrJ zal9#bDF;SNx9!44QngbTg-0ixA2hrpZnyJPS=2vy;L;^cprwN3&5q{e`>h_pW@piw z(7-%;<bYMzRKrBttf4{1{(O2t{#hXF^$Vd?@^!;f&g;!{E%Ec=s%|y@$Jkf=)fc~O zk6^9hCy$;W?@$N%@mI@Zt?^b%zgqb1)Z^{oqBObvEOfAR-^!ds*Jk9^tKGhTuz53= zqcrKhhHQleU~Bv(2bXhu{=8@)=Oy*;>E4w0J^iY*+8}R6RCV^oHQUKO8avwBeGfz{ zi#GN<X25?OrqRg8_mgO1y?gD7y@fWF2)^Xt&tl3%`y`{p2_vwGH1qc4)}7pa&e;Mm zJk+t-S0_`vi|Do?_Z=a=&Ykp+j&Sk)lvUTkbLm`baw>X$$u;`<zs929G8@5HUCwa& z{?*ssu<hHo1qK4M^v!SW-y|!NLcpBBQXVN9D4yi&T*Z>J2O>CfB3@pc6!MX%t$?jY zOT}C9y-+}sW>uI;8pm0F@Sev+$Q<o5KUZhVtU6;_JyjOr9EfhHCkJs8ywd3vH(loV z&0*yKc(bYiDmEFU^GMf4+MkAzr1$(%;psfpKIQabwN-8gAwfFJ6o@r@m0tPPuoqZ^ zB8eKima!$9O>%*tg)(};`}(KY-b2m*y+O|KKqsErwI`TKk{OybWq)7S!L1ADD-cC{ z_uW%A%B4hY9c}jJn{V6Wk3UN1;g0Ovar8uWM0N6F?H@4EUGqhQgmC|seiGA3a%u#G zZW;pAUNVGu4pSs^FpTk;G3&t;iTq7;c3q}4F*9wGtUh!->l8%4pVh<!o9VAyI&U)5 z(utOioa|#gN@uvi_cL^mG4?(th%W}z2!onr)-lMcLkwgm>b`w2j!hgiygoc+#X8SG zc)%)+p@Y_V3-h$3gQ?6CBl$BSDl&bLxpPAaQe{q{tbE)gPVCH^Hg(!3f8xho<}VyI zgOWy;#9Q*mc=^D+Jm6a@Q6BN6@*C2CC*j^!BvSZlF!EvEi}wuPWvWlamntjxt5sB8 z5pQiezh9gfh@9GD5yPSRE|y*4H|a9@$yU5ei6Y;HzM#+uIX?4aKHTpN9q;E7cc1F( zvl_;*q#ReF7j4c|AMWyP1or8c_j4fXn4=@Z)`%g#Vs!OI;3Nm#yLYAD{jCrXfz)BH zxv^<`_bWfJn$~(ZM<HWkx^A)zHCp|ZV$Vp2!@?gkNydf~1u_sBC{j!6$*&^}j^8|g ziVKG36T^RDX1UPc<9i!A)FuL`eUevMc`$`$#Zh5z_sOjCf}I@TWHSS!sj}K;d7is* z-L6lL*_*xBe4|}jU4B^5JCHV@OYO|?0JA-295=3_-GixT?mHH55I&9>FMM^shPJes zO0^j+MngKyfESn{&HC!gmy95;gj!1;+8n;n|+cuthPtN^$JCphtbZ6}^WG}PQp z34fX?NW`aFmy6+g#=r38!T8PKmy|J6)&#xy{lUO?W3b4UDfGa6sNUrHfw%FV%_lFh zvVGq>MmBq?(#*Ux(r=Z}fl27cg~5J%Wa~B`3mPMTDypJjTj%z@%t`cCL_&SNeb%<r z=J#rB-MV$v<OM&Z0*k5i5_BvFU%h61)0e_*P(-pE0$Yo^ZGDB6H(*j5lgPS*p{A+Y zj_<8Oo?T<pMU^&RQepF4?zG6p^|A;%+u_KtxQ89n>J@Ad6QUK1n2h{Ej3c6+b;?c* zL87nN;3BM2NqrTjQ3kvYj4e6?%k+i-Ep!k3j7ZN-Pk@NL&JkDn7PG7`p<`8Y{cZW; ztW_^h+tm29y>$-eFgn5Cq|J`c*c=7~7sfFUKRJ&H4|PsfWz<g@R%N64=PcIi_c_xA zW_R~Bd;6Vt-Hgfp{d-*;6=ssCeToSZr;t;6&D?c{M0Mk{T&_-C)Bu%0YQIW}B>Jwf zo53gq_il$}@Mba)@MZ$xQ;(2y#5>N~?>0X70=_nJU8USt2!-48ZsKw8bG)0SDGWQ% zkRt12^ZXir)l5iB85>tehi!_<YYjI-O8d_TM_~}}^UzR3UPwBGuR!#&|G++LxKVGD z7$ek`s4~u{ijw##?NZ6p!8v}d1d3q*<?WSDi#3>`M1dI57)vvYHa#|B(+i_EIWmns zl~McRFV$NM_nS}6arOcx!ntrxfLGZp{+W^*{_1SDxYA}z#9*-7#i{XyBFt8Z$%vgm z?bN~jkG#YRva6VYH9W%^hQwZ4F)YDhmPoh2pT`iMa$*krm2!tb1vea4EKXY`cem@W zYH^$==T2<KD*SI64X|0Otz5Q?Ba8O${~wG2HX-i8T)6Bq>9V9s)FO-O6ER-Mfjsyx zuCx}nhG;c4HEf{Qy7(!ARK3T)7?%Hx-^GL@PBBbz<rfiFn?6V`;wYjjW+#!Ohb2hH z?|QypT-cLDL$F|(=);63J^9Xxth!7ftTyrR&f=r(&a!&YQj31b4Zu96+54!``7$Ij z-Q(Qjj;On)JbTk%i1~j1jWwcj${%}1@MiWvq=}Qh)lShvg5X>KFI_o@K#IWYn$=)p zqdXA@m2g>5SqV46wN+b36DqcIkao=~A=*nz6F&3Rrs2W@o5I|GKEG6AbIYZWY%!N= zm`t_J=np0{3mh?-xsq}iOr<RpGy7&ay2M`)jPXFWS&XUW5}u`E4&1X|zBCsY#Nw1y zEluK|hB?4AEHH|)Vr=&pO9hzOdIhS#%u0Oa!m|iQX2h(lC`O}e$r|<)v2m{zOCZQj zloS85PQKlaOSfTO`Z&Owni}ncA9%*UijcTCkCl$TOJ;s6CzV)D7Id0hPj2PRachB* zli)7Ds3uh{nvtuF5;^LSXxgbB-cRR1A`@4c7Um1@Q{35@4YlWcmR`Gh4-*L0ac=L; zt?P8XKdgT5Qz|F4;R<`6q7`zwtZtY+R;l!MVOQ@@m&<MS{Icgzmh{Xf5~lnF8`5pS z$@2o3#5&UQDCMTLa%Stk>CDOkt4oUHo!03uX*Ao^s>n}DBbHfO<dUML{;=1;%4T66 z^A$_%r!1GTf?<tN6qyXnrL+cd7Pky8PQn~u49ohPL8>+jW59fem;*SJmO(_5y_q6b zH^nd~Uxm@JR3~2kq!PkIvtQVg7C}_j5}P^85HjI>FWoFB?IQs#<)CC50ilwhyaJ`1 zZ-tP)$K_ao;2Ht~+BqdzL#l^8N`AxSzTZx5go%evqK{c$-+(L8^s|vH>4a_}%;O*r zdj+n<pN^!lu5)IWM~AF}@$Oa_c+N42y)ibz{X>OC`zwLHA45VP%k(XXN)7{AjcKH- zBDb5SzucxjQnmzeM9$|seDlvS4g{X9>f|rbNG;k$EJegM03>d4CZkPk#7#?!BXojr zZEdj_L^<L$pRH;YAq_FaOUy8wInYtkls13Pwdx4k@Jh+6%bUPgnT7j}o*p}M=B(*N z`tf5&z2j@;w#<qx4uU+W{;Kra1CiO2IqFO*yX7#zm`2}o)OZU4xesAkycfVVC@d70 zgnpoA)OX*vp)C5R_qFuz`%siMXQ{sJrc7w3oQ~=c)LVTtByVd5TQH(dpKDy`mdiN^ zYB>ria#UmDH1X4T1d}iX*Y5X3Sy<~%f0O(KI^wuqxLyGI$^=R;1E_{eeZP#!nCe|r zXMi(fvTT9e-|3Cw=jWj?<*)F9eg)nH|Fz&QMjo3XKmWC)Psb^UV}iTB6>^!+Ad$mB z3PrxxVHxDskg+N+GMXT9QED}{RxtQkf`%c*MmkKSm=#56S%r$I%<&r4Jhfbn&9a8f zAFwDL+#p$jytV=jH#vzrf(o&=mREPqI2AV$|9Cq5F_pe6EQ(K7hjeehWbl@f1kL8E z(!w(t9T~j&E~od0-NiOgyQ0{hEl$#HLkaJ+4`YQH@p3);Y0b?|m@(<MQSR;5d62s? zJ|3i22{nh>E~2WjIrcmeQL8)YuY$gH9cDVoO22{nk(euyM`YV!Exrvb@CJff3+4sm zteb&62uK$!NhVN?fx(4{s)&vEB43e=u=42O{)SQU6j2+VGwf${a)*R21=30ck=gAs zkOGyWpgSGPfC#Pt{LCi^qh{AtRaO3{aLt&UfU@5t7YUEQtnwpmH7CkWoWwM;nLdaN zBo-r<P0xUT7H_Wu!rw1W?JO6|ys}&>d$#;5zu!DW^`$%nfA=0P-C|X`XAd_?vcE>J za@biu4EaoDwO+q4S#O%P#J?lBUcJjO3N)^Cy#uSR8P3~iD3nnrR|p?wBVE^9vj)lF zpT_Hs@?T?}sEJcmpTXmH^1fLbeY=%gHv_p9!2A0hVj<?i7JKW_zi(qVUgsvc|7@)X z{|-0NaT6S?kdX^tVe&T4ZF8SvBx05XO{<ZMe_%_~ob@QZ116GJ@C{=gd2sVzqiAMi zWYiB-R$)Q4wFSeF5Q3=05D8Cy+V~y`2Z^Y^fO$HN!%D(qn*03}meB-D)W8x>4?5m= zQg13-rmYe{IprlRO;~O>FEJ2lVG7#Hljye#^}$Z3{-nB<i0aztsHT*Tu=<!>DRnYB zKWlwxW9?{e^{}=6#CBV2{D&qURkLme63EMgTf}8lY#Vm}MXPM)wE6j$t*GInoITlM zXTJUStcmd2uIIUym1|JZ>Avv&FWSxz{iYQ+J!NBkFIauk0SY$H-#Uk3fl3jC0>O8! z;-)!4fA0K6+r(i|XCQ0}1@k1FT1IBB!BNPGFGzVnaik6_voA~7GSR*BUIw0;iOQ`8 zqY&J?9VWbsz+3prJiiWY>co%2<uqtjrqyTbA>PCEt1_uPDp%}X>1Jj9kc8iP@6#$a z>vC5cAzXPC?o-)x50Q_$)du<$BC6{!3GD-FPf0F3!@l5kEK?|CttIz1qmjI2lt;S3 z9Qwoblh>~()VdkS16y3F>(2LE-PWJQF4UyWUHZP8I?;hYpP{1iE8~e(jXUk?8~=tG z#gc7)<eyk=(`M_x@GZ2rWb-GxEL~SQ3-qSY_0|RDwj#$4sXdTt#8~AVbduAafK+cq za1<xT%g-dvj!JZI2p!zjVWrYb0o2#^T~4r8gOLyOUc5)VUA-7YrB<C**-hhpFYvh+ zc|@Wvm1{A~;Ao^w|C2|5ci#IRq_$29dRHHz#)`3hH)%I8WmKN*e<)M!b?AFJ{p<=B zJEk$ARE4z-nLE+9n>md?DW^zLMSoGee6utU)3<dCh;Lq9_o?VGkL87Nt7v${>b5=a zr`Id%cUt?-r)*(@3#R%{+1AJYu2nbh#Q5GMQ|@{zuc+Y;iPvpv_=+`jJr3ft3Gy3L z!i|Blw)zyYR7Y)Ss1J9c#F>sb0PbeQAbyMZCP|!m#I%YN<2k?w;U|_&gWE@cEI~l- zfx~wL>MT>H*ho1r@0@AmfGhBl%q5a9x%FKj`a=~IOVi6`TI1N%lUX9IJYu-Um^RY8 z$46|GJA|B3-=xaJ1gF@}q7MD5-~YD#)~heGe=_akG)`_FjtYu35V1|Y<9*;(AZn8o ziV^FZKeaQCHr3+%m<^o&mQ77fTTNT3-y2<2xdYo=)z*9R-&yP4pS9WPi`KI9<JQpB zZoO~(?^eI%BUV;Xi<o8>5e^k1C9Vx{H|bj&06hyLbktzVq`Uh%=C?a+$Bu0o5e`d- zj7n}cRo18UI@~F>UHN6w1k(VSGzyb#uf?L(#b8-z_s$pbUSM{oS)I-XfvT^fe8woe zJv=Rnxp(;8jhs{-t+;}Tn*1CzYSin(2uc&b{FrNbSN(>Os3*RJX(>F2bUgUM{fX$W z0Yi^U`RFlrnFEA=2soia(WH;cU&^XP*F+3rt)sJU^%Lp7l1Jn7{6N3`^B;c4#-=B1 z67_gl4*yF}JdJ&=yL-dw8j8G*D53pBg0w$`teb(X1hEb-m(D`~06+jqL_t(sZab<L zO3Hb)+*wM>cGgUvO^^PzO^%=Cbo;!G4fopg;E$|*$FtUT^cQSlZpwx(e$~p#>#e5l zXRP)3KSUHTW7kjqCMU4lfiJPZy4e?L?!VKf=RBqt=FuK;=hYR4dLRacadd(pqTqyq z8jgOi>KGpC{bq0qL%(~Wj!S~8EHwwbg}?Gl@J_zpJuL1m<WRO)#{9fh@Yr`ld*#Pi z>$`|$P!$#&sj?<}V7!${yvc48QwrX0CBV6Ljw||<^3G2di?iZGe#F%Kdg4;C+W(l~ z8ixzRgMNTekR+n2LuJ>mz=rrstTnedXXi1jczDz1m3Vp@ovSLbAuRa*<{PhI>3hPj zm}uZyiSJ*%U<W%k*#~#+p%J49GKKR);f;+EkX<(eSx>v%PJI-Dzs%`zj7rhS;fzCo ztC%W`{-k{c6TwDS1r~oRt2f!g@Jm+8$@GTCb{jtRt2Vb(YcrEKIBAaf3L91f@BA`W zd26whJHV{2!D{Ood^4F$0(gy9I&*-}Grnh@n%U-7W=I%*W6E^c-SEemVQXuPedvSF zdKMa#+5^#khR>XswXWt=0^zFt0}Wk&GMMsBnWXm@R)cjf!(+{BKR_i2re)&km4J!r z;X%XuPU=Y44$Eo9$XsC+r`8N@x=Mtb2CKj5;NUd(%T#a+-^j>_sc*@;ffOs=>A7w@ z+uN-HtJY#H-q(Db+!SoVk4h`itB>CpBiXZz{n~>=kz$M$Pr%?}k67_}ML-Vh%-3S; z9UsG<-7qTz7$iU!pec`T+Q+$&QG31TyfYA;PJg%ehCRRcfYtdeh1xgO>O~|%%%hll ziWcm5-+tZB4fU89hpc}~O}>h9eD%yp+uzaozPVdub;^>d*j&%rn<+Ql?Y)s3jaXiP zfb$w7wlIB##!8IIaR^Xit0I{_S>~iU=Qx(JVO3nlMOgeR;v9%Jx|WwGQO~V`X>cuN z{c%<rTunLK#{__DZ<l6mnbk<R103y&#pD2@cL&MVb<nVa=YlgYogE4J@s91Sa0pR2 z-d^c8I#oO|F2(`U>jJOn^Acm_r&<w^AL0JK3q1|oKXan8cUBL98E|Fv<dmH}dD<Dr zwQJYy;KBWFCr{(*tEb<y+0$>^PaisNN4hrq*oh*wNSI@DM82Z;e1Bjbx}JL0-t4~O z&n-<Ywim155)~~=B$+Bvx^!uNA~oA^2sWAc<#dE}%=kg8)1WY-2~)&Nb$5#UfhIUW z*j`zMA;mdss;afBh0WH0wTg<e%fvvfncGWG5B1xr-X42m+fIOn)vv4jBDR|4Sim2i ze9OLn<$^VqRq|ELJjAIkue5H=p}ctUoPGMpaYsmHl)?&;!h5Q&LP+vUxT59$W|9#e z%93CAo~QuqLT!=(U#QyrW8M!4t($?Y6?R@$YkpNFg*@m)i=$TE_2X7t(T-^9BKL`G z_vIlyhC_gjwm3UN932R3wE4+vR$AExVMj*HGLywNbv+A1!Se1LmNf@{U`;zd0jvg_ z8ahwd2!{-3t)#pTIK#kb^*t0JDskBI!W8D^JAiu~xGgq61^ntQ#2xbY*^yI-%z8X- zY*eL<E;M$0ySvXY@Qdt~S6=m*_)||lj+|WTxAV*#(b$1m#=)JBi8_+(kcs)|+{mJy zrP7DjaG_*G2x_DGDev!lz#F?~;H!H~gg3S}6Zv((O=ViG-1isz+sj>T;igP78d!ou z1A1rEkGGfuk8l36uAe1tBjkz&tUJ#l($Tph*;$LOjtjcpV+Q`KKm4x!*tXq>WA@rM zu0@aw{Y<_vg5^^?WnAJ9djx1aaX-#)y!J!;ZudE>Wnw2S$;Y@p_W3;rZ3kzWG;3eo zg?&0rdZgtvjat4>97#aeb@7u-+zd=iB2F6jek{@3j+Qpt4s3~;#H6&ZqzTsm`x-A^ zy=3*^Py!=ZLQ1if@m^XnXZ2h!(O%hV!_b=&Ca`5i^Y+cNDCTg5wl1nuJ`=MG)-&F3 z-#T~3-r&mZI$+AuOSzbeF8_j4DbIRVa$n<Kql4UjDrUI|!_k!$S*^#U#H5YqxWwdQ zJ?emO=+mjX;iH(M`bUhXIP$B?)f(}eQYlQ|0t5jMVV+MCpU0{$!c>HHGmurGZqNr6 z)}2=xc4ug~$#HHUWLe$1>v=ZB>DZH;9%uDYT*Eq^crsB^-h7CAv6~S|jj~#qqD~OQ zR8-?f{58)-PCc(dV7O<5j#kEbk8(E7=O%k$N-dmFpMiO>WG}0N`LHUH4JrPK5mnZ0 zCk_ogKMAuz3^sPns++dcX-i>5r>v&76C75`GgS^%^u2VlrW`~9phRzwUw`U6s}WLl zB*}jjPaQ~pe+PRn0}+%y!o8Q}xmjKjZ;1@t&meRh^^!QfKWKPI+-~Qoc92v1g#9{y z(+@88I6cFgd)Dz2`-tkStE<y3Ghe=Zg)5Sq9g1e`I+<O8h^LCq^2g`jvzM-2v5)WG zZ_n=9!<Eyz!4yK4tYjTs^(n`VPxw^^wVCeL_^mg7Nc!`(xw6I?zX<Vnxk2>J-s|>6 z*H#F06RVM+;E^tdN;o~gfW4|oG@>Tanwqn5Rx)$stD4cQUy};024s?b9wm@DEO6^% zQ+XAPZ;w5*W4CSL+U_#9rfv4(rE_*=eAt>1IZez;dQonjHJx^H@U*p*H{15Qt#*B? z2UXs3zhvs%P_O-KnCRj5F3K`%S6NwH!~mlvZMCwWC4|92N*)?lA_h~eZd9Hrw7mY{ z<Qw)^pZ=gVA_`m*Zi+%2KI4)aqn<-c3P5nGqcJw}m8bUyfLC*3zMehMQs`iC<St+& zQ%X<mfHQA|sxO7HEn1hv3b^vN(m50l&iWn%1|r;XUL1ZjJAs4|qK)xto4EcxD`|QH zVs18g>4$WTVw;&@<}a}lm)tjPc?!*{37Z<Z%)J|(>~jn-qbRcWT_3UuWRU$AzV2F9 zT9gc5`HoFbvf8NH?2Kq;qSq>FT47R6R$bp|gJ-`-19E{3%w>kdhFW@-R@7S=E0LLr zA>d#(e&RY8VC@F>C0m{^vr0OM<DZnnU--#;jlp;28D<;HejmCr(5y<!dhH9y-E1Eq z;whq`jZ+P7btb7XM)yE6kOaBFAQ*7Mm%$WI4(qeNh3~N>5BD=NkQHU}rcz60+w68r z>I9yC)4|o&>czpTf%-T^N#J#d4q1snHbS@-U?~6T<m>kGwafP59eeDtZ9A-y^GKTQ zhfxrS6fX($D24dX+3&phn!VJ0(V8LXV++$X9pj$<S6|8g4pN2x@7z12;Nmsf(3K<v zAms#IMh(^8CH%RcTw^T|<lpL93Cyr!*j3YRPj?;TmcefOFQ?zI7p`7pe`B*9>gclT z?DKr%;u%&NT6u6~ge};1Rv$7Jd1b7}rYmRdVDn*XLV7U<!x96pB5pSf<IG^6=TlCY zZZ8z$(Oyw-^vk44{K1RLQbU}Reb?<j{OCpd>0^&tmtVK763H=fC5{-NuGyZUu4Z7C zLoiF-QF4W=yf5)5Z7@HFLY*}ua@$(pWP4jXY&ZK=x|+KRyLfRdNW)TRSEiYSivb14 zwG-^&G|*PXtg4tbJMC2?N1T(0$s?926-uEZ%SwgbV{cNyQlG8h#=@ZeAtFdcB1&37 zOf-4n-yy2dCa+|d>c|yN9K}G!uMFDM!~herDO((ojVor(6-_XM5gQx2iYRJ`8w0DX z64~X_#Cuk@j7VqnG8<ds(rj=|aK&tCy-nTV(yEDT9K@?cWmOwvtZ-l^OS3GGhl7eQ zEQ|08F5P+)qFe#Ps>1|5=uqQ&ieATRR<WZ0Zr7*=y>RFs7zF1cYiVu{vy-GF$L|I4 zP#n@KPW)56m?nnB_ku9)M__`tCLG=;5*#9)dcNOWEE|neuxMT-1;4C6Fz#yvRuTHR zpdc{x*?cX#iXw(0QcV!6Ud~7S-*3EZ-(v-F0MX202y+L7v6h)}C1N4<PyO|B%KOXj z1Oi?Q!CheW{zw}V0j^$v6#$P(8N^`DChhHk)4nHB#l>=b^gfv`Nvs9UpfgoMJaY1X zBAgT4^>eU!n;mG{k0@!z4z}$fc9H$4=al{6@&)?__#&~jIw_ifpZby}Pn&Bt+3?&T zE0`JUpB}W`%s{u)Znn2(-i2sFOZX?Ptf~r;(7?D@dnL>xU>2AtqzRaUTMD5TeG>z& zMHKkjjVpGEn+~<w>VTGLB{j=EFH__>%Kanbh!BTor>TQk@K|6)#l1w}C^cZ+Q4(0r zl5g@~g_(Wt>UlQyE3K=h-rBh|uR`_CKb>nC<m`&hp~x&fK^`u~qZQO+TX!JVYlc~? zEI|~OuIHQi?<)gQqqA7B8SaVw^0y~!@3t~)ZYc4;hME#*C{j<Ys@&|IM@JM?`C1x= zCZbcZab8we2jOgV;;F()J7i(zEGl^A>;bg<ibOLUUHrsXYOmTKVL-C!PJGECt6RE~ znKwu!qcL`TRk~J`GMBNm+{7vOMVo=SbdS#4(CDHKjhVf7ncD~H{K_ffhxeYjH{X1V zTM6r|<w+O_6{S6ZaBe{J#llW_YFVwNw(J1OG)Oc7A5+|H4<*LA*H7W?vs20_LLqZ2 zOLQhpJfeF)?ty6ap|)Dt!$hEC$?yEBeji;V&RQWHXxd|=T>3UNGYASLF5?%0tbnL# zR(=D6gXf0_5O1AkW?XHXYq@E(x*9PH_wz8DKH1-c=xKtu#q8&l+B2ITv8v))4(RnG zRbXs!k=r!oYpX)5u<KbnH*(HSAzdipnq}=Lq((mI2}iZJ$fR7D2+boBT3}39FczO} zKMLXB0-THX!~S>eaTv&njzccqdT;QOb+GrM6+<-LGtU@kt7*1s_D;`^UVvb8$sNpN zVCDv85u6KN|Dk@+SR?*CN<7M&^?M-f&Lp`0n($>9WDPd<s<`ZK3^BOGYGRavTU%Og zQ!t9JoOurzV#c9FDvKDin1#ls{B_iC0}Mf>^}pCCysKU+sC%W;3ggPifSn)eqppI} z3N6BlHKi|oXqV~UlW$%+Yfo+7Y9C+)sr@W5{53fcS!2vBI3d50PRqekZV&u7Uz@kf z6Z6)_a&b?~vhC_9vK^a>ZF75xb+!~+OGB}BHnK#l(p9lEmTKD_8{Sl=Z#e0hbf_|k zo@kVy;t(-Ts#Nikg1CkiRqvNDk(Rb+AZAOcLv#yV61B)Ryo2LQcBy~SdIp#5S|9$N zWxK?7%;ixop<z#CcVm&YVf8w~j=A3PGmB0^P;szp^E~=pjhBuff)m3siB)wenEEbt zSP=+U{Uwb$ox;6tDUhr8ChrcX01VZA?4U~LJz5XaMHl15XC^!qKL<WZb6~~<dIDE? zDOahs25mat^6*Y4aeo$_%%^l7F}*%Uf6g<hyqHGuyu9+HU4py5DZO0utNd~iMob^$ z>6^z%>QCQe9F<v01Gz51%MIJuH*M5bp;`2F=i}VaH)y9J?tRmvR>`VCxz9tgbccor zkZ_%zn}%UbKpaD9HDj)2&!L3zB@L&iH$CQ}n(yCu(MD#+z0XZ0`pNZWb#|n6kL_>T zXI+S<PqN>5V*(XhRQW|vv-KDD_~sC4GYy2`mRM_by)~j(v$K91_>|d;H(s-D#MSj^ zYQElg-ut;T5%M~PC5rk|t$ySXF|oqxs@`l95c@u<_-oa`zboU{S(R*q8FkrNm{ApY zOmX<QQR1VTJusjJRxCrT7{+aeeN++jtyOK-TG3(c)vc}|Fg-tQy;FlQ;6dx19wy!# zlTl8%Lxp|)g+{6J6EX_-9>7CBQ7#3E#ReBJmS1(Px3C)LDn9mLShM9g)tBa0o=Sa@ zG-5mwyJ-UO0$O9=xO~Arg#yFpPCN!4T8(A<Z4R*1%eomzD(!}NHRy}E1@PeJayvxF z(hO49+Md3#XfK>wV&iHNEf7@e%BSpC{#==LwWGRQO($)j@bzq-S0g8_g!B7FQDQ7% zVdsNQ6^<NJ6`yvhKaYkd4p<kNaXaF|G_#i(Hr*y!s*f+&{5Ug=$we!hrIIg~*nj(C zg>A1bwwlUPYp5=^+NxqZQ5P7Rq+;B>yYbFj{pMg*Uadald=Err3*9AC#vBL<%)F{e zQqa*<NjN>@Uwrou{*v*zC+6p$lJpsXNz@o8J|l#fUrzkIa%bX@D1$fo1b-IabpGiy zF|V6FWBm9m1S=o+beux43&P4NXtuu7={=vM4sv0nV`crShgfB4e>TSYeLjvnnFxy6 z8+|8jhJDCG&HL=bTb{LRlb7vf#6d-<z?Dhl%fEPYv-Z<!2@~#`lg+a#m_s#wM}3z) z+J4OXA*L_(yeZ0u&LpR^cphl!bb0-?@j-jJ_igK_?zR)HNA0POr|fdoB|F2aKpIz- zTw5*NW)M+Hi*OUGhAuX}YdO<Z!E9gWm`3M@fqxot(1ca9(oj!nU^Vb+?^&k_Pi;O1 zLoBg(1}}4u3=>(1cU^fktDiO|vzL6OA+e4$ug2ykz;^(AHnB3fXjAOd>}>3^!!3u1 zN2w|Qj^drJWPs3{8Gku@9d$N2KgH(y6-4G!FtsLYK`Cfk{TADeSZV<+&_z}$TH#DA zOd@6)LR>cDD;W{@;M5DWLQ=ghgQHd?qH&RhYR{N`VOBQfthkyn(KIkU&dNX&!Z<cU zZ*WM!kfcF=O_bGN)IN2rhUO8M>CB7rDutP)Mp-~5`Azq&h-FTMo4v#idb2p|{zd^r zcvT$1FQZYL%S)}b!R#RKb1Z%55p%V$!B)?6att|P_q2_XVu{05MchYT3Q;dZ>{VG` zW)*dTv6NR~U{6=nO30Zw>W>Y1RuwRWc~%v3FsR5V7Vs}mvH!t}v;@W@E-aB$4V7D6 z!^V75sXel%+_qI{>FWL72bJT_dp4Jt+r4>eAgL2vxpLLjT6gc-=}aW<4Tz!0c?Y7- zf)lpEuT`L6c-`m+7nzX4<xjt>pbm>~P8`TPq)*@_@A?*TbD*pIc$@$<q7*7q;8K+u z<HeyPyd!S<CYQ!jVS0})mS1=kauG(vTXCX4K4ZFk7%^?;dn^wD`WE9ye~h1o>%Bh@ zwHRMb<??y0xV)%&5o5;5^X6akBCql)+`_r5u<@$Bfocfw8@(5OUtlMM@L<ax``ETd z`yq@#Hlivy@Eck}<(B-PYo?i<GvXl3Z1gr9wXV7jX7pF>N4@VtXv6-<0(t$VqmSE@ z+jpX2#3uV&uiFpVWFLVTe(mb_?O@Xmn9FYKM4{!>$Qjb35e0MFQP+uv)HYvnOrc3R zFfAf{5pmIojq?r}1!ssOVy!VYk|k=ZL*nsz-#Hf#?Qc4WitZ-6Fec`7)wWf!N5URx z_rwjyE%Y@Bol5M+^ffzPbHa8sa1gK(6<#*lyT@<X>Cw|p#A{1yt-h?$I%=9&jf~mb zL#J(oRf!H3GQ}j1>oBZR_KX@lUOh($YEVR|D6O`J@>bhjzYCM`!*&h^)icSR?B4mq zK2r@EqIGDXj&LMll5&;t&(F(H$CEIkuG%I$+H%<H+33GAcG+GZcn_(JL}2PKVkAt= zVYad)(1<uuOhn>3H(|s#Ni4K~(#Xm%C^5xW44ot0pE7<t>t-OiU{~pRw;3D}QywZb z<?||(=9LumYAVaDiB(5UO&|&``)0Z`kBDi0f(jX4v~iZDoDM-A&MJeWpJgzUz*y+0 zz?>VOx5Y`gIe$fSaBnJEi_~(aEY&Q%wUQ}iWud_nrDPfix)NGpQ<yrRLwdj=_Z$~- z&k4N8FXQ7AnH3mSKnDsNVi}^Uz>Eui5h#^Yan#A2;4%ZzicB*UefQN_^6tq=Dq^P9 z-aLa+f4U8^1ZJzakvQf*Gg%k#DDML3<%W^Y<LQ~;?f3~FI*ayha`6u3kJ+Wu#;`)q zh_}8)e|*OH`R_42KJ&|yj=!ouzYY>$F}_3!bVI~flDUWWi}~rfVSNzL>gziHF~RwW z`g+8{5Izx~C%5gecSd^ATwg}T^#Yb_2keQCWA@yZr+syDew6c4E{0LR5(6qi9k$7K zH|*e4HhYK6++XW^+b$4K%tmp>nb7^><4@bu$l#?7RE5IJXAz_HV-@$(aKBX{l6i0F zqFsTgA7V57@eYW1{UCM0;b8VEhGvFYRlEU#AMiZ@5kRdPDiY?T*?B`{t^M@j19lY+ zrXQezrTvFjd(N_n&7JR!yX;8I5m(i%;u5;PseTSNPGdZ=+*ed0zfzIyhdGVTj@sib zPul20$n)A{5BabfBIYEbDfB*JD9OYsS=CggE~^tw>zf)O9(zb?L&`7aB+*|xE1$iM zyIE~LiMX!U250+WG$<mllBvMThBUn95Rdh6{Ggk2X~Q#Pj@RRD2W@NZcEo_g_U_<& zwwHaX`ieSd>JzLgoR%@s-d@*b`<r*WVuMz3Gt7e3PbIEi620YbR|5=$6;9|~*&Y?% z)4eVD*Udn(AXfsrn<0#yP~RdP6qGWvsjW>s!pp;O(m>N7^Ls5|4D)Ps&ksW2`WI}P z3S_0r9mj~ipqOQF{t{LwBAzbxN_4Tk46(LSPanhy4tKMhw*y-pMED&(to2%82F2_N zL{lbl|Dq7=SVR{ksx#A(wGo79G!UdDf(|6+I}z<`17m)Os*?N28|!M=tD*zKSnjr? zxQ?KgjYgEpvhSy*vR0jVdG0nc_XxgPV0vcGt_@B=z~^n}&al}E?Q)k?$sJ=OqN0_@ z)vMR+#*G{H^wUo|Oc~ld(Aj0jdp6n2-Iq{nt%hjM*f+XguqWG(*pr=)SSzcHF;*f~ z%&M!{Tc}4RUe6JT-CF}Et!KL5MLv}f=Th2j5KW^m9C_59+OeAnfL1CvE`DpOs<BTV zJZk^!rSE#)ia&=s>yP^0vg?>65}}=A=KaEr_kh6xKPH&kn3l*%w86(KDfKL8)%5d^ zJ#9xeZNZ@7EHm$AU)@LzS$MtF`#P(mW;@Wh$L~PDf##>gLZT`z2BKmC=`;FklijSP zW?-J@Tq&Ri!Y-31`d;M>2M^BkS6~Vks21?R2Rz-11-OOb1@UGAr+t>|Q@ysWc9ZRF z*lumrZLab>F+XZOgij*oYU5CITUCc`=lckZvm9;EYE~zwhELlWlns<`A6jEibR4%2 zZ+;q0ws%|{wWA)!0ka*P>9@1P7lny4jtV9QVzx6(0*7h0qOx{-e7TV@F_ByJC_b;7 zfrJ8k9X&WdAQjq54Wtcm7z76jtC<yZr5dWdY*taJ#Z<H{AY-iQuw@-KM7Nq9d1pGs zXnm-|Jdkb;X!(qhrN8Pyr<LhR*`jDf-NJ<^*?3uBp@e9dFoThH)(p$BnVDHDs;Psp zO`?BZYPFnXUgBFkhf)Z_9fu_dW{Y`qjPE$V2L!<IICtGJ^Pa_4)eLnk(L*Gb8;jzS zwYRrgZ*QLspdP+y6ZYkpFzC?Q2Y2qZm#=sG1g;7~GsBAfwf=LyztLH>1@SXtVOAQl zK0C}N`<3}?h-I#T-XcV-8vN&d;x<R){n+;1_K|%D*+Y?>Uz0h_gu{yR@TM;ND0zJs zEg{{-QO>NUx~S5wqqeWrKq>FD<e?4i3RWpP@hy>AC94aaPKV;#EU<p|zzJs_I^<W) zEdJAnkGom+Ni?7YQv_6-=0E89ku$CZ5GiAI1Qx(W{Dp?!A}ga>&a4d1j3D0XL97jP z<h`GBA?;|IY1MTN4YX#&KxM!bqtYIb;Lm8q$fUOd(b@bmhn8U$+PszsX#u8LfvJ?` zB8j<_Z-rfB^>LNeR)Y>ZBX%0)V53BRQV6)gA?lj)OST2^Stn=Mu<;86e8=lqD=uBb zt3!t0?0yMlhr{-vtxqBboO5P#ZuGn}DKS~CCUqW1+_nO^i!kjm#`N}<s#{V)QI<H` z*3CdRwv*lkXmsc$D!KNVFW92YD8K#{D?<;w`J+E?rI>J^AL9_tpZuCtZaZNOkAKvP z=pYm4-m-~T|Byq2QlZMq%<lqrcLk&fh!{wB_ce(5j2%97Fs#I+lDmAX8wpvSvs!Vp z=#<^fmY|-QW6Fd9B=~ZA_75?L`o~xb)2Z1MokT34JJ}^8zt+>o>IFpyHZ2>g%dD{; z2Cj6Ty6{h60-+2s#;wx?ymjlM%I{A^of@3NF@(v89XThsN7xV3GtC@SuI75~v6;DK z&9$7DfC$W}ywrQXyH)+=$1n7*yzA?c)7RGcXVs<DL=SXsvS&7L$MnZ}h$x%Wgcm_z zU+X=?#_?s^niK163@ffS)r;s)B2rB4{9J`*w_+|W5MB}UDkeON8#OBf6A5A?iOjxp z`MirLC0)=VKka>}&*)MuZ7OTiS1X~|%uc)s*WtOHm@ave>kY&V94`5EH8k2scI~rY zd+kL|nPZ&-BCZ<LDrR^RixZjpEb_y5BJ2V_4O37&iL9jVKEmH8_a63B_!67F)_vK& zeEJ<Lfsu)cs7%xR1*bY;!kV~gG`Qlxm|e<-%i6E<P#q3qf<@w_O3t3iX>3-&V6+lD zHF6eF*%|6VwaP!3f>sRL9}zCnO8vq0w{6>a9})tzztAXS*Tl8h1WRa1MCT5YrxW&) z=16+89;bEM!{b(tlU&^CRYeS{#*hC^YyH^gY_WN>ja~U;tN+l?SWyew6Tkf{w%piZ zH6Q+xRX_T?ja<88m%jNsR{Q94Hs7?<W~WA(0<9F)<Yw~VzEyIvw57Qzg<w))ab%^w z1TP{h7dM4?*=Xv%8Z-R*UlN<ntg{tYZ}eG3ZG$bad>@>c!(LJyM684Zonv<P>^U2q zW@d%lwttk<vJf~Y;ts;024Eov_iJG1i^wu*GDxM<k}QK8;oj%LnXvR<CQg!L_L0Df zup_KYgaAkBV;#h22BxPK9JwT3c**;XaTE=IgsJjJe-5l{aurMJ$zC_a5dp2NK=e~t z;r6N&(-}-Ei<r7VQ2cbur^+h0b#=9N<j6s*=c(0$!ZpL!4EAHJ8Y-D>t9^yOh?k3* zAnLQsxFy#YvC|>IN|=Y7GZPVf(xBa9UwY&z>%a=OM4_4X_L!;~;jrKg;A5;pMg&tC zQE!pN=^6ZS@)1fc0;*U`^zBa`IOdjv<HRC>U$V!y?XctRn_*;g4mS#ubnZfVgg@aS zZ-5*7fcVQO_<VBT5&P-mkJ;viX4?c)`XtQouRZoGMU#pzcIYT;I2aw$N4UaH{}SMt zyzsaSWzyJ`s7obDLhx%}Qe(Cn(NzVjF{w4{U3IJ4P)>@i`ecWRJ)Y}`rjW+a4r({S z(tb_&3x1__A8or97fYkK57!FhR^{`O72D9uU$J5i1<C}#T;(>KWQ8$w=0`R+Ak7Q2 z36`kc|K*=sMSZKaeekDH(;c_59yZo!_=+`F;#w+t!{Ve{tN>8&*o1H1+~r?2sCBNR zg5&Y}7EGQONJ!8O`$Uy!swuAaF3ORKs$<8!0}Utt1D;$tVnNM<N15?eL(J+?9iCpq z6!w+#R>f)B)=gV&f`d$REbaGg>kQ&FPr3S!nzeUy(mEQ#On3E|E5B4SdliuldpB9U zJtl1#%ds-$!x5rBJdK#JsYZuj&Cd3Y*bC=-?DLQ8y6Xjq{mLf+^bHLSsv5UwyINcA zry!ue{^rZJiPfhRLw%E<z9T}ZHWiV|I{G1E9v#{pr+@w;dlHA)Pmvv{m`^rtAhpU* zlZ)r}9^lk=H<Oi7U#)0$oOVu(2~gHSwr_TAYRY~Z=5eH}%k#{}(JG32J}Ro%V>!a6 zb1&buKdP0C$mr_M#}c0h5E1>vo<nX?R|=ksltE5aBQ3IK3{n0TcY&P3%t@`rVKR0U zM`cnyiDWBJ5qi}aY*?Rh!XWqsPj9~Rg2~Ffi9&>jn5h_4SS<-gnz3eKRKaMJCX_73 z68w;FcnY2l<`NdsAjT~nao5d2)&u{R2;5c#VW0{s<fufJvrAXMZ_6`(!8vm=2YII6 z`Xg(8>hsoc^nb94ZZt=}`s-GLjJCR^!%A5)mOvD%wjH(QD?c(W7B2|itNZ>JzEGi8 zgozPM&CXlj*d)cNw6UphUGFTjLlLAhs6bt1xm_Qguvf11*(VNdbAxj_@HIR+lOa|r z?i^{f6qoXW^xfz9D`mf9@Or;p8bW>x6FJgeZ%e3H%M?RnLmg*m5G|l8I5^H`DyNXk zU{1nE1EP%0c)^TBL(fb7BaX+D+dF))l!M=O7|O9NZHUPbF|u)7foit~+&s&84I2HE z&9iI6s5L@hC4xif;W+w$p^IqAe|-p@c<Q5(dt!R1k7fw5%C3Q|dN|uVZ0+^cR$o=& z^`%Wk5tt5`WEiladX=9DjRv!DRvgvGBywZ9_PT0TUOE`I#6Z-{GjtY}_1ee;vSsd} zq3ljD_$Jj(otsb@)SbPafvxfgKgGR4x^CL&Oy7w8_@V8N?;G8N*e}A)5qSg`JEix~ zBy3|Ju`Dq^jXs?ke{SCa>tpiumGh^p39+Th?F0#w0#+%aMtqq_pW^uo$Dcs#!=^cP zbu)^ke6>1h#Vp4cPds72!iKucddQZP6GS0`Q=5qR>nVeZGkpE{t^@WHhmSd-4XdPB zPhoa0Ms^TU++RHQxcwSN9c#%ep5_+v+1SCSwpW{9C;vac`=EX1*dy#oNb4`X!Uh-c z-P77`f9nI!+xO3(b(>o^SedIYsqNJlwGUHG-<v?hHo?B7>Ot4#h7}9lfpTeMUS(M( zjmq1KeXFLbYKNiyok`M-a6WDXv6}Ew*)_#e8+a>_&i@Jhq@Gk)a(b26PiYoZE<&X4 zJ51TMueKhyZU&Nv%X;#<^SIeoy$LJ`OBHttu)Hpz;+F<rv6e6VuGQ>5Y*+s1H*D;} zTUOh?-L`$|FWbPke#d%#<8RpRfADRq>e^)!?|uafaah--N*{J7f^?DDsu+lRr1m+~ zxvJ>&`ZhGq1|sht*|Qn{jCb&-w{_SJ2-Y=-u9n4;txMjjE+?6;29X$nw4DxZ*~A7W z7E!S!)`1<JdS;<LJw4nZ(PZ<@jn)V88=RQI7SRxUB5W$c1mr{*mA^D_v}r0L+z3H@ zem65kzRz>0W^5870iI`XV8D|2QaMz*AYLF2Y4oo6lfd26TxaL|M!{J*WIM?`_=#yM zVjto(>EK_U8iV+1W*cUIBQVTS7_8ul(U!7Al^nQ#4BKj{nJ(iI;t=O?foM%)!aFdu zV(YJ+ayTLsnsKV`kT&=nd}soDMlcuUp&7LZ$t3kCQyVIu>Q#(g@fALTB7$&L-E_e4 zw(sW}0m?BBuFvh=Y?H0B8Xac6D)GH`B1~eGI&uE_N1m`w_A<V8@hoRBICW0>MbOkX z6wCR8X3HYZJDc0=6Z?<Y@y#++NL})m%bZr0Br=gB7(V=4PkqRK4?9|y*{l`;loM=; z$m*E{)-v8Z>+0=z*H$~Wd8^}>&pcud%3Iy#xxM>2JXmRea`s&|)<>BjNfRvK7Rx}B z(Pmh~fPnwiLnrJ*d-nNCs1WRkuMA3liaS4^-MO2I%P8&3;YU`>>I3Csw)Bx1`n7H@ z>=_%wK;obqOjLhToMz5rY+^+((O4Vx+rY$D3JmJqBK#VAvT-%Z-xz<Rthh$dq8h@; zqBiX{#$-Fo8CNWH@{~lP7Fh953`)`jZTKrcF*21s&D^u2Di_$g8AxvOd;I35@}Jc+ zR>wj%KgZH^j@!kGYg^H}sz+;O*6L3@XKf$;jE%kaZ5zLI#+pC&1#9`pXKnoYWgC3y z_pPdNCu-<n6DvQ1^o%F}+g*RZMUnIK*Wl31eK#}sO629<(G$X|a)<!vzs`wh=AL=i zpwhA!!Z6Kdyn2!J|0M>}-4G(W5^>4yl!!zVgukn?mfP$2Mx33yb_F6!8&p*=Sm>nc zgu+J*NqOUS0-DBI1l8-8K;goxI}vc7Suuk36h4aUGbd*7a(a)9uADuf1qPN@9wO8d zxA|_N3adPr9V%_HHaLl+@|U*OJ3~}nT9L$jH1J}*ct+&yVEiTgC~t)cFQqSObL{<N zB#we7#;2$L6fP%1BYy(c-$e|Cx1#7vs23u~NPH0PqnOfB++3H1rSO;}H_rOs0>0Tc z$wJWTATW`SBMN$a`wr_HA7{15qyh1!R#;-VYWG^&r5(a9;#32%*6cslPZr+lKCdg< z?pW6r+kvg7?%`o4o|+Vi2#PR^xN0+Aer+hbby>CHih2t9IH6a4^8LvjyL>e=z)C>| z428Q^-RcAL5MgP1i6N*A+OtvZ7GfT;1P<H#kGVLjnHBp=7g}hi=_+k=8(F&BMtwv$ z>24Ge^w7Z+L-F+&oDLvLRF?hjSowrTxW)dar>Y?7rv6kf)&7d_uhBjd`(>T_XkgCi z9ww?0U8Zm0dAJxzwhXZ>JPD){pa$U&d1MJ{x+CBD4VN8PZ~mwaeEFYo01zVR+e#1@ zHInSywC}?jC~9`sPg;3pBPwv(?8{V7Dv$f@Em-bb<0K+4!Y2Lw^gwdrM4jo{(l_3C z(-}eqjAlw2C@_NEyLa2=%a{GT_EoBx{an0wnL}lhws-GtZmgTM{{8`LVdWuXjYC62 z&RmWiJ8I2X0$#u*OeM25Cy=UZ@=`~ZQ)iC;Sc2U55HHgT#8(-j(~?_6>HGyw>$2jh zWMGRCj5CWnaNvNAL&SPeJr&OT_wRGfG^K57YP56bFEBWZF;(7fqoboXMw)i6XFYcG zh!0w+Zwfy-5&dkg0q^v?;`n<Km?r!R5|}`I!-`1(3QM<x{7H6vVKt_5QkD=?Az>iP zr!Wm{X&^a_WRQn%ckfqs?TFy7bgHYsMD$H}fi$B`adQV@(|&=<9V`0g39?^3uSLK2 z;t;Eml}@$JAN?cVuW_q9^j+OjoAq_{|GLVKm0)v11UuBlT3{=wh&ideorR%Xy3G}) zcZslcg>c4sISSQ#CWd=rdc6paqzVjT|8~nC@=%}BYBKE#mn~wSib;m+W+3Upr$F5& zFWAtzm$>7jh|8XenB91f0GkqYsB6jsQ_)@OwKQZEvkAU1<3yBDv(?porC(j$w$0^- zVM8iul4N7-J{9bav-MR1jKgOmls(-kG-%|cQB})188MAoW;0rKXl7o{a<-wN!5SMI zeHLHF5?9PZS~-d@SYisYlq`QM8>(_TxTy3YPclh5OS;b_wd?V3^^>5Pi6*?sE-cH* zzlEFSgoDn#Xz+;%Y8Kbo*+IN8s}h3{gVDiC-EAR!wKCD^YTdf0GAW-p)AlEEVjX!I zh=8^vKm4T%6N4N<eM_8hj4lSpAcq@YVtk$s+QZWy(|+NYB*=JTF5#Juo%ZL(TEiRp zXjP}x+!$h=hK73DHg^>g`%`>I!g?#{G5)RM75c8UPVDjsUM4Pu7E4}F9-*xwBg`eF z8MrCWdSEM=;>Wg#&lI@KH_ut+@{Zss*Hn&tm;p|vqXc;A3>|bx6@SzHH9u;h_e`E- zvu*|wQ7Z)au7~Ah&LHRTOEJdJs&+kMbG?^rfx}G2oH||Rl&)&72!m^kgdmopakNpS z!s~l6CuYk~>0KD^wj!3Tnq~PQ&;cUB<zy-?c-M=xrVMh*ee)EGs!l7}`pJ_gQME*b z<pZv8S$uT>fgNM!t{6(&+Y>ZXl+zT4EwwTcToK;EK};|}z{GTPOQc*FRLiVVF7jy| z$a?DV6VnA)sSgFcn*Fke0TY?wFxV`NPq=ASl!3#nPxpBXS2_K<NQn0-<i#?-BBr@- zFJd<st-i<dM;J<XJ1*8h;Tm5F(etC;Zxw$D(->u_{kRwr{N1JMJC<Q(4(kii3RPl_ ztKBzH%RX->P8?>XhJphtq-d#HIA_|5jH5q;4uy&3QCQAUx)q}OE++taalMu@fD6Y_ z(j1qD7e5q&t8Wo@jK^~Y{;6;7&4ZQyx!`+VnvgBO1@g~HpDs%t48_wvnmdPc6L{&g zF^v-5D*pgI^Sf>avQGG!j5fp*E5&=2Afl`O%%_q2(V1ClSMNIECLW4eiRf>B7($4a zLTN)QNA%HIXOpi8RbAQXSmGpl5i{$ug~yOFNQRFZD_3hSj3L@0{=}Q#L@-Gl$x}1= zZAdBB4`dyc9;0sEy4f1XSzTyJdlPr3#4-&!5|MP+TK!tN$cZtn)!i=c%0o7u1_no* zI!G2QCsCS+q-5)N;&ffBHrU(h(CAx((@Ie7bgTN4=v7XufjJC;W*j2Jb&vc^;+39& z2U=6pldRBc5Lr%pB-PUlN()j>NKkRckoK>HmJLz7G$V=W6hnFDx2NL9IO%kXpC2A! z$M67CzuCC*r(x<{F2as!^W((tiW~Du`_p0B@WSQM_q5AToBk$$#3?^K;+U?th-V>~ zh2Z4I5BTcLQFV1nl$OajQkF~r759*>KvW6pWMQ~y2E;5BZG~y9b{5w)TgB#GoPd^A z3t|q`3(H!&ICO=KoRXH;HDX8+3!RtGSkr+=xM^@2v+YyVMp*J{^|2@$K3jKNMRU6i z6L0a-t5#Ll!iq(ke&ns#1?n+Xr4No5ghiA@EPY^tw`OmdK}tbFQDS`-E?Ah2>RYJw z`~qgbuly21^5JIlb01*SgmVSH-g<&m2u=u#U-EH@?=c@i(O$(U>byPuLA^Jo)i<5D z7(~-)8(Ljz@7UHVxr!g(^;*cOZdDeYtr^3-ix@}@D-=H+ww8D?j`BEn>ADrsw`*C6 z6mgEn5l#cV1AoYey`uIu8yOvU@ue!D0>ua^RRpJ6QSF6isGIPvx=Xt(-m9Y-<D}C? z*tub=zvaS+_~ph=#}Ur?xGMI_IJvOW-vf?HmF`KoF#KyKuPm%AoNSolW}U+20_;Ng zW?_Vwg?`r(CzM09un+`=MO<Rc5EOgEYN=L)uL^%f%nc48;|gY8<@|*MKM+G^ZX>UJ z-AZ;GMLqW&n;q!&jmVk7YhLBWm?@EnYhilKD%&>O^xzGyvmLNm4){n#a)$TH)=j{{ zCja1dL>y=xHMCg?Ok<>{+o~`jP>FblEK#{cEW|j~WbeM!!8)o`&8?0T{^C&2b^?u@ z)EoZvTW&_#Z-wJzzvre4Z#Pd91~3qkkz5Gh0HF|^m0$94iSGfvWZlfHnMGGtadrjc zbb=7uQ(8AtQ<h5)B>x^G`PZBONNGW8lpF7|NR+X{9!K4|6h(-VinXuW)`C-*)h<~J z_iI1PpPV*Z6)rVr)ukqHAuL(FF#*$FlT^HYMduZ(35(JRzhEXu6NGf#I&l9HysUPX z@>0vhd_z2i#TJWCeF^<1<`eM?arK>a>R(=c!q;~S=nIT(Uu_1s*>uWRXO)Oaf6?Av za50}y=5+aU@lxz;K6=v%J6KytmnoDv)TLmvSBIEATb^t_!cBitS_v-V66!YOAM*_9 zLYQJ_^9f~FdGpJhKy`6<@UQl(l<x3EY+}#@_l(_S0qeSN^rGKPgEnz!4Kqt<>sHzP zzy%w>@I%aM)N*=5n^3CcaJ-)$&3_%(Dzo{%(=Y;boe^8jzw>n%2x0?_n=SO5r2FYm z8aJKM`Iorna&cjr!&(hi>8F2}(X;0EL9VPlJyK#VwAbAr4I5qYp^=l{Op9-HE_V*E z5HTqfcBeT7f)s|0+Bpyt^{%Yb0F~xibeX=FFobGm;4v)5DfE;mjQ@AlY5geT7l?h5 z)duIO`iM?`5jSbMojiHUH`b@7rcI*KY3|zA-dJa6Cl-9WNrJjJ_a9WDi6>3J-Me?% zg$oy5VPS!DKGNa~xQoy&BQoI<r?yu1Th6*xoUSDpU_Wc`zCAWF!UabV-=jy5*yT%? zUBN?Pot^EDhb~cTYiqGfm#)~MLkHLg>qk5}<$0C6R;5US#Bms()S00Hu@z40Jv)3~ zM|);c4$(K+QEO~$u<JK^I0)O|nuMp%oJHxP*~?bNAwHeEkzKG07cbfVeS0Yb=QptX zcJSbSyFt1LOYnw=NB{r!&aJDeBZ=c1xrl%Y2pBLbicvF}$;Bk|{pMrL7nlz)d7ZW9 zDGxJGS;?%4NxVc<P(i^1!jbFze^p)k^x5o#R}5KWD`)rauCA)?-Cfn!YK336`+3;@ zjuILh8#M!@*o>pB*!;n6z@L8l**1d!H>{n4ji(LKA1-d*yj@(pc){{MJ9|&C<4X5L zWi_a>^{w@f9xaH@RWo)8&4EE3U(jLRV><gqnX-Plu95J?3)97o8#j$d%A0sh^^cw! z(JsaLVqBesk&%-s!@Jta_>mnBCLf&~F(FcV_5~CYo9M`JW!_Hs-+DN`nm#Rv|K)pS zx_hJeVt7~f`;QbKjdmAjPH4x_=y_dN>C*=sPGj4r=gWs=mf5Zord(**yDD5H0WdT` z1Qyq9G6Es}`qpT%_-wPdyC|b&y4U5uOI^i}P2D{p?XT-d4Cbw8@*of@Kjdwnx^NIw z4?RvRkD5XuC=`ul!UJT~P8SvFP~^vx+E|go_RFNu9Jo_0w)#swE}g#h!MZMO*_H`$ zok2ioVv(8k8+N@lo3e^4;fP>fUT)}l!h{pXJ=yJsfNeBZm43OHn|oja_K4anTfphz zldeZI2E?<;;pbm|Ee5pX4--2Znp$Md>bvj%Qw(amFw>Ct?#~wsj~*9irY5bDlm3>3 zF2z9yVMSJphhzj2+L)yukR<{fLJ|XnSlAsHP-jxMuu%B-?#-!l*=q{xX=BAYn&fRw z-@Ykf%Vv~EQfdR5HiR}-5eBtw`P*;*Z8$#p<PTOhJz7hp&E38|Yl?~8kSJJqL6OYQ zJuG@O4cHKkhNe>cb#MHQ8@Fvk3QCf^qL|?O;e*H8{iics@-y;4A!FF`!TdujFVfz+ zb;syYCf9%b#dagk%uGwE=n$^xU={o3&0kab>zt01E7l{}eF!g<6`N0>N0~g+R(<aF z+0W(GtcOgQG_6U2faPGk3EG<YcNIh?xxeFMMh_Y)f2V6^|NdBZuH^sn*k<vm><3<z zGMO1UQcNE2)*S>g3t%Hb^)8e>{_M_lSBEkkEpr$u1xAa=gAD;JuJ0Ci8#}U<uj_P| zyNVxHWQc6DR|>1U7?+vKGaB`vcU%3_ca{4$q{HWZi;l|kx+q<#?`5V<XoH`RQsb&{ zH6Sk?WNR(D94vR8=rY}jz_!DJ^fF%P#D9PxP2@V^ZUH*dPH=hN!D#ols9nI<n>o@4 zvoFSkAVg?QNpN$PW=KMwFb=HFOR&+C=Y3uVH>WS0E9SHlZcyg^;q#7!H$v^~xhV-| zjq+uwnUTcmvo-56H#JIF(;r)`r>D=_8Vtfs*;J2ztvG+~tesgxu%np3&lY2LrQMfe zJE!=DPJORS=wG-vZL<tRL&r1~H&U!><OKeyGiSuxysmRln_qaWb4?e-pA0@qK|qV= zNo`+eB*h4ZX(xnjzk2N(n%<n7yDz16)|BVtrA3*!|DafraziLHib650K5Z5soIb7d zNSacY05=%XC!X!*i;Lt*r_E*fl=2x<__{`AO|8K)`e273mbE9w#tTin6iZUFY*D9N zCskh0HL74E!;>cq8Uda+<+>_`iTQo%Nqmo|8qF}$fc||cJ&a=VEjaW$I;_Lh>Hs`^ zxM1Io?>DMZ2wV8AI=p1H>Y*3Wu@XwTY>OeZsHwS^MEc@t_^J?$5+uA;m~6$J=-JhE zlH!^<Yw`Av#qHv+b6dr!uI=Kh<5DQ2UBx9Slk+D9t7~qD`h2(_qHjaldAz=(TfcU6 zU-547^HNcKFQxJ0b6trm6UP%;>=>33`m^pkC(BG(A=7@d?7wPp1$^Qe-c@|B?GS2| zKT`?R1sY3)8Bz-7CGh+FH-MfXgeAC9@bCx>bJK)bc%ls*=m*`G$y30B2b{*FXh4TU zgnivU85y|XDqN&}s9qvAiNJCF!IR?h>0vWN;k^6kl{CCZF@TRP!{!K=pY)v^aW<_c zfKG7Ek7Ka=9V94E%D$GtL$Kn4mr8KWYiGW4VCb+eFfuYyeEs$360DleQ@PNaW@_m2 zWo<rDz2KlGJ$e)jBa08uOj_RPg@5_gXR0RYTTm_{0A8lESU2kJ9k=Nfrn$g}@E#u@ zwKP2%9ZXD|vhQfS*0OrScb%L(Z32IL+t2+V@S`4GkkCXZLj!(Kof<Z}Y@C5UqZb7F zlyETH!MA`GPwE^atEjV+lM~{z*KnWP)*b9JGs5&1Tjjw;`{4Wx_TNTD2gj*)rut$7 z!sO(*%2KjSd4LY(hC(2o^$;A&z}HN)?s|60c#J8_8I3UDedGBV3*X+6qEY){>plvL z{D>7P=kZjoy*7o$D26g2p8UWs3Y>hBe|Ut3*KK1X`>C%dJ?yNgcS^vbjxxC}Lw1(q zdK~r14=9vMr>sk;t12qv{hALv->2&u70Sn6)Cc_Az3pQ5*X?4ad$YK9a<llO6v|aC zUYyh@;{M8xuE#8jADEU}*J*4WA^d<l*rhbC>8^7sBQzMba2d@Z$nxu#q?o6YP?<~s zB~0Y6>MWlC;xd5*EW=|2LsRp#^cI;zHGwHO@Yfbn5)hyRhHrD{&TMKZy8K6m+a|`x zO^`EBJE3`OPP)_6q*5~v&b%-~YlIIhoj-rpDt|6a!CyLnA`c3LZ-mAg(<mkc9Fj&v z?{I3u1xci5;X4Gs<x3IsvZ00h^g~^)B>Pw!5^mTrig+3>ba+ptXYXNZgzz2pm~ScX zlmYk=W~bFdWlkGEJw&Exz{NcF!Xu^>2CRO^d_M;wDFnX9ih9CJN;@_&T1?2QtdFjZ z&GILBDFfb;hvFTQjV4-QIHsrEi9hj(2<+AU-8qbzwb?U%hsze85Y#b)0xl0D>kfyo zqZjY#(h{!XdUe}g3zsicBcKC2YYtvfwVO<{8ST#b9#CBi98SZbSlkZBh$~>gXV!%E z{V`vUJ9<>scN2dhsDp0gfvKp#f%zT$UWU#Gc&c=OiS%saM!9&IMh?9!O*N#l%Jbaf zMVL}NbZB3}OCC;Ky9+v5sDfm%!8KkM-16$+63z}_wL%YtFB%Bh^6Ov}BJDY(Ue6VM zlPmh@7~Q+EzE%A5maewFrG+f%$|pPO$*Azhw8(d52*IdIARH)+!+6iR6?V<Hd(lU* zB&sL~Ed)~tJOn^gXu_h>1iZx(o)MtOM?GPV6s1jX2_cN&q_+tTPsgGzf?H1o1Wf`r zBq-SuN>7a&3-QxPn6f}oG^8+?duD0_3%&?WHaduPo30=oC*{ct;q;h{mJ}POreT<O z7Qx{S#bG^L`JV|V@l18V>od{3{Lv*%JuI6AUiBT_Fr>Ed4r(aRIS%Rth8VGrHK267 z52&+(^<BS!%j*~0b(s&xT5!MqfNM(0a2Ev%iP6V`EbQKr_2MDf4x{JJB66P=LmPIW zajQ5c#knSXVob}N5TAE6w?C?m50-(SYTck$u-$_yC(+)OQ0!BFXEa4~Qnsabl(tJe zzDq~%H=NfY7qI2`R%G<<4NiH|S2HhaR-(}TDx2KJj;pAX;Nx57c!7`jfVVL5<h+18 zb()As4m>!g-%<$1LE<Cl*_8&dt+qq@Doh=3ExuYpKZkQ(9B;tJ6B@WZbi_IT!%+r# z8s5o<KOHcK0XAGaFVS{0<N^2+&$eAyIdRg8Cub@{^m=461PAO@F?v<i*1;oE6sI(7 z8$ae%r*!=d000VMNkl<Zmbgn4vYr$hTXHRr2h7tOqkn}$k8jBI0s@J=dLty?-hfg~ z(;K~KO*tT??G5N?WRwlz4nyd!1ozge%%`UwI2G1*EeXtq$FeB|ky1b?jgJCciOtMh zfQ&WtNlkIkm``X98=;F}58GP!*;xa5<3V(QVS0d(3)5V#v_wg~!=(|{FA9yGC;0+~ z#=_`>X@ur;Z!8$9!%;45&BpTW&e5J?tiQW>rp4igrc%O9%1k@TVX@J4OS3A2CGZM> zypQS76{WVKX&lURV<x9xmJD_m9u*7SvM?+d7J{#R{wH-(#H%xF=m&>2JtJkXEd|{# zLw)d!`(k8NeIZxQUP`)&PpAG*Xtn_B${WkQ#bfn&;Gxz<xd8!CMzeg6@IV4ggn_iq zpTa0p@}Y;J4uNE35-kgp-%P-OE~PQN{sR?501T)>=*cq$5Me|Z5P->LaV`7~l-O`U zdr3IuFJXxlxJC0Ld^pcr<k6o&+ZB+38N7YZoUepGLFmz<TjDVIl-ESlcp{N81M0+B z4r@Fn7==eZ08MDj6LrkO^y4TEk>X1dP=h;*H<%p1#Zt#oI(zpNw73YhmJ~vV==*c? zTBtc)R^~EY@;Ecq(8Ku-uQYXU?#?44jod{+<YB*Ozg0YCz^3;!Y)7!WB52PQ!j*91 z>m22RfD9P$BE*`D3&ja7=7FEM=-DCE!&T`46L=yH{4V;vikekm(QrIolLHpK&}SsX zGlwynS&LyyCe5P7kFNPt?|w+;{X;;n=@Ref8YN({ctm*#2S2;I@_6XdMN>>><yXCo zHSLUfqFWXv(~Ie`;~KVmtzm}?Ef>6uT*B>Y)@xN~kB*OCHRaH)jto3?awrhvSGYR4 zl9tiaI+5~h;8_|(frn{MyR>N`j8(Mp9#4pdKc0D5?oaVSb`N+Zz+U%B1Kmgx&j={r zbNcwJE&&El)#$)Sc)-Nd!pa{!dtq|eoL>jF-_}nX(|d8X09*NvFiV=J@070$rj0it zs^Ta?OHWWsPlcCJ;fbfkxB^twO0K0mh&Jg#qeP%AEiV_>uV1%a0-wpUstu9S++HLv zaYw-W=b<bC`%e0<xe$I8M$7u5MBw1vaA~^6;*!t~{03t}twRk_q8!HY!=DhRBoXg8 z5r!V&?}>i!W3=>=9C#3*45oNGE+U<h30x!QBM+)Rus%8y9nk`2M<WPEHH;RHsJG$x zY<AR8nZg7{@hDi7hfx5x{!pxRQow@)CjkoX=z_NnC1>fN1@1rtP1_v?&6E(!1FO1w z<hgc<5FdFr@1CFisCnx0!z662_dphKyjSrNR}IV4RpWB_@Ymtb;{r#(Ro{bNJYN)F zh2y<SFWv(-V0ePR%1bq#cU&htIgeF*`{4#>q|Nb1nmj%aBRqHQIE(|;v196NMb=8r z<te+L^neC6_spWo)TH)So6C{qMBe)keF;da@bwVFA%KHt!a_LL#RJz4V<9QbtEr_o z;pIvo@CA){mf>Qi^hczg2tUG&+m0~Kufb)!XJ|4!2_J}~k!ER_QezFHvC`1gl#d<) z56Xae6V%EZ0}TXrm(DA&i2zG=F^Yi~hxhfK#DJk9JZzAe{{?Flzy{vnrTPq7gaf~` z^}IMf*jF5tV%bg#gBuRHIg+(M&wdCB%0kW_3bQ#Q=EPHYfEiH!Q;n#++bAb+RN@Rx zU0C4H;t~pJZn4w}Uj`qNtb8V%G3wH{v%G<-OqRleeEH16OZc1*00T+&St7|`gv9U& zmS;G4B5#4h!rNXFWJ*UA`LQQa`1NNv2*j0<{@RW_#iuA9W%=+DxbWiwSK#(g!r3Lp zqP;^{_beid@*p7%f>rx3uYI8%0otM`X5(90&q_%s5A4~}w_<V7Tx5zD{6G;Ee1zYg zDbNam1h|^8JdFeS?;ctTHe5AyErr6Xd?s?nV~+c<`juxyRBz-X=TmW!ojjOt$&?3E zK75lBCV4=`l#zX7C8SuZ<-sS2DXiUH7OW+xgl|*(%5Azyf(vJB5lZj9eg%*)9N~J8 z=`y1B&`L1ARh)PQ=zlF9@&iKh)DebhB`0Js^1}DFw85?fFSAblY7pZiI>ff5eezla zw?%j<h#f8FH?`p2r!X6V2oK99*tS~Nje@vlQw!$Sn6xac%>*XcnZ7e(YBSozv8lDE zrWVNiv?j8tg>M$~S@d@pAu;|8o%s!q!AMDwFI)`_itU)D%GeZeZfd-^s9PbQ+_)!$ zq52jnvx8cwxBNJk_rLE;;EhXwD%sWvwL0n*wFhAn4nN8RXW=Q1t-OG9U1dXa%xs90 zJx;5$EN(igJ#`*5WgPyX1bp}j$GMnmh2jgm7Ow{KGPJ7cNQ;Z`py0T33J!PZe#Iif zY+gbzK4J(61WG4&T!*y!`Z*P=99OeR5OXt%FdWr*kOG5H(x2^3=UqKpwwLznj_N2- z=V>22Mg=@dLYKZ1E%5`Z@LPhE9_PoVn?%_11dlb&cbl}sa2HJ6qfV0JdN(>p=46y` z)&#tfQuubCw$aYsH6Fx{PjjgZu=tFd)z<H*hm;{a`;VTKmA(l!+P04l7K?X;M>vV+ zU$u^VVJKWZZ_g9Rst&p>7!(!?WcsXMs&s@CvBJ!T5uESHs>5T^?|<Hxz$=$PUd3C9 zRio9Od)Q+it`tz#DpW0Lc-r}~uHF<Cd|3OJFKa8~kW8F&HWx>4)Q0zZx9y@r%0HVc z7G>hRfpEZx#Z=9kskcS%Hg^omiKCHOlaL=aLRj#0TEt4IDm{&faHFL#aM)Zi3FQor zJ(=G|h_vY958MV^^W!<JiFn6B((>AZs_6+#%S&KvsW-f(T|e6x{`0IRj$BB2*{CzX z*hOjMOhU;v8H;qCG8y3sj&EZ-jE07N)FBjJh6!uHmqaR__!yO7dsSLyRjhtw)xz)x zJowEhUj%e`*1@Fph%!ZbzoJvTY?o{~F@ch+)J@`}u0$JYrD^xsVmI)rU$mb*+xUGN zVNYm6Vwp_-ctpWkY88~)#~33O8Ell9^$nd(>C)MQrtY!t)2VCfM5|-r`2L@iO5Bwm zrT1#jR$F0R$`$^rVF+lpcH@wfFRC+<rtXRS1XI+4I+))gj1G&{wQs)pW;ZSd+QSHi zC}H2bEJI)aS}Zn?Xn(t!M5@XLPT?T0^^i*y*4}eJ4KTp~Pvi0gB}s3f6m}V8o(Knl z^_n3L41fxAyg`eeS_OeXgEqKYJyg(x?DyfQ%sQu9bdzmuJMGr!!pc77fp}Bg%6}+S z;+fM&(OQ|kg{*?x7JXHg2>7?@tWy!+?*Q=E@fxGKG7kDwn2O8Ts>HOv?sE2n(VY^2 zJJRu);xeZ86tD3Hdi&m*84!UT?Gob}10Ufj5*O`6dFfK;V{eWe?DzPaa#*q+c_W-o zEdSi)F@%(bB0n$@PaJYgZ6$qsQy}*7@-)EJxxnRgX@|C!rY8!mT_)u;!4+w%cs)Eu o&YhsDsSf<zibLF}oKPVD1G>&Agluo~;s5{u07*qoM6N<$f<+eTkpKVy diff --git a/examples/embeddable_explorer/public/hello_world_embeddable_example.tsx b/examples/embeddable_explorer/public/hello_world_embeddable_example.tsx deleted file mode 100644 index 42081da52b607..0000000000000 --- a/examples/embeddable_explorer/public/hello_world_embeddable_example.tsx +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; -import { - EuiPageTemplate, - EuiPanel, - EuiText, - EuiTitle, - EuiCodeBlock, - EuiSpacer, -} from '@elastic/eui'; -import { EmbeddableRenderer } from '@kbn/embeddable-plugin/public'; -import { - HelloWorldEmbeddable, - HelloWorldEmbeddableFactory, -} from '@kbn/embeddable-examples-plugin/public'; - -interface Props { - helloWorldEmbeddableFactory: HelloWorldEmbeddableFactory; -} - -export function HelloWorldEmbeddableExample({ helloWorldEmbeddableFactory }: Props) { - return ( - <> - <EuiPageTemplate.Header pageTitle="Render embeddable" /> - <EuiPageTemplate.Section grow={false} bottomBorder="extended"> - <> - <EuiTitle size="xs"> - <h2>Embeddable prop</h2> - </EuiTitle> - <EuiText> - Use embeddable constructor to pass embeddable directly to{' '} - <strong>EmbeddableRenderer</strong>. Use <strong>input</strong> prop to declaratively - update embeddable input. - </EuiText> - <EuiSpacer /> - <EuiPanel data-test-subj="helloWorldEmbeddablePanel" role="figure"> - <EmbeddableRenderer embeddable={new HelloWorldEmbeddable({ id: 'hello' })} /> - </EuiPanel> - <EuiSpacer /> - <EuiCodeBlock language="jsx" fontSize="m" paddingSize="m"> - {`<EmbeddableRenderer embeddable={new HelloWorldEmbeddable({ id: 'hello' })} />`} - </EuiCodeBlock> - </> - </EuiPageTemplate.Section> - <EuiPageTemplate.Section grow={false}> - <> - <EuiTitle size="xs"> - <h2>Factory prop</h2> - </EuiTitle> - <EuiText> - Use <strong>factory</strong> prop to programatically instantiate embeddable. - </EuiText> - <EuiSpacer /> - <EuiPanel data-test-subj="helloWorldEmbeddableFromFactory" role="figure"> - <EmbeddableRenderer factory={helloWorldEmbeddableFactory} input={{ id: '1234' }} /> - </EuiPanel> - <EuiSpacer /> - <EuiCodeBlock language="jsx" fontSize="m" paddingSize="m"> - {`<EmbeddableRenderer factory={helloWorldEmbeddableFactory} input={{ id: '1234' }} />`} - </EuiCodeBlock> - </> - </EuiPageTemplate.Section> - </> - ); -} diff --git a/examples/embeddable_explorer/public/list_container_example.tsx b/examples/embeddable_explorer/public/list_container_example.tsx deleted file mode 100644 index f480d2a6a8168..0000000000000 --- a/examples/embeddable_explorer/public/list_container_example.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; -import { EuiPanel, EuiSpacer, EuiText, EuiPageTemplate, EuiCodeBlock } from '@elastic/eui'; -import { EmbeddableRenderer, ViewMode } from '@kbn/embeddable-plugin/public'; -import { - HELLO_WORLD_EMBEDDABLE, - ListContainerFactory, -} from '@kbn/embeddable-examples-plugin/public'; - -interface Props { - listContainerEmbeddableFactory: ListContainerFactory; -} - -export function ListContainerExample({ listContainerEmbeddableFactory }: Props) { - return ( - <> - <EuiPageTemplate.Header pageTitle="Groups of embeddables" /> - <EuiPageTemplate.Section grow={false}> - <> - <EuiText>Use container embeddable to render a group of embeddables.</EuiText> - <EuiSpacer /> - <EuiPanel data-test-subj="listContainerEmbeddablePanel" paddingSize="none" role="figure"> - <EmbeddableRenderer - factory={listContainerEmbeddableFactory} - input={{ - id: 'hello', - title: 'Hello world list', - viewMode: ViewMode.VIEW, - panels: { - '1': { - type: HELLO_WORLD_EMBEDDABLE, - explicitInput: { - id: '1', - }, - }, - '2': { - type: HELLO_WORLD_EMBEDDABLE, - explicitInput: { - id: '2', - }, - }, - }, - }} - /> - </EuiPanel> - <EuiSpacer /> - <EuiCodeBlock language="jsx" fontSize="m" paddingSize="m"> - {`<EmbeddableRenderer - factory={listContainerEmbeddableFactory} - input={{ - id: 'hello', - title: 'Todo list', - viewMode: ViewMode.VIEW, - panels: { - '1': { - type: HELLO_WORLD_EMBEDDABLE, - explicitInput: { - id: '1', - }, - '2': { - type: HELLO_WORLD_EMBEDDABLE, - explicitInput: { - id: '2', - }, - }, - } - }, - }} -/>`} - </EuiCodeBlock> - </> - </EuiPageTemplate.Section> - </> - ); -} diff --git a/examples/embeddable_explorer/public/plugin.tsx b/examples/embeddable_explorer/public/plugin.tsx deleted file mode 100644 index e8e02463167ef..0000000000000 --- a/examples/embeddable_explorer/public/plugin.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { EmbeddableExamplesStart } from '@kbn/embeddable-examples-plugin/public/plugin'; -import { Plugin, CoreSetup, AppMountParameters } from '@kbn/core/public'; -import { UiActionsService } from '@kbn/ui-actions-plugin/public'; -import { EmbeddableStart } from '@kbn/embeddable-plugin/public'; -import { Start as InspectorStart } from '@kbn/inspector-plugin/public'; -import { DeveloperExamplesSetup } from '@kbn/developer-examples-plugin/public'; -import img from './embeddables.png'; - -interface StartDeps { - uiActions: UiActionsService; - embeddable: EmbeddableStart; - inspector: InspectorStart; - embeddableExamples: EmbeddableExamplesStart; -} - -interface SetupDeps { - developerExamples: DeveloperExamplesSetup; -} - -export class EmbeddableExplorerPlugin implements Plugin<void, void, {}, StartDeps> { - public setup(core: CoreSetup<StartDeps>, { developerExamples }: SetupDeps) { - core.application.register({ - id: 'embeddableExplorer', - title: 'Embeddable explorer', - visibleIn: [], - async mount(params: AppMountParameters) { - const [coreStart, depsStart] = await core.getStartServices(); - const { renderApp } = await import('./app'); - try { - await depsStart.embeddableExamples.createSampleData(); - } catch (error) { - // eslint-disable-next-line no-console - console.error('Failed to create sample data', error); - } - return renderApp( - { - notifications: coreStart.notifications, - inspector: depsStart.inspector, - embeddableApi: depsStart.embeddable, - uiActionsApi: depsStart.uiActions, - basename: params.appBasePath, - uiSettingsClient: coreStart.uiSettings, - overlays: coreStart.overlays, - navigateToApp: coreStart.application.navigateToApp, - embeddableExamples: depsStart.embeddableExamples, - }, - params.element - ); - }, - }); - - developerExamples.register({ - appId: 'embeddableExplorer', - title: 'Embeddables', - description: `Multiple embeddable examples showcase how to build custom dashboard widgets, how to build your own custom "container" - (like a dashboard but imagine you want to render the panels differently), and how to embed anything that can show up in a dashboard - in your own UI and app, that comes pre-connected with actions built by other developers. - `, - links: [ - { - label: 'README', - href: 'https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/README.asciidoc', - iconType: 'logoGithub', - target: '_blank', - size: 's', - }, - ], - image: img, - }); - } - - public start() {} - public stop() {} -} diff --git a/examples/embeddable_explorer/tsconfig.json b/examples/embeddable_explorer/tsconfig.json deleted file mode 100644 index c6ba97cabe511..0000000000000 --- a/examples/embeddable_explorer/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "outDir": "target/types" - }, - "include": [ - "index.ts", - "public/**/*.ts", - "public/**/*.tsx", - "server/**/*.ts", - "../../typings/**/*" - ], - "exclude": [ - "target/**/*", - ], - "kbn_references": [ - "@kbn/core", - "@kbn/embeddable-plugin", - "@kbn/ui-actions-plugin", - "@kbn/inspector-plugin", - "@kbn/embeddable-examples-plugin", - "@kbn/developer-examples-plugin", - "@kbn/shared-ux-router", - ] -} diff --git a/package.json b/package.json index 5a1689beb3de3..2839e22158d8a 100644 --- a/package.json +++ b/package.json @@ -433,7 +433,6 @@ "@kbn/elasticsearch-client-xpack-plugin": "link:x-pack/test/plugin_api_integration/plugins/elasticsearch_client", "@kbn/embeddable-enhanced-plugin": "link:x-pack/plugins/embeddable_enhanced", "@kbn/embeddable-examples-plugin": "link:examples/embeddable_examples", - "@kbn/embeddable-explorer-plugin": "link:examples/embeddable_explorer", "@kbn/embeddable-plugin": "link:src/plugins/embeddable", "@kbn/embedded-lens-example-plugin": "link:x-pack/examples/embedded_lens_example", "@kbn/encrypted-saved-objects-plugin": "link:x-pack/plugins/encrypted_saved_objects", diff --git a/packages/presentation/presentation_publishing/interfaces/fetch/fetch.ts b/packages/presentation/presentation_publishing/interfaces/fetch/fetch.ts index 7828178535305..8b77e366219cb 100644 --- a/packages/presentation/presentation_publishing/interfaces/fetch/fetch.ts +++ b/packages/presentation/presentation_publishing/interfaces/fetch/fetch.ts @@ -83,19 +83,19 @@ function getBatchedObservables(api: unknown): Array<Observable<unknown>> { filter(() => !hasSearchSession(api)) ) ); + } - if (apiHasParentApi(api) && apiPublishesTimeRange(api.parentApi)) { - const timeObservables: Array<Observable<unknown>> = [api.parentApi.timeRange$]; - if (api.parentApi.timeslice$) { - timeObservables.push(api.parentApi.timeslice$); - } - observables.push( - combineLatest(timeObservables).pipe( - skip(1), - filter(() => !hasSearchSession(api) && !hasLocalTimeRange(api)) - ) - ); + if (apiHasParentApi(api) && apiPublishesTimeRange(api.parentApi)) { + const timeObservables: Array<Observable<unknown>> = [api.parentApi.timeRange$]; + if (api.parentApi.timeslice$) { + timeObservables.push(api.parentApi.timeslice$); } + observables.push( + combineLatest(timeObservables).pipe( + skip(1), + filter(() => !hasSearchSession(api) && !hasLocalTimeRange(api)) + ) + ); } return observables; diff --git a/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_renderer.tsx b/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_renderer.tsx index 6243b3a9c3eb9..45cb648e1b626 100644 --- a/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_renderer.tsx +++ b/src/plugins/embeddable/public/react_embeddable_system/react_embeddable_renderer.tsx @@ -34,6 +34,7 @@ export const ReactEmbeddableRenderer = < onApiAvailable, panelProps, onAnyStateChange, + hidePanelChrome, }: { maybeId?: string; type: string; @@ -49,6 +50,7 @@ export const ReactEmbeddableRenderer = < | 'hideHeader' | 'hideInspector' >; + hidePanelChrome?: boolean; /** * This `onAnyStateChange` callback allows the parent to keep track of the state of the embeddable * as it changes. This is **not** expected to change over the lifetime of the component. @@ -129,5 +131,11 @@ export const ReactEmbeddableRenderer = < }; }, []); - return <PresentationPanel {...panelProps} Component={componentPromise} />; + return ( + <PresentationPanel<ApiType, {}> + hidePanelChrome={hidePanelChrome} + {...panelProps} + Component={componentPromise} + /> + ); }; diff --git a/src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx b/src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx index fc871c317d7d6..772714eb44e33 100644 --- a/src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx +++ b/src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx @@ -8,7 +8,7 @@ import './_presentation_panel.scss'; -import { EuiFlexGroup } from '@elastic/eui'; +import { EuiErrorBoundary, EuiFlexGroup } from '@elastic/eui'; import { PanelLoader } from '@kbn/panel-loader'; import { isPromise } from '@kbn/std'; import React from 'react'; @@ -22,10 +22,18 @@ export const PresentationPanel = < ApiType extends DefaultPresentationPanelApi = DefaultPresentationPanelApi, PropsType extends {} = {} >( - props: PresentationPanelProps<ApiType, PropsType> + props: PresentationPanelProps<ApiType, PropsType> & { + hidePanelChrome?: boolean; + } ) => { - const { Component, ...passThroughProps } = props; + const { Component, hidePanelChrome, ...passThroughProps } = props; const { loading, value, error } = useAsync(async () => { + if (hidePanelChrome) { + return { + unwrappedComponent: isPromise(Component) ? await Component : Component, + }; + } + const startServicesPromise = untilPluginStartServicesReady(); const modulePromise = await import('./presentation_panel_internal'); const componentPromise = isPromise(Component) ? Component : Promise.resolve(Component); @@ -36,11 +44,24 @@ export const PresentationPanel = < ]); const Panel = panelModule.PresentationPanelInternal; return { Panel, unwrappedComponent }; + // Ancestry chain is expected to use 'key' attribute to reset DOM and state // when unwrappedComponent needs to be re-loaded }, []); - if (error || (!loading && (!value?.Panel || !value?.unwrappedComponent))) { + if (loading) + return ( + <PanelLoader + showShadow={props.showShadow} + showBorder={props.showBorder} + dataTestSubj="embeddablePanelLoadingIndicator" + /> + ); + + const Panel = value?.Panel; + const UnwrappedComponent = value?.unwrappedComponent; + const shouldHavePanel = !hidePanelChrome; + if (error || (shouldHavePanel && !Panel) || !UnwrappedComponent) { return ( <EuiFlexGroup alignItems="center" @@ -53,16 +74,15 @@ export const PresentationPanel = < ); } - if (loading || !value?.Panel || !value?.unwrappedComponent) - return ( - <PanelLoader - showShadow={props.showShadow} - showBorder={props.showBorder} - dataTestSubj="embeddablePanelLoadingIndicator" + return shouldHavePanel && Panel ? ( + <Panel<ApiType, PropsType> Component={UnwrappedComponent} {...passThroughProps} /> + ) : ( + <EuiErrorBoundary> + <UnwrappedComponent + {...((passThroughProps.componentProps ?? {}) as React.ComponentProps< + typeof UnwrappedComponent + >)} /> - ); - - return ( - <value.Panel<ApiType, PropsType> Component={value.unwrappedComponent} {...passThroughProps} /> + </EuiErrorBoundary> ); }; diff --git a/test/examples/config.js b/test/examples/config.js index dbc9d32055cc7..77d73642afd1c 100644 --- a/test/examples/config.js +++ b/test/examples/config.js @@ -18,7 +18,6 @@ export default async function ({ readConfigFile }) { rootTags: ['runOutsideOfCiGroups'], testFiles: [ require.resolve('./hello_world'), - require.resolve('./embeddables'), require.resolve('./bfetch_explorer'), require.resolve('./ui_actions'), require.resolve('./state_sync'), diff --git a/test/examples/embeddables/hello_world_embeddable.ts b/test/examples/embeddables/hello_world_embeddable.ts deleted file mode 100644 index 9e74246f2e2ba..0000000000000 --- a/test/examples/embeddables/hello_world_embeddable.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import expect from '@kbn/expect'; - -import { PluginFunctionalProviderContext } from '../../plugin_functional/services'; - -// eslint-disable-next-line import/no-default-export -export default function ({ getService }: PluginFunctionalProviderContext) { - const testSubjects = getService('testSubjects'); - const retry = getService('retry'); - - describe('hello world embeddable', () => { - before(async () => { - await testSubjects.click('helloWorldEmbeddableSection'); - }); - - it('hello world embeddable render', async () => { - await retry.try(async () => { - const text = await testSubjects.getVisibleText('helloWorldEmbeddable'); - expect(text).to.be('HELLO WORLD!'); - }); - }); - - it('hello world embeddable from factory renders', async () => { - await retry.try(async () => { - const text = await testSubjects.getVisibleText('helloWorldEmbeddableFromFactory'); - expect(text).to.be('HELLO WORLD!'); - }); - }); - }); -} diff --git a/test/examples/embeddables/index.ts b/test/examples/embeddables/index.ts deleted file mode 100644 index 27745cf717258..0000000000000 --- a/test/examples/embeddables/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { PluginFunctionalProviderContext } from '../../plugin_functional/services'; - -// eslint-disable-next-line import/no-default-export -export default function ({ - getService, - getPageObjects, - loadTestFile, -}: PluginFunctionalProviderContext) { - const browser = getService('browser'); - const PageObjects = getPageObjects(['common', 'header']); - - describe('embeddable explorer', function () { - before(async () => { - await browser.setWindowSize(1300, 900); - await PageObjects.common.navigateToApp('embeddableExplorer'); - }); - - loadTestFile(require.resolve('./hello_world_embeddable')); - loadTestFile(require.resolve('./list_container')); - }); -} diff --git a/test/examples/embeddables/list_container.ts b/test/examples/embeddables/list_container.ts deleted file mode 100644 index f18ff169171f0..0000000000000 --- a/test/examples/embeddables/list_container.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import expect from '@kbn/expect'; -import { PluginFunctionalProviderContext } from '../../plugin_functional/services'; - -// eslint-disable-next-line import/no-default-export -export default function ({ getService }: PluginFunctionalProviderContext) { - const testSubjects = getService('testSubjects'); - const retry = getService('retry'); - - describe('list container', () => { - before(async () => { - await testSubjects.click('listContainerSection'); - }); - - it('list containers render', async () => { - await retry.try(async () => { - const title = await testSubjects.getVisibleText('listContainerTitle'); - expect(title).to.be('Hello world list'); - - const text = await testSubjects.getVisibleTextAll('helloWorldEmbeddable'); - expect(text).to.eql(['HELLO WORLD!', 'HELLO WORLD!']); - }); - }); - }); -} diff --git a/tsconfig.base.json b/tsconfig.base.json index 17e13abcd5b5d..6f59b5dcfceea 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -762,8 +762,6 @@ "@kbn/embeddable-enhanced-plugin/*": ["x-pack/plugins/embeddable_enhanced/*"], "@kbn/embeddable-examples-plugin": ["examples/embeddable_examples"], "@kbn/embeddable-examples-plugin/*": ["examples/embeddable_examples/*"], - "@kbn/embeddable-explorer-plugin": ["examples/embeddable_explorer"], - "@kbn/embeddable-explorer-plugin/*": ["examples/embeddable_explorer/*"], "@kbn/embeddable-plugin": ["src/plugins/embeddable"], "@kbn/embeddable-plugin/*": ["src/plugins/embeddable/*"], "@kbn/embedded-lens-example-plugin": ["x-pack/examples/embedded_lens_example"], diff --git a/yarn.lock b/yarn.lock index 5709927c111bf..16b7c7a3932a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4574,10 +4574,6 @@ version "0.0.0" uid "" -"@kbn/embeddable-explorer-plugin@link:examples/embeddable_explorer": - version "0.0.0" - uid "" - "@kbn/embeddable-plugin@link:src/plugins/embeddable": version "0.0.0" uid "" From 6c25f4b07a99056ff4e362d4e974476e64c01efd Mon Sep 17 00:00:00 2001 From: Philippe Oberti <philippe.oberti@elastic.co> Date: Wed, 24 Apr 2024 15:48:38 -0500 Subject: [PATCH 171/183] [Security Solution][Alert details] - fix issue where the timeline stays open after navigating to the rule details page (#181362) --- .../components/rule_preview_footer.test.tsx | 13 +++-- .../components/rule_preview_footer.tsx | 30 +++++------ .../preview/components/test_ids.ts | 3 +- .../right/components/alert_header_title.tsx | 36 +++++-------- .../right/components/session_preview.test.tsx | 7 +++ .../right/components/session_preview.tsx | 38 +++++++------- .../right/components/test_ids.ts | 2 + .../hooks/use_rule_details_link.test.ts | 50 +++++++++++++++++++ .../shared/hooks/use_rule_details_link.ts | 47 +++++++++++++++++ .../plugins/security_solution/tsconfig.json | 3 +- ...lert_details_preview_panel_rule_preview.ts | 5 +- 11 files changed, 168 insertions(+), 66 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.test.ts create mode 100644 x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.ts diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.test.tsx index ffe0e83c7d5fd..5dcd75d048218 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.test.tsx @@ -12,6 +12,9 @@ import { mockContextValue } from '../mocks/mock_context'; import { PreviewPanelContext } from '../context'; import { RULE_PREVIEW_FOOTER_TEST_ID, RULE_PREVIEW_NAVIGATE_TO_RULE_TEST_ID } from './test_ids'; import { RulePreviewFooter } from './rule_preview_footer'; +import { useRuleDetailsLink } from '../../shared/hooks/use_rule_details_link'; + +jest.mock('../../shared/hooks/use_rule_details_link'); const renderRulePreviewFooter = (contextValue: PreviewPanelContext) => render( @@ -24,11 +27,9 @@ const renderRulePreviewFooter = (contextValue: PreviewPanelContext) => describe('<RulePreviewFooter />', () => { it('renders rule details link correctly when ruleId is available', () => { - const contextValue = { - ...mockContextValue, - ruleId: 'rule id', - }; - const { getByTestId } = renderRulePreviewFooter(contextValue); + (useRuleDetailsLink as jest.Mock).mockReturnValue('rule_details_link'); + + const { getByTestId } = renderRulePreviewFooter(mockContextValue); expect(getByTestId(RULE_PREVIEW_FOOTER_TEST_ID)).toBeInTheDocument(); expect(getByTestId(RULE_PREVIEW_NAVIGATE_TO_RULE_TEST_ID)).toBeInTheDocument(); @@ -38,6 +39,8 @@ describe('<RulePreviewFooter />', () => { }); it('should not render rule details link when ruleId is not available', () => { + (useRuleDetailsLink as jest.Mock).mockReturnValue(null); + const { queryByTestId } = renderRulePreviewFooter(mockContextValue); expect(queryByTestId(RULE_PREVIEW_FOOTER_TEST_ID)).not.toBeInTheDocument(); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.tsx index c7d1beeb0843a..8f98e49998b95 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/rule_preview_footer.tsx @@ -6,37 +6,33 @@ */ import React, { memo } from 'react'; -import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiLink } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { usePreviewPanelContext } from '../context'; -import { RenderRuleName } from '../../../../timelines/components/timeline/body/renderers/formatted_field_helpers'; -import { SIGNAL_RULE_NAME_FIELD_NAME } from '../../../../timelines/components/timeline/body/renderers/constants'; import { FlyoutFooter } from '../../../shared/components/flyout_footer'; -import { RULE_PREVIEW_FOOTER_TEST_ID } from './test_ids'; +import { RULE_PREVIEW_FOOTER_TEST_ID, RULE_PREVIEW_NAVIGATE_TO_RULE_TEST_ID } from './test_ids'; +import { useRuleDetailsLink } from '../../shared/hooks/use_rule_details_link'; /** * Footer in rule preview panel */ export const RulePreviewFooter: React.FC = memo(() => { - const { scopeId, eventId, ruleId } = usePreviewPanelContext(); + const { ruleId } = usePreviewPanelContext(); + const href = useRuleDetailsLink({ ruleId }); - return ruleId ? ( + return href ? ( <FlyoutFooter data-test-subj={RULE_PREVIEW_FOOTER_TEST_ID}> <EuiFlexGroup justifyContent="center"> <EuiFlexItem grow={false}> - <RenderRuleName - contextId={scopeId} - eventId={eventId} - fieldName={SIGNAL_RULE_NAME_FIELD_NAME} - fieldType={'string'} - isAggregatable={false} - isDraggable={false} - linkValue={ruleId} - value={i18n.translate('xpack.securitySolution.flyout.preview.rule.viewDetailsLabel', { + <EuiLink + href={href} + target="_blank" + data-test-subj={RULE_PREVIEW_NAVIGATE_TO_RULE_TEST_ID} + > + {i18n.translate('xpack.securitySolution.flyout.preview.rule.viewDetailsLabel', { defaultMessage: 'Show rule details', })} - openInNewTab - /> + </EuiLink> </EuiFlexItem> </EuiFlexGroup> </FlyoutFooter> diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/test_ids.ts b/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/test_ids.ts index 09989a662ddc6..3a676c192ca69 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/test_ids.ts +++ b/x-pack/plugins/security_solution/public/flyout/document_details/preview/components/test_ids.ts @@ -34,5 +34,6 @@ export const RULE_PREVIEW_ACTIONS_HEADER_TEST_ID = RULE_PREVIEW_ACTIONS_TEST_ID export const RULE_PREVIEW_ACTIONS_CONTENT_TEST_ID = RULE_PREVIEW_ACTIONS_TEST_ID + CONTENT_TEST_ID; export const RULE_PREVIEW_LOADING_TEST_ID = `${RULE_PREVIEW_TEST_ID}Loading` as const; export const RULE_PREVIEW_FOOTER_TEST_ID = `${RULE_PREVIEW_TEST_ID}Footer` as const; -export const RULE_PREVIEW_NAVIGATE_TO_RULE_TEST_ID = 'goToRuleDetails' as const; +export const RULE_PREVIEW_NAVIGATE_TO_RULE_TEST_ID = + `${RULE_PREVIEW_FOOTER_TEST_ID}LinkToRuleDetails` as const; export const ALERT_REASON_PREVIEW_BODY_TEST_ID = `${PREFIX}AlertReasonPreviewBody` as const; diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/alert_header_title.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/alert_header_title.tsx index 8986eddbd17f4..1bebeb931be4d 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/alert_header_title.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/alert_header_title.tsx @@ -7,10 +7,11 @@ import type { FC } from 'react'; import React, { memo, useCallback, useMemo } from 'react'; -import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiPanel, useEuiTheme } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiPanel, useEuiTheme, EuiLink } from '@elastic/eui'; import { css } from '@emotion/css'; import { ALERT_WORKFLOW_ASSIGNEE_IDS } from '@kbn/rule-data-utils'; import { i18n } from '@kbn/i18n'; +import { useRuleDetailsLink } from '../../shared/hooks/use_rule_details_link'; import { DocumentStatus } from './status'; import { DocumentSeverity } from './severity'; import { RiskScore } from './risk_score'; @@ -18,8 +19,6 @@ import { useRefetchByScope } from '../../../../timelines/components/side_panel/e import { useBasicDataFromDetailsData } from '../../../../timelines/components/side_panel/event_details/helpers'; import { useRightPanelContext } from '../context'; import { PreferenceFormattedDate } from '../../../../common/components/formatted_date'; -import { RenderRuleName } from '../../../../timelines/components/timeline/body/renderers/formatted_field_helpers'; -import { SIGNAL_RULE_NAME_FIELD_NAME } from '../../../../timelines/components/timeline/body/renderers/constants'; import { FLYOUT_ALERT_HEADER_TITLE_TEST_ID, ALERT_SUMMARY_PANEL_TEST_ID } from './test_ids'; import { Assignees } from './assignees'; import { FlyoutTitle } from '../../../shared/components/flyout_title'; @@ -41,35 +40,26 @@ export const AlertHeaderTitle: FC = memo(() => { ); const { euiTheme } = useEuiTheme(); + const href = useRuleDetailsLink({ ruleId: !isPreview ? ruleId : null }); const ruleTitle = useMemo( () => - isPreview ? ( - <FlyoutTitle - title={ruleName} - iconType={'warning'} - data-test-subj={FLYOUT_ALERT_HEADER_TITLE_TEST_ID} - /> - ) : ( - <RenderRuleName - contextId={scopeId} - eventId={eventId} - fieldName={SIGNAL_RULE_NAME_FIELD_NAME} - fieldType={'string'} - isAggregatable={false} - isDraggable={false} - linkValue={ruleId} - value={ruleName} - openInNewTab - > + href ? ( + <EuiLink href={href} target="_blank" external={false}> <FlyoutTitle title={ruleName} iconType={'warning'} isLink data-test-subj={FLYOUT_ALERT_HEADER_TITLE_TEST_ID} /> - </RenderRuleName> + </EuiLink> + ) : ( + <FlyoutTitle + title={ruleName} + iconType={'warning'} + data-test-subj={FLYOUT_ALERT_HEADER_TITLE_TEST_ID} + /> ), - [ruleName, ruleId, eventId, scopeId, isPreview] + [ruleName, href] ); const { refetch } = useRefetchByScope({ scopeId }); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.test.tsx index f7bc398671559..97fcd563a9ef7 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.test.tsx @@ -12,8 +12,11 @@ import { TestProviders } from '../../../../common/mock'; import React from 'react'; import { RightPanelContext } from '../context'; import { TestProvider } from '@kbn/expandable-flyout/src/test/provider'; +import { SESSION_PREVIEW_RULE_DETAILS_LINK_TEST_ID } from './test_ids'; +import { useRuleDetailsLink } from '../../shared/hooks/use_rule_details_link'; jest.mock('../hooks/use_process_data'); +jest.mock('../../shared/hooks/use_rule_details_link'); const panelContextValue = { eventId: 'event id', @@ -48,6 +51,7 @@ describe('SessionPreview', () => { workdir: '/path/to/workdir', command: 'command1', }); + (useRuleDetailsLink as jest.Mock).mockReturnValue('rule1_link'); renderSessionPreview(); @@ -57,6 +61,7 @@ describe('SessionPreview', () => { expect(screen.getByText('at')).toBeInTheDocument(); expect(screen.getByText('Jan 1, 2022 @ 00:00:00.000')).toBeInTheDocument(); expect(screen.getByText('with rule')).toBeInTheDocument(); + expect(screen.getByTestId(SESSION_PREVIEW_RULE_DETAILS_LINK_TEST_ID)).toBeInTheDocument(); expect(screen.getByText('rule1')).toBeInTheDocument(); expect(screen.getByText('by')).toBeInTheDocument(); expect(screen.getByText('/path/to/workdir command1')).toBeInTheDocument(); @@ -72,6 +77,7 @@ describe('SessionPreview', () => { command: null, workdir: null, }); + (useRuleDetailsLink as jest.Mock).mockReturnValue(null); renderSessionPreview(); @@ -80,6 +86,7 @@ describe('SessionPreview', () => { expect(screen.getByText('process1')).toBeInTheDocument(); expect(screen.queryByText('at')).not.toBeInTheDocument(); expect(screen.queryByText('with rule')).not.toBeInTheDocument(); + expect(screen.queryByTestId(SESSION_PREVIEW_RULE_DETAILS_LINK_TEST_ID)).not.toBeInTheDocument(); expect(screen.queryByText('by')).not.toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.tsx index 08c15480bb7ed..88cbb072a9aec 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/session_preview.tsx @@ -5,17 +5,16 @@ * 2.0. */ -import { EuiCode, EuiIcon, useEuiTheme } from '@elastic/eui'; +import { EuiCode, EuiIcon, EuiLink, useEuiTheme } from '@elastic/eui'; import type { ReactElement } from 'react'; import React, { useMemo, type FC } from 'react'; import { css } from '@emotion/react'; import { FormattedMessage } from '@kbn/i18n-react'; -import { SESSION_PREVIEW_TEST_ID } from './test_ids'; +import { useRuleDetailsLink } from '../../shared/hooks/use_rule_details_link'; +import { SESSION_PREVIEW_RULE_DETAILS_LINK_TEST_ID, SESSION_PREVIEW_TEST_ID } from './test_ids'; import { useRightPanelContext } from '../context'; -import { SIGNAL_RULE_NAME_FIELD_NAME } from '../../../../timelines/components/timeline/body/renderers/constants'; import { PreferenceFormattedDate } from '../../../../common/components/formatted_date'; import { useProcessData } from '../hooks/use_process_data'; -import { RenderRuleName } from '../../../../timelines/components/timeline/body/renderers/formatted_field_helpers'; /** * One-off helper to make sure that inline values are rendered consistently @@ -37,7 +36,7 @@ const ValueContainer: FC<{ text?: ReactElement }> = ({ text, children }) => ( * Renders session preview under Visualizations section in the flyout right EuiPanel */ export const SessionPreview: FC = () => { - const { eventId, scopeId, isPreview } = useRightPanelContext(); + const { isPreview } = useRightPanelContext(); const { processName, userName, startAt, ruleName, ruleId, workdir, command } = useProcessData(); const { euiTheme } = useEuiTheme(); @@ -75,12 +74,16 @@ export const SessionPreview: FC = () => { /> } > - <PreferenceFormattedDate value={new Date(startAt)} /> + <span> + <PreferenceFormattedDate value={new Date(startAt)} /> + </span> </ValueContainer> ) ); }, [startAt]); + const href = useRuleDetailsLink({ ruleId: !isPreview ? ruleId : null }); + const ruleFragment = useMemo(() => { return ( ruleName && @@ -93,20 +96,21 @@ export const SessionPreview: FC = () => { /> } > - <RenderRuleName - contextId={scopeId} - eventId={eventId} - fieldName={SIGNAL_RULE_NAME_FIELD_NAME} - fieldType={'string'} - isAggregatable={false} - isDraggable={false} - linkValue={!isPreview ? ruleId : null} - value={ruleName} - /> + {href ? ( + <EuiLink + href={href} + target="_blank" + data-test-subj={SESSION_PREVIEW_RULE_DETAILS_LINK_TEST_ID} + > + {ruleName} + </EuiLink> + ) : ( + <ValueContainer>{ruleName}</ValueContainer> + )} </ValueContainer> ) ); - }, [ruleName, ruleId, scopeId, eventId, isPreview]); + }, [ruleName, ruleId, href]); const commandFragment = useMemo(() => { return ( diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/test_ids.ts b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/test_ids.ts index fcee244889213..c68718fcd73dd 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/test_ids.ts +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/test_ids.ts @@ -147,6 +147,8 @@ export const ANALYZER_PREVIEW_TEST_ID = `${PREFIX}AnalyzerPreview` as const; export const ANALYZER_PREVIEW_LOADING_TEST_ID = `${ANALYZER_PREVIEW_TEST_ID}Loading` as const; export const SESSION_PREVIEW_TEST_ID = `${PREFIX}SessionPreview` as const; +export const SESSION_PREVIEW_RULE_DETAILS_LINK_TEST_ID = + `${SESSION_PREVIEW_TEST_ID}RuleDetailsLink` as const; /* Response section */ diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.test.ts b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.test.ts new file mode 100644 index 0000000000000..f77b82af80065 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.test.ts @@ -0,0 +1,50 @@ +/* + * 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 type { RenderHookResult } from '@testing-library/react-hooks'; +import { renderHook } from '@testing-library/react-hooks'; +import type { UseRuleDetailsLinkParams } from './use_rule_details_link'; +import { useRuleDetailsLink } from './use_rule_details_link'; + +jest.mock('../../../../common/components/link_to', () => ({ + useGetSecuritySolutionUrl: jest + .fn() + .mockReturnValue( + jest + .fn() + .mockReturnValue( + "app/security/rules/id/99eb0638-b2c7-4a1b-bc30-689e25978174?sourcerer=(default:(id:security-solution-default,selectedPatterns:!('logs-*')))&timerange=(global:(linkTo:!(),timerange:(from:'2024-04-22T05:00:00.000Z',fromStr:now%2Fd,kind:absolute,to:'2024-04-23T04:59:59.999Z',toStr:now%2Fd)),timeline:(linkTo:!(),timerange:(from:'2024-04-22T21:02:05.427Z',kind:absolute,to:'2024-04-22T21:08:05.427Z')))&timeline=(activeTab:query,graphEventId:'',isOpen:!t)" + ) + ), + getRuleDetailsUrl: jest.fn().mockReturnValue(''), +})); + +describe('useRuleDetailsLink', () => { + let hookResult: RenderHookResult<UseRuleDetailsLinkParams, string | null>; + + it('should return null if the ruleId prop is null', () => { + const initialProps: UseRuleDetailsLinkParams = { + ruleId: null, + }; + hookResult = renderHook((props: UseRuleDetailsLinkParams) => useRuleDetailsLink(props), { + initialProps, + }); + + expect(hookResult.result.current).toBe(null); + }); + + it('should return timeline in close state', () => { + const initialProps: UseRuleDetailsLinkParams = { + ruleId: 'ruleId', + }; + hookResult = renderHook((props: UseRuleDetailsLinkParams) => useRuleDetailsLink(props), { + initialProps, + }); + + expect(hookResult.result.current).toContain('isOpen:!f'); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.ts b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.ts new file mode 100644 index 0000000000000..169cc6398cddb --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/document_details/shared/hooks/use_rule_details_link.ts @@ -0,0 +1,47 @@ +/* + * 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 { SecurityPageName } from '@kbn/deeplinks-security'; +import { encode, safeDecode } from '@kbn/rison'; +import { + getRuleDetailsUrl, + useGetSecuritySolutionUrl, +} from '../../../../common/components/link_to'; +import { URL_PARAM_KEY } from '../../../../common/hooks/use_url_state'; +import type { TimelineUrl } from '../../../../timelines/store/model'; + +export interface UseRuleDetailsLinkParams { + /** + * Id of the rule to navigate to + */ + ruleId: string | null; +} + +/** + * Hook that returns the url to navigate to the rule details page. + * If the timeline is open from where the hook is being called, set the state to closed. + */ +export const useRuleDetailsLink = ({ ruleId }: UseRuleDetailsLinkParams): string | null => { + const getSecuritySolutionUrl = useGetSecuritySolutionUrl(); + + if (!ruleId) return null; + + const path = getRuleDetailsUrl(ruleId); + let href = getSecuritySolutionUrl({ deepLinkId: SecurityPageName.rules, path }); + + const timelineState = new URLSearchParams(href).get(URL_PARAM_KEY.timeline); + if (timelineState) { + const parsedState = safeDecode(timelineState) as TimelineUrl | null; + + if (parsedState && parsedState.isOpen) { + const encodedState = encode({ ...parsedState, isOpen: false }); + href = href.replace(timelineState, encodedState); + } + } + + return href; +}; diff --git a/x-pack/plugins/security_solution/tsconfig.json b/x-pack/plugins/security_solution/tsconfig.json index 48e37a562dd72..1a6b87b875580 100644 --- a/x-pack/plugins/security_solution/tsconfig.json +++ b/x-pack/plugins/security_solution/tsconfig.json @@ -199,6 +199,7 @@ "@kbn/shared-ux-chrome-navigation", "@kbn/core-ui-settings-browser-mocks", "@kbn/management-plugin", - "@kbn/security-plugin-types-server" + "@kbn/security-plugin-types-server", + "@kbn/deeplinks-security" ] } diff --git a/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_preview_panel_rule_preview.ts b/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_preview_panel_rule_preview.ts index ff0107a3f97cc..f49ca7963ae6a 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_preview_panel_rule_preview.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_preview_panel_rule_preview.ts @@ -32,5 +32,6 @@ export const DOCUMENT_DETAILS_FLYOUT_RULE_PREVIEW_SCHEDULE_SECTION_CONTENT = export const DOCUMENT_DETAILS_FLYOUT_RULE_PREVIEW_FOOTER = getDataTestSubjectSelector( 'securitySolutionFlyoutRulePreviewFooter' ); -export const DOCUMENT_DETAILS_FLYOUT_RULE_PREVIEW_FOOTER_LINK = - getDataTestSubjectSelector('goToRuleDetails'); +export const DOCUMENT_DETAILS_FLYOUT_RULE_PREVIEW_FOOTER_LINK = getDataTestSubjectSelector( + 'securitySolutionFlyoutRulePreviewFooterLinkToRuleDetails' +); From d0f26c69288d6b56b75685357e0eea797db9ff6b Mon Sep 17 00:00:00 2001 From: Nick Peihl <nick.peihl@elastic.co> Date: Wed, 24 Apr 2024 16:54:15 -0400 Subject: [PATCH 172/183] [Dashboard] Register React embeddables with Add from Library button (#179289) Fixes #178545 ## Summary Adds React embeddables to the Add from Library button in Dashboard. Creates a new registry for storing saved object types for embeddables. This registry supercedes the `savedObjectMetaData` property used by class-based legacy embeddable factories. Canvas uses a custom Add from Library button and Canvas does not yet support React embeddables which is out of scope of this PR. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../add_panel_flyout.test.tsx | 218 ++++++++++++------ .../add_panel_flyout/add_panel_flyout.tsx | 114 ++++++--- .../open_add_panel_flyout.tsx | 4 +- src/plugins/embeddable/public/index.ts | 1 + .../embeddable_saved_object_registry.ts | 94 ++++++++ .../embeddable_saved_object_registry/index.ts | 13 ++ src/plugins/embeddable/public/lib/index.ts | 1 + .../registry/saved_object_to_panel_methods.ts | 4 + src/plugins/embeddable/tsconfig.json | 3 +- .../services/dashboard/add_panel.ts | 2 +- .../services/saved_objects_finder.ts | 2 +- .../translations/translations/fr-FR.json | 1 - .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 14 files changed, 347 insertions(+), 112 deletions(-) create mode 100644 src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts create mode 100644 src/plugins/embeddable/public/lib/embeddable_saved_object_registry/index.ts diff --git a/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.test.tsx b/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.test.tsx index 3b8052c88a798..a32a1fc5c93c4 100644 --- a/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.test.tsx +++ b/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.test.tsx @@ -7,14 +7,15 @@ */ import * as React from 'react'; -import { EuiFlyout } from '@elastic/eui'; import { coreMock } from '@kbn/core/public/mocks'; -import { mountWithIntl as mount } from '@kbn/test-jest-helpers'; +import { fireEvent, render, screen } from '@testing-library/react'; import { SavedObjectCommon } from '@kbn/saved-objects-finder-plugin/common'; import { AddPanelFlyout } from './add_panel_flyout'; import { core, embeddableStart, usageCollection } from '../kibana_services'; -import { HelloWorldContainer, ContactCardEmbeddableFactory } from '../lib/test_samples'; +import { ContactCardEmbeddableFactory } from '../lib/test_samples'; +import { Container, registerReactEmbeddableSavedObject } from '../lib'; +import { getMockPresentationContainer } from '@kbn/presentation-containers/mocks'; // Mock saved objects finder component so we can call the onChoose method. jest.mock('@kbn/saved-objects-finder-plugin/public', () => { @@ -27,93 +28,168 @@ jest.mock('@kbn/saved-objects-finder-plugin/public', () => { }: { onChoose: (id: string, type: string, name: string, so: unknown) => Promise<void>; }) => ( - <button - id="soFinderDummyButton" - onClick={() => - onChoose?.( - 'testId', - 'CONTACT_CARD_EMBEDDABLE', - 'test name', - {} as unknown as SavedObjectCommon - ) - } - > - Dummy Button! - </button> + <> + <button + id="soFinderAddButton" + data-test-subj="soFinderAddButton" + onClick={() => + onChoose?.( + 'awesomeId', + 'AWESOME_EMBEDDABLE', + 'Awesome sauce', + {} as unknown as SavedObjectCommon + ) + } + > + Add embeddable! + </button> + <button + id="soFinderAddLegacyButton" + data-test-subj="soFinderAddLegacyButton" + onClick={() => + onChoose?.( + 'testId', + 'CONTACT_CARD_EMBEDDABLE', + 'test name', + {} as unknown as SavedObjectCommon + ) + } + > + Add legacy embeddable! + </button> + </> ) ), }; }); describe('add panel flyout', () => { - let container: HelloWorldContainer; + describe('registered embeddables', () => { + let container: Container; + const onAdd = jest.fn(); + + beforeAll(() => { + registerReactEmbeddableSavedObject({ + onAdd, + embeddableType: 'AWESOME_EMBEDDABLE', + savedObjectType: 'AWESOME_EMBEDDABLE', + savedObjectName: 'Awesome sauce', + getIconForSavedObject: () => 'happyface', + }); + + embeddableStart.getEmbeddableFactories = jest.fn().mockReturnValue([]); + }); - beforeEach(() => { - const { overlays } = coreMock.createStart(); - const contactCardEmbeddableFactory = new ContactCardEmbeddableFactory( - (() => null) as any, - overlays - ); + beforeEach(() => { + onAdd.mockClear(); + container = getMockPresentationContainer() as unknown as Container; + // @ts-ignore type is only expected on a dashboard container + container.type = 'DASHBOARD_CONTAINER'; + }); - embeddableStart.getEmbeddableFactories = jest - .fn() - .mockReturnValue([contactCardEmbeddableFactory]); - - container = new HelloWorldContainer( - { - id: '1', - panels: {}, - }, - { - getEmbeddableFactory: embeddableStart.getEmbeddableFactory, - } - ); - container.addNewEmbeddable = jest.fn().mockResolvedValue({ id: 'foo' }); - }); + test('add panel flyout renders SavedObjectFinder', async () => { + const { container: componentContainer } = render(<AddPanelFlyout container={container} />); - test('add panel flyout renders SavedObjectFinder', async () => { - const component = mount(<AddPanelFlyout container={container} />); + // component should not contain an extra flyout + // https://github.com/elastic/kibana/issues/64789 + const flyout = componentContainer.querySelector('.euiFlyout'); + expect(flyout).toBeNull(); + const dummyButton = screen.queryAllByTestId('soFinderAddButton'); + expect(dummyButton).toHaveLength(1); + }); - // https://github.com/elastic/kibana/issues/64789 - expect(component.exists(EuiFlyout)).toBe(false); - expect(component.find('#soFinderDummyButton').length).toBe(1); - }); + test('add panel calls the registered onAdd method', async () => { + render(<AddPanelFlyout container={container} />); + expect(Object.values(container.children$.value).length).toBe(0); + fireEvent.click(screen.getByTestId('soFinderAddButton')); + // flush promises + await new Promise((r) => setTimeout(r, 1)); - test('add panel adds embeddable to container', async () => { - const component = mount(<AddPanelFlyout container={container} />); + expect(onAdd).toHaveBeenCalledWith(container, {}); + }); + + test('runs telemetry function on add embeddable', async () => { + render(<AddPanelFlyout container={container} />); - expect(Object.values(container.getInput().panels).length).toBe(0); - component.find('#soFinderDummyButton').simulate('click'); - // flush promises - await new Promise((r) => setTimeout(r, 1)); + expect(Object.values(container.children$.value).length).toBe(0); + fireEvent.click(screen.getByTestId('soFinderAddButton')); + // flush promises + await new Promise((r) => setTimeout(r, 1)); - expect(container.addNewEmbeddable).toHaveBeenCalled(); + expect(usageCollection.reportUiCounter).toHaveBeenCalledWith( + 'DASHBOARD_CONTAINER', + 'click', + 'AWESOME_EMBEDDABLE:add' + ); + }); }); - test('shows a success toast on add', async () => { - const component = mount(<AddPanelFlyout container={container} />); - component.find('#soFinderDummyButton').simulate('click'); - // flush promises - await new Promise((r) => setTimeout(r, 1)); + describe('legacy embeddables', () => { + let container: Container; + + beforeEach(() => { + const { overlays } = coreMock.createStart(); + const contactCardEmbeddableFactory = new ContactCardEmbeddableFactory( + (() => null) as any, + overlays + ); + + embeddableStart.getEmbeddableFactories = jest + .fn() + .mockReturnValue([contactCardEmbeddableFactory]); - expect(core.notifications.toasts.addSuccess).toHaveBeenCalledWith({ - 'data-test-subj': 'addObjectToContainerSuccess', - title: 'test name was added', + container = getMockPresentationContainer() as unknown as Container; + container.addNewEmbeddable = jest.fn().mockResolvedValue({ id: 'foo' }); + // @ts-ignore type is only expected on a dashboard container + container.type = 'HELLO_WORLD_CONTAINER'; }); - }); - test('runs telemetry function on add', async () => { - const component = mount(<AddPanelFlyout container={container} />); + test('add panel flyout renders SavedObjectFinder', async () => { + const { container: componentContainer } = render(<AddPanelFlyout container={container} />); + + // component should not contain an extra flyout + // https://github.com/elastic/kibana/issues/64789 + const flyout = componentContainer.querySelector('.euiFlyout'); + expect(flyout).toBeNull(); + const dummyButton = screen.queryAllByTestId('soFinderAddLegacyButton'); + expect(dummyButton).toHaveLength(1); + }); + + test('add panel adds legacy embeddable to container', async () => { + render(<AddPanelFlyout container={container} />); + expect(Object.values(container.children$.value).length).toBe(0); + fireEvent.click(screen.getByTestId('soFinderAddLegacyButton')); + // flush promises + await new Promise((r) => setTimeout(r, 1)); + + expect(container.addNewEmbeddable).toHaveBeenCalled(); + }); - expect(Object.values(container.getInput().panels).length).toBe(0); - component.find('#soFinderDummyButton').simulate('click'); - // flush promises - await new Promise((r) => setTimeout(r, 1)); + test('shows a success toast on add', async () => { + render(<AddPanelFlyout container={container} />); + fireEvent.click(screen.getByTestId('soFinderAddLegacyButton')); + // flush promises + await new Promise((r) => setTimeout(r, 1)); - expect(usageCollection.reportUiCounter).toHaveBeenCalledWith( - 'HELLO_WORLD_CONTAINER', - 'click', - 'CONTACT_CARD_EMBEDDABLE:add' - ); + expect(core.notifications.toasts.addSuccess).toHaveBeenCalledWith({ + 'data-test-subj': 'addObjectToContainerSuccess', + title: 'test name was added', + }); + }); + + test('runs telemetry function on add legacy embeddable', async () => { + render(<AddPanelFlyout container={container} />); + + expect(Object.values(container.children$.value).length).toBe(0); + fireEvent.click(screen.getByTestId('soFinderAddLegacyButton')); + // flush promises + await new Promise((r) => setTimeout(r, 1)); + + expect(usageCollection.reportUiCounter).toHaveBeenCalledWith( + 'HELLO_WORLD_CONTAINER', + 'click', + 'CONTACT_CARD_EMBEDDABLE:add' + ); + }); }); }); diff --git a/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx b/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx index b0bdcdbf6a91d..1c9e9c00c8b12 100644 --- a/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx +++ b/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx @@ -9,32 +9,46 @@ import React, { useCallback, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; -import { Toast } from '@kbn/core/public'; -import { METRIC_TYPE } from '@kbn/analytics'; import { EuiFlyoutBody, EuiFlyoutHeader, EuiTitle } from '@elastic/eui'; -import { SavedObjectCommon } from '@kbn/saved-objects-finder-plugin/common'; +import { FinderAttributes, SavedObjectCommon } from '@kbn/saved-objects-finder-plugin/common'; import { SavedObjectFinder, SavedObjectFinderProps, type SavedObjectMetaData, } from '@kbn/saved-objects-finder-plugin/public'; +import { METRIC_TYPE } from '@kbn/analytics'; +import { apiHasType } from '@kbn/presentation-publishing'; +import { Toast } from '@kbn/core/public'; +import { PresentationContainer } from '@kbn/presentation-containers'; import { core, embeddableStart, - usageCollection, savedObjectsTaggingOss, contentManagement, + usageCollection, } from '../kibana_services'; +import { savedObjectToPanel } from '../registry/saved_object_to_panel_methods'; import { - IContainer, + ReactEmbeddableSavedObject, EmbeddableFactory, - SavedObjectEmbeddableInput, EmbeddableFactoryNotFoundError, + getReactEmbeddableSavedObjects, + PanelIncompatibleError, } from '../lib'; -import { savedObjectToPanel } from '../registry/saved_object_to_panel_methods'; -type FactoryMap = { [key: string]: EmbeddableFactory }; +type LegacyFactoryMap = { [key: string]: EmbeddableFactory }; +type FactoryMap<TSavedObjectAttributes extends FinderAttributes = FinderAttributes> = { + [key: string]: ReactEmbeddableSavedObject<TSavedObjectAttributes> & { type: string }; +}; + +type CanAddNewEmbeddable = { + addNewEmbeddable: (type: string, explicitInput: unknown, attributes: unknown) => { id: string }; +}; + +const apiCanAddNewEmbeddable = (api: unknown): api is CanAddNewEmbeddable => { + return typeof (api as CanAddNewEmbeddable).addNewEmbeddable === 'function'; +}; let lastToast: string | Toast; const showSuccessToast = (name: string) => { @@ -52,42 +66,62 @@ const showSuccessToast = (name: string) => { }; const runAddTelemetry = ( - parentType: string, - factory: EmbeddableFactory, - savedObject: SavedObjectCommon + parent: unknown, + factoryType: string, + savedObject: SavedObjectCommon, + savedObjectMetaData?: SavedObjectMetaData ) => { - const type = factory.savedObjectMetaData?.getSavedObjectSubType - ? factory.savedObjectMetaData.getSavedObjectSubType(savedObject) - : factory.type; + if (!apiHasType(parent)) return; + const type = savedObjectMetaData?.getSavedObjectSubType + ? savedObjectMetaData.getSavedObjectSubType(savedObject) + : factoryType; - usageCollection?.reportUiCounter?.(parentType, METRIC_TYPE.CLICK, `${type}:add`); + usageCollection?.reportUiCounter?.(parent.type, METRIC_TYPE.CLICK, `${type}:add`); }; export const AddPanelFlyout = ({ container, onAddPanel, }: { - container: IContainer; + container: PresentationContainer; onAddPanel?: (id: string) => void; }) => { - const factoriesBySavedObjectType: FactoryMap = useMemo(() => { + const legacyFactoriesBySavedObjectType: LegacyFactoryMap = useMemo(() => { return [...embeddableStart.getEmbeddableFactories()] - .filter((embeddableFactory) => Boolean(embeddableFactory.savedObjectMetaData?.type)) + .filter( + (embeddableFactory) => + Boolean(embeddableFactory.savedObjectMetaData?.type) && !embeddableFactory.isContainerType + ) .reduce((acc, factory) => { acc[factory.savedObjectMetaData!.type] = factory; return acc; + }, {} as LegacyFactoryMap); + }, []); + + const factoriesBySavedObjectType: FactoryMap = useMemo(() => { + return [...getReactEmbeddableSavedObjects()] + .filter(([type, embeddableFactory]) => { + return Boolean(embeddableFactory.savedObjectMetaData?.type); + }) + .reduce((acc, [type, factory]) => { + acc[factory.savedObjectMetaData!.type] = { + ...factory, + type, + }; + return acc; }, {} as FactoryMap); }, []); const metaData = useMemo( () => - Object.values(factoriesBySavedObjectType) - .filter( - (embeddableFactory) => - Boolean(embeddableFactory.savedObjectMetaData) && !embeddableFactory.isContainerType - ) - .map(({ savedObjectMetaData }) => savedObjectMetaData as SavedObjectMetaData), - [factoriesBySavedObjectType] + [ + ...Object.values(factoriesBySavedObjectType), + ...Object.values(legacyFactoriesBySavedObjectType), + ] + .filter((embeddableFactory) => Boolean(embeddableFactory.savedObjectMetaData)) + .map(({ savedObjectMetaData }) => savedObjectMetaData!) + .sort((a, b) => a.type.localeCompare(b.type)), + [factoriesBySavedObjectType, legacyFactoriesBySavedObjectType] ); const onChoose: SavedObjectFinderProps['onChoose'] = useCallback( @@ -97,11 +131,26 @@ export const AddPanelFlyout = ({ name: string, savedObject: SavedObjectCommon ) => { - const factoryForSavedObjectType = factoriesBySavedObjectType[type]; - if (!factoryForSavedObjectType) { + if (factoriesBySavedObjectType[type]) { + const factory = factoriesBySavedObjectType[type]; + const { onAdd, savedObjectMetaData } = factory; + + onAdd(container, savedObject); + runAddTelemetry(container, factory.type, savedObject, savedObjectMetaData); + return; + } + + const legacyFactoryForSavedObjectType = legacyFactoriesBySavedObjectType[type]; + if (!legacyFactoryForSavedObjectType) { throw new EmbeddableFactoryNotFoundError(type); } + // container.addNewEmbeddable is required for legacy embeddables to support + // panel placement strategies + if (!apiCanAddNewEmbeddable(container)) { + throw new PanelIncompatibleError(); + } + let embeddableId: string; if (savedObjectToPanel[type]) { @@ -109,15 +158,15 @@ export const AddPanelFlyout = ({ const panel = savedObjectToPanel[type](savedObject); const { id: _embeddableId } = await container.addNewEmbeddable( - factoryForSavedObjectType.type, + legacyFactoryForSavedObjectType.type, panel, savedObject.attributes ); embeddableId = _embeddableId; } else { - const { id: _embeddableId } = await container.addNewEmbeddable<SavedObjectEmbeddableInput>( - factoryForSavedObjectType.type, + const { id: _embeddableId } = await container.addNewEmbeddable( + legacyFactoryForSavedObjectType.type, { savedObjectId: id }, savedObject.attributes ); @@ -128,9 +177,10 @@ export const AddPanelFlyout = ({ onAddPanel?.(embeddableId); showSuccessToast(name); - runAddTelemetry(container.type, factoryForSavedObjectType, savedObject); + const { savedObjectMetaData, type: factoryType } = legacyFactoryForSavedObjectType; + runAddTelemetry(container, factoryType, savedObject, savedObjectMetaData); }, - [container, factoriesBySavedObjectType, onAddPanel] + [container, factoriesBySavedObjectType, legacyFactoriesBySavedObjectType, onAddPanel] ); return ( diff --git a/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx b/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx index e8efd7ea8820d..580d9d8b49606 100644 --- a/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx +++ b/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx @@ -12,7 +12,7 @@ import { OverlayRef } from '@kbn/core/public'; import { EuiLoadingSpinner } from '@elastic/eui'; import { toMountPoint } from '@kbn/kibana-react-plugin/public'; -import { IContainer } from '../lib'; +import { PresentationContainer } from '@kbn/presentation-containers'; import { core } from '../kibana_services'; const LazyAddPanelFlyout = React.lazy(async () => { @@ -25,7 +25,7 @@ export const openAddPanelFlyout = ({ onAddPanel, onClose, }: { - container: IContainer; + container: PresentationContainer; onAddPanel?: (id: string) => void; onClose?: () => void; }): OverlayRef => { diff --git a/src/plugins/embeddable/public/index.ts b/src/plugins/embeddable/public/index.ts index ae3940123766d..083fd9e774ce9 100644 --- a/src/plugins/embeddable/public/index.ts +++ b/src/plugins/embeddable/public/index.ts @@ -46,6 +46,7 @@ export { PANEL_BADGE_TRIGGER, PANEL_HOVER_TRIGGER, PANEL_NOTIFICATION_TRIGGER, + registerReactEmbeddableSavedObject, runEmbeddableFactoryMigrations, SELECT_RANGE_TRIGGER, shouldFetch$, diff --git a/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts b/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts new file mode 100644 index 0000000000000..35ee2d2735ba3 --- /dev/null +++ b/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts @@ -0,0 +1,94 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { IconType } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { PresentationContainer } from '@kbn/presentation-containers'; +import { FinderAttributes, SavedObjectCommon } from '@kbn/saved-objects-finder-plugin/common'; +import { SavedObjectMetaData } from '@kbn/saved-objects-finder-plugin/public'; + +type SOToEmbeddable<TSavedObjectAttributes extends FinderAttributes = FinderAttributes> = ( + container: PresentationContainer, + savedObject: SavedObjectCommon<TSavedObjectAttributes> +) => void; + +export type ReactEmbeddableSavedObject< + TSavedObjectAttributes extends FinderAttributes = FinderAttributes +> = { + onAdd: SOToEmbeddable<TSavedObjectAttributes>; + savedObjectMetaData: SavedObjectMetaData; +}; + +const registry: Map<string, ReactEmbeddableSavedObject<any>> = new Map(); + +/** + * Register an embeddable API saved object with the Add from library flyout. + * + * @example + * registerReactEmbeddableSavedObject({ + * onAdd: (container, savedObject) => { + * container.addNewPanel({ + * panelType: CONTENT_ID, + * initialState: savedObject.attributes, + * }); + * }, + * embeddableType: CONTENT_ID, + * savedObjectType: MAP_SAVED_OBJECT_TYPE, + * savedObjectName: i18n.translate('xpack.maps.mapSavedObjectLabel', { + * defaultMessage: 'Map', + * }), + * getIconForSavedObject: () => APP_ICON, + * }); + */ +export const registerReactEmbeddableSavedObject = < + TSavedObjectAttributes extends FinderAttributes +>({ + onAdd, + embeddableType, + savedObjectType, + savedObjectName, + getIconForSavedObject, + getSavedObjectSubType, + getTooltipForSavedObject, +}: { + onAdd: SOToEmbeddable<TSavedObjectAttributes>; + embeddableType: string; + savedObjectType: string; + savedObjectName: string; + getIconForSavedObject: (savedObject: SavedObjectCommon<TSavedObjectAttributes>) => IconType; + getSavedObjectSubType?: (savedObject: SavedObjectCommon<TSavedObjectAttributes>) => string; + getTooltipForSavedObject?: (savedObject: SavedObjectCommon<TSavedObjectAttributes>) => string; +}) => { + if (registry.has(embeddableType)) { + throw new Error( + i18n.translate('embeddableApi.embeddableSavedObjectRegistry.keyAlreadyExistsError', { + defaultMessage: `Embeddable type {embeddableType} already exists in the registry.`, + values: { embeddableType }, + }) + ); + } + + registry.set(embeddableType, { + onAdd, + savedObjectMetaData: { + name: savedObjectName, + type: savedObjectType, + getIconForSavedObject, + getTooltipForSavedObject, + getSavedObjectSubType, + }, + }); +}; + +export const getReactEmbeddableSavedObjects = < + TSavedObjectAttributes extends FinderAttributes +>() => { + return registry.entries() as IterableIterator< + [string, ReactEmbeddableSavedObject<TSavedObjectAttributes>] + >; +}; diff --git a/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/index.ts b/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/index.ts new file mode 100644 index 0000000000000..4250ba6493c7a --- /dev/null +++ b/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/index.ts @@ -0,0 +1,13 @@ +/* + * 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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { + type ReactEmbeddableSavedObject, + getReactEmbeddableSavedObjects, + registerReactEmbeddableSavedObject, +} from './embeddable_saved_object_registry'; diff --git a/src/plugins/embeddable/public/lib/index.ts b/src/plugins/embeddable/public/lib/index.ts index ecf37a506befc..bf37c5633b5b7 100644 --- a/src/plugins/embeddable/public/lib/index.ts +++ b/src/plugins/embeddable/public/lib/index.ts @@ -16,3 +16,4 @@ export * from './reference_or_value_embeddable'; export * from './self_styled_embeddable'; export * from './filterable_embeddable'; export * from './factory_migrations/run_factory_migrations'; +export * from './embeddable_saved_object_registry'; diff --git a/src/plugins/embeddable/public/registry/saved_object_to_panel_methods.ts b/src/plugins/embeddable/public/registry/saved_object_to_panel_methods.ts index 1647cb6215533..67ccdfe35d083 100644 --- a/src/plugins/embeddable/public/registry/saved_object_to_panel_methods.ts +++ b/src/plugins/embeddable/public/registry/saved_object_to_panel_methods.ts @@ -15,6 +15,10 @@ type SavedObjectToPanelMethod<TSavedObjectAttributes, TByValueInput> = ( export const savedObjectToPanel: Record<string, SavedObjectToPanelMethod<any, any>> = {}; +/** + * @deprecated + * React embeddables should register their saved object types with the registerReactEmbeddableSavedObject registry. + */ export const registerSavedObjectToPanelMethod = <TSavedObjectAttributes, TByValueAttributes>( savedObjectType: string, method: SavedObjectToPanelMethod<TSavedObjectAttributes, TByValueAttributes> diff --git a/src/plugins/embeddable/tsconfig.json b/src/plugins/embeddable/tsconfig.json index a4375a9a1b658..2815767c9ee25 100644 --- a/src/plugins/embeddable/tsconfig.json +++ b/src/plugins/embeddable/tsconfig.json @@ -17,19 +17,18 @@ "@kbn/es-query", "@kbn/core-theme-browser", "@kbn/i18n", - "@kbn/test-jest-helpers", "@kbn/std", "@kbn/expressions-plugin", "@kbn/saved-objects-management-plugin", "@kbn/saved-objects-tagging-oss-plugin", "@kbn/saved-objects-finder-plugin", - "@kbn/analytics", "@kbn/usage-collection-plugin", "@kbn/content-management-plugin", "@kbn/data-views-plugin", "@kbn/presentation-panel-plugin", "@kbn/presentation-publishing", "@kbn/presentation-containers", + "@kbn/analytics", ], "exclude": ["target/**/*"] } diff --git a/test/functional/services/dashboard/add_panel.ts b/test/functional/services/dashboard/add_panel.ts index b5d835101b7a4..1f4fa6b14aeb9 100644 --- a/test/functional/services/dashboard/add_panel.ts +++ b/test/functional/services/dashboard/add_panel.ts @@ -196,7 +196,7 @@ export class DashboardAddPanelService extends FtrService { if (filter) { await this.filterEmbeddableNames(filter.replace('-', ' ')); } - await this.savedObjectsFinder.waitForFilter('Saved search', 'visualization'); + await this.savedObjectsFinder.waitForFilter('Saved search', 'Visualization'); let morePages = true; while (morePages) { searchList.push(await this.addEveryEmbeddableOnCurrentPage()); diff --git a/test/functional/services/saved_objects_finder.ts b/test/functional/services/saved_objects_finder.ts index 98af7785852d8..6ac3c404e39f7 100644 --- a/test/functional/services/saved_objects_finder.ts +++ b/test/functional/services/saved_objects_finder.ts @@ -32,7 +32,7 @@ export class SavedObjectsFinderService extends FtrService { for (let i = 0; i < listItems.length; i++) { const listItem = await listItems[i].findByClassName('euiSelectableListItem__text'); const text = await listItem.getVisibleText(); - if (text.includes(type)) { + if (text === type) { await listItem.click(); await this.toggleFilterPopover(); break; diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 38d5b7847a626..b6cdfc138340e 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -2564,7 +2564,6 @@ "domDragDrop.dropTargets.swap": "Permuter", "domDragDrop.keyboardInstructions": "Appuyez sur la barre d'espace ou sur Entrée pour commencer à faire glisser. Lors du glissement, utilisez les touches fléchées gauche/droite pour vous déplacer entre les cibles de dépôt. Appuyez à nouveau sur la barre d'espace ou sur Entrée pour terminer.", "domDragDrop.keyboardInstructionsReorder": "Appuyez sur la barre d'espace ou sur Entrée pour commencer à faire glisser. Lors du glissement, utilisez les touches fléchées haut/bas pour réorganiser les éléments dans le groupe et les touches gauche/droite pour choisir les cibles de dépôt à l'extérieur du groupe. Appuyez à nouveau sur la barre d'espace ou sur Entrée pour terminer.", - "embeddableApi.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} a été ajouté.", "embeddableApi.attributeService.saveToLibraryError": "Une erreur s'est produite lors de l'enregistrement. Erreur : {errorMessage}.", "embeddableApi.errors.embeddableFactoryNotFound": "Impossible de charger {type}. Veuillez effectuer une mise à niveau vers la distribution par défaut d'Elasticsearch et de Kibana avec la licence appropriée.", "embeddableApi.reactEmbeddable.factoryAlreadyExistsError": "Une usine incorporable pour le type {key} est déjà enregistrée.", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 7fe6ca3a6fdf5..11bc335aa6ae8 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -2558,7 +2558,6 @@ "domDragDrop.dropTargets.swap": "入れ替える", "domDragDrop.keyboardInstructions": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、左右の矢印キーを使用して、ドロップ対象間を移動します。もう一度スペースまたはEnterを押すと終了します。", "domDragDrop.keyboardInstructionsReorder": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、上下矢印キーを使用すると、グループの項目を並べ替えます。左右矢印キーを使用すると、グループの外側でドロップ対象を選択します。もう一度スペースまたはEnterを押すと終了します。", - "embeddableApi.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} が追加されました", "embeddableApi.attributeService.saveToLibraryError": "保存中にエラーが発生しました。エラー:{errorMessage}", "embeddableApi.errors.embeddableFactoryNotFound": "{type} を読み込めません。Elasticsearch と Kibanaのデフォルトのディストリビューションを適切なライセンスでアップグレードしてください。", "embeddableApi.reactEmbeddable.factoryAlreadyExistsError": "タイプ\"{key}\"の埋め込み可能ファクトリはすでに登録されています。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index d57e2b983cd87..1b0f9231a34d8 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -2566,7 +2566,6 @@ "domDragDrop.dropTargets.swap": "交换", "domDragDrop.keyboardInstructions": "按空格键或 enter 键开始拖动。拖动时,请左右箭头键在拖动目标之间移动。再次按空格键或 enter 键结束操作。", "domDragDrop.keyboardInstructionsReorder": "按空格键或 enter 键开始拖动。拖动时,请使用上下箭头键重新排列组中的项目,使用左右箭头键在组之外选择拖动目标。再次按空格键或 enter 键结束操作。", - "embeddableApi.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} 已添加", "embeddableApi.attributeService.saveToLibraryError": "保存时出错。错误:{errorMessage}", "embeddableApi.errors.embeddableFactoryNotFound": "{type} 无法加载。请升级到具有适当许可的默认 Elasticsearch 和 Kibana 分发。", "embeddableApi.reactEmbeddable.factoryAlreadyExistsError": "已注册类型为 {key} 的可嵌入工厂。", From cfd69d79f8b66602a0961c4f9fb6fa5c8bda0668 Mon Sep 17 00:00:00 2001 From: Samiul Monir <150824886+Samiul-TheSoccerFan@users.noreply.github.com> Date: Wed, 24 Apr 2024 17:01:37 -0400 Subject: [PATCH 173/183] Adding condition to remove error message when no indices are present (#181483) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Currently the `No source field` error message still display even if we removes all indices. <img width="1241" alt="Screenshot 2024-04-23 at 2 10 41 PM" src="https://github.com/elastic/kibana/assets/150824886/5a08ba67-6440-49c3-a152-fb459b911840"> This fixes the error message to hide once we remove the index without source fields or when there is no indices. <img width="1246" alt="Screenshot 2024-04-23 at 2 39 46 PM" src="https://github.com/elastic/kibana/assets/150824886/bd157bbc-287e-4cf2-9b6e-bbdc6e656bda"> ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [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 - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### 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) --- .../public/hooks/use_source_indices_field.ts | 2 + .../hooks/use_source_indices_fields.test.tsx | 50 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/x-pack/plugins/search_playground/public/hooks/use_source_indices_field.ts b/x-pack/plugins/search_playground/public/hooks/use_source_indices_field.ts index 93ec081dffef6..8a79f3c0ad2d2 100644 --- a/x-pack/plugins/search_playground/public/hooks/use_source_indices_field.ts +++ b/x-pack/plugins/search_playground/public/hooks/use_source_indices_field.ts @@ -88,6 +88,8 @@ export const useSourceIndicesFields = () => { onElasticsearchQueryChange(createQuery(defaultFields, fields)); onSourceFieldsChange(defaultSourceFields); + } else { + setNoFieldsIndicesWarning(null); } setLoading(false); // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/x-pack/plugins/search_playground/public/hooks/use_source_indices_fields.test.tsx b/x-pack/plugins/search_playground/public/hooks/use_source_indices_fields.test.tsx index a066c33e412ca..20e7551511eb2 100644 --- a/x-pack/plugins/search_playground/public/hooks/use_source_indices_fields.test.tsx +++ b/x-pack/plugins/search_playground/public/hooks/use_source_indices_fields.test.tsx @@ -188,4 +188,54 @@ describe.skip('useSourceIndicesFields Hook', () => { `); }); }); + + it('should not provide any warning message for adding and then removing an index without any fields', async () => { + const querySourceFields: IndicesQuerySourceFields = { + missing_fields_index: { + elser_query_fields: [], + dense_vector_query_fields: [], + bm25_query_fields: [], + source_fields: [], + }, + }; + + postMock.mockResolvedValue(querySourceFields); + + const { result } = renderHook(() => useSourceIndicesFields(), { wrapper }); + const { getValues } = formHookSpy.mock.results[0].value; + + await act(async () => { + result.current.addIndex('missing_fields_index'); + }); + + await act(async () => { + result.current.removeIndex('missing_fields_index'); + }); + + expect(postMock).toHaveBeenCalled(); + + await act(async () => { + expect(result.current.noFieldsIndicesWarning).toBeNull(); + expect(result.current.loading).toBe(false); + expect(getValues()).toMatchInlineSnapshot(` + Object { + "doc_size": 5, + "elasticsearch_query": Object { + "retriever": Object { + "standard": Object { + "query": Object { + "match_all": Object {}, + }, + }, + }, + }, + "indices": Array [], + "prompt": "You are an assistant for question-answering tasks.", + "source_fields": Object { + "missing_fields_index": Array [], + }, + } + `); + }); + }); }); From 31ccbbce66a1dc7f60aea70c6c7aa96a6909fded Mon Sep 17 00:00:00 2001 From: Katerina <aikaterini.patticha@elastic.co> Date: Thu, 25 Apr 2024 00:15:26 +0300 Subject: [PATCH 174/183] [ObsUx] useControlGroupIntegration for APM and Infra dashboards (#181524) closes #180873 https://github.com/elastic/kibana/assets/3369346/0841ec98-c4f3-4ced-b382-4b59ddfba2b0 --- .../apm/public/components/app/service_dashboards/index.tsx | 5 ++++- .../components/asset_details/tabs/dashboards/dashboards.tsx | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_dashboards/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_dashboards/index.tsx index de1de1031d31e..0a9a86f7cbd7f 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_dashboards/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_dashboards/index.tsx @@ -101,7 +101,10 @@ export function ServiceDashboards() { viewMode: ViewMode.VIEW, timeRange: { from: rangeFrom, to: rangeTo }, }); - return Promise.resolve<DashboardCreationOptions>({ getInitialInput }); + return Promise.resolve<DashboardCreationOptions>({ + getInitialInput, + useControlGroupIntegration: true, + }); }, [rangeFrom, rangeTo]); useEffect(() => { diff --git a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx index 51a4d9fe5976e..c326015bfebf9 100644 --- a/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx +++ b/x-pack/plugins/observability_solution/infra/public/components/asset_details/tabs/dashboards/dashboards.tsx @@ -110,7 +110,10 @@ export function Dashboards() { viewMode: ViewMode.VIEW, timeRange: { from: dateRange.from, to: dateRange.to }, }); - return Promise.resolve<DashboardCreationOptions>({ getInitialInput }); + return Promise.resolve<DashboardCreationOptions>({ + getInitialInput, + useControlGroupIntegration: true, + }); }, [dateRange.from, dateRange.to]); useEffect(() => { From d70d0ee168361bc18350c18166610137485ecafb Mon Sep 17 00:00:00 2001 From: James Gowdy <jgowdy@elastic.co> Date: Wed, 24 Apr 2024 22:25:54 +0100 Subject: [PATCH 175/183] [ML] Making job wizard chart endpoints admin only (#181329) The endpoints used supply the data for charts in the AD job wizards are only ever called internally by admin users and so should have a more appropriate capability level. --- x-pack/plugins/ml/server/routes/job_service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/ml/server/routes/job_service.ts b/x-pack/plugins/ml/server/routes/job_service.ts index 04eb4c9c070c8..3ddbf8a46cb65 100644 --- a/x-pack/plugins/ml/server/routes/job_service.ts +++ b/x-pack/plugins/ml/server/routes/job_service.ts @@ -702,7 +702,7 @@ export function jobServiceRoutes({ router, routeGuard }: RouteInitialization) { path: `${ML_INTERNAL_BASE_PATH}/jobs/new_job_line_chart`, access: 'internal', options: { - tags: ['access:ml:canGetJobs'], + tags: ['access:ml:canCreateJob'], }, }) .addVersion( @@ -768,7 +768,7 @@ export function jobServiceRoutes({ router, routeGuard }: RouteInitialization) { path: `${ML_INTERNAL_BASE_PATH}/jobs/new_job_population_chart`, access: 'internal', options: { - tags: ['access:ml:canGetJobs'], + tags: ['access:ml:canCreateJob'], }, }) .addVersion( From 7895df6ee27d568d9b840fc52c578f5e3766f734 Mon Sep 17 00:00:00 2001 From: Philippe Oberti <philippe.oberti@elastic.co> Date: Wed, 24 Apr 2024 18:14:32 -0500 Subject: [PATCH 176/183] [Security Solution][Alert details] - use expandable flyout within Session Viewer (#181180) --- .../hooks/use_detail_panel.test.tsx | 243 ++---------------- .../side_panel/hooks/use_detail_panel.tsx | 71 +++-- 2 files changed, 50 insertions(+), 264 deletions(-) diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.test.tsx index a217cd0baea47..2f2f21b9b9a00 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.test.tsx @@ -5,13 +5,15 @@ * 2.0. */ import { renderHook, act } from '@testing-library/react-hooks'; +import React from 'react'; import type { UseDetailPanelConfig } from './use_detail_panel'; import { useDetailPanel } from './use_detail_panel'; import { timelineActions } from '../../../store'; import { useDeepEqualSelector } from '../../../../common/hooks/use_selector'; import { SourcererScopeName } from '../../../../common/store/sourcerer/model'; import { TimelineId, TimelineTabs } from '../../../../../common/types/timeline'; -import { FlowTargetSourceDest } from '../../../../../common/search_strategy'; +import { ExpandableFlyoutProvider } from '@kbn/expandable-flyout'; +import { TestProviders } from '../../../../common/mock'; const mockDispatch = jest.fn(); jest.mock('../../../../common/lib/kibana'); @@ -52,237 +54,34 @@ describe('useDetailPanel', () => { (useDeepEqualSelector as jest.Mock).mockClear(); }); + const wrapper = ({ children }: { children: React.ReactChild }) => ( + <TestProviders> + <ExpandableFlyoutProvider>{children}</ExpandableFlyoutProvider> + </TestProviders> + ); + const renderUseDetailPanel = (props = defaultProps) => + renderHook(() => useDetailPanel(props), { wrapper }); + test('should return open fns (event, host, network, user), handleOnDetailsPanelClosed fn, shouldShowDetailsPanel, and the DetailsPanel component', async () => { await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); + const { result, waitForNextUpdate } = renderUseDetailPanel(); await waitForNextUpdate(); expect(result.current.openEventDetailsPanel).toBeDefined(); - expect(result.current.openHostDetailsPanel).toBeDefined(); - expect(result.current.openNetworkDetailsPanel).toBeDefined(); - expect(result.current.openUserDetailsPanel).toBeDefined(); - expect(result.current.handleOnDetailsPanelClosed).toBeDefined(); expect(result.current.shouldShowDetailsPanel).toBe(false); expect(result.current.DetailsPanel).toBeNull(); }); }); - describe('open event details', () => { - const testEventId = '123'; - test('should fire redux action to open event details panel', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - result.current?.openEventDetailsPanel(testEventId); - - expect(mockDispatch).toHaveBeenCalled(); - expect(timelineActions.toggleDetailPanel).toHaveBeenCalled(); - }); - }); - - test('should call provided onClose callback provided to openEventDetailsPanel fn', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - result.current?.openEventDetailsPanel(testEventId, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); - }); - }); - - test('should call the last onClose callback provided to openEventDetailsPanel fn', async () => { - // Test that the onClose ref is properly updated - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - const secondMockOnClose = jest.fn(); - result.current?.openEventDetailsPanel(testEventId, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); - - result.current?.openEventDetailsPanel(testEventId, secondMockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(secondMockOnClose).toHaveBeenCalled(); - }); - }); - }); - - describe('open host details', () => { - const hostName = 'my-host'; - test('should fire redux action to open host details panel', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - result.current?.openHostDetailsPanel(hostName); - - expect(mockDispatch).toHaveBeenCalled(); - expect(timelineActions.toggleDetailPanel).toHaveBeenCalled(); - }); - }); - - test('should call provided onClose callback provided to openEventDetailsPanel fn', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - result.current?.openHostDetailsPanel(hostName, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); - }); - }); - - test('should call the last onClose callback provided to openEventDetailsPanel fn', async () => { - // Test that the onClose ref is properly updated - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - const secondMockOnClose = jest.fn(); - result.current?.openHostDetailsPanel(hostName, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); - - result.current?.openEventDetailsPanel(hostName, secondMockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(secondMockOnClose).toHaveBeenCalled(); - }); - }); - }); - - describe('open network details', () => { - const ip = '1.2.3.4'; - const flowTarget = FlowTargetSourceDest.source; - test('should fire redux action to open host details panel', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - result.current?.openNetworkDetailsPanel(ip, flowTarget); - - expect(mockDispatch).toHaveBeenCalled(); - expect(timelineActions.toggleDetailPanel).toHaveBeenCalled(); - }); - }); - - test('should call provided onClose callback provided to openEventDetailsPanel fn', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - result.current?.openNetworkDetailsPanel(ip, flowTarget, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); - }); - }); - - test('should call the last onClose callback provided to openEventDetailsPanel fn', async () => { - // Test that the onClose ref is properly updated - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - const secondMockOnClose = jest.fn(); - result.current?.openNetworkDetailsPanel(ip, flowTarget, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); - - result.current?.openNetworkDetailsPanel(ip, flowTarget, secondMockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(secondMockOnClose).toHaveBeenCalled(); - }); - }); - }); - - describe('open user details', () => { - const userName = 'IAmBatman'; - test('should fire redux action to open host details panel', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - result.current?.openUserDetailsPanel(userName); - - expect(mockDispatch).toHaveBeenCalled(); - expect(timelineActions.toggleDetailPanel).toHaveBeenCalled(); - }); - }); - - test('should call provided onClose callback provided to openEventDetailsPanel fn', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - result.current?.openUserDetailsPanel(userName, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); - }); - }); - - test('should call the last onClose callback provided to openEventDetailsPanel fn', async () => { - // Test that the onClose ref is properly updated - await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(defaultProps); - }); - await waitForNextUpdate(); - - const mockOnClose = jest.fn(); - const secondMockOnClose = jest.fn(); - result.current?.openUserDetailsPanel(userName, mockOnClose); - result.current?.handleOnDetailsPanelClosed(); - - expect(mockOnClose).toHaveBeenCalled(); + test('should fire redux action to open event details panel', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderUseDetailPanel(); + await waitForNextUpdate(); - result.current?.openUserDetailsPanel(userName, secondMockOnClose); - result.current?.handleOnDetailsPanelClosed(); + result.current?.openEventDetailsPanel('123'); - expect(secondMockOnClose).toHaveBeenCalled(); - }); + expect(mockDispatch).toHaveBeenCalled(); + expect(timelineActions.toggleDetailPanel).toHaveBeenCalled(); }); }); @@ -298,9 +97,7 @@ describe('useDetailPanel', () => { }; await act(async () => { - const { result, waitForNextUpdate } = renderHook(() => { - return useDetailPanel(updatedProps); - }); + const { result, waitForNextUpdate } = renderUseDetailPanel(updatedProps); await waitForNextUpdate(); expect(result.current.DetailsPanel).toMatchInlineSnapshot(` diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx index 9111b641dbc12..7167ab106634a 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx @@ -9,9 +9,11 @@ import React, { useMemo, useCallback, useRef } from 'react'; import { useDispatch } from 'react-redux'; import type { EntityType } from '@kbn/timelines-plugin/common'; import { dataTableSelectors } from '@kbn/securitysolution-data-table'; +import { useExpandableFlyoutApi } from '@kbn/expandable-flyout'; +import { useUiSetting$ } from '@kbn/kibana-react-plugin/public'; +import { useKibana } from '../../../../common/lib/kibana'; import type { ExpandedDetailType } from '../../../../../common/types'; import { getScopedActions, isInTableScope, isTimelineScope } from '../../../../helpers'; -import type { FlowTargetSourceDest } from '../../../../../common/search_strategy'; import { timelineSelectors } from '../../../store'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import type { SourcererScopeName } from '../../../../common/store/sourcerer/model'; @@ -19,6 +21,8 @@ import { TimelineTabs } from '../../../../../common/types/timeline'; import { timelineDefaults } from '../../../store/defaults'; import { useDeepEqualSelector } from '../../../../common/hooks/use_selector'; import { DetailsPanel as DetailsPanelComponent } from '..'; +import { ENABLE_EXPANDABLE_FLYOUT_SETTING } from '../../../../../common/constants'; +import { DocumentDetailsRightPanelKey } from '../../../../flyout/document_details/right'; export interface UseDetailPanelConfig { entityType?: EntityType; @@ -29,14 +33,6 @@ export interface UseDetailPanelConfig { } export interface UseDetailPanelReturn { openEventDetailsPanel: (eventId?: string, onClose?: () => void) => void; - openHostDetailsPanel: (hostName: string, onClose?: () => void) => void; - openNetworkDetailsPanel: ( - ip: string, - flowTarget: FlowTargetSourceDest, - onClose?: () => void - ) => void; - openUserDetailsPanel: (userName: string, onClose?: () => void) => void; - handleOnDetailsPanelClosed: () => void; DetailsPanel: JSX.Element | null; shouldShowDetailsPanel: boolean; } @@ -48,8 +44,13 @@ export const useDetailPanel = ({ scopeId, tabType = TimelineTabs.query, }: UseDetailPanelConfig): UseDetailPanelReturn => { + const { telemetry } = useKibana().services; const { browserFields, selectedPatterns, runtimeMappings } = useSourcererDataView(sourcererScope); const dispatch = useDispatch(); + + const { openFlyout } = useExpandableFlyoutApi(); + const [isSecurityFlyoutEnabled] = useUiSetting$<boolean>(ENABLE_EXPANDABLE_FLYOUT_SETTING); + const getScope = useMemo(() => { if (isTimelineScope(scopeId)) { return timelineSelectors.getTimelineByIdSelector(); @@ -97,47 +98,39 @@ export const useDetailPanel = ({ const openEventDetailsPanel = useCallback( (eventId?: string, onClose?: () => void) => { - if (eventId) { + if (isSecurityFlyoutEnabled) { + openFlyout({ + right: { + id: DocumentDetailsRightPanelKey, + params: { + id: eventId, + indexName: eventDetailsIndex, + scopeId, + }, + }, + }); + telemetry.reportDetailsFlyoutOpened({ + location: scopeId, + panel: 'right', + }); + } else if (eventId) { loadDetailsPanel({ panelView: 'eventDetail', params: { eventId, indexName: eventDetailsIndex }, }); + onPanelClose.current = onClose ?? noopPanelClose; } - onPanelClose.current = onClose ?? noopPanelClose; - }, - [loadDetailsPanel, eventDetailsIndex] - ); - - const openHostDetailsPanel = useCallback( - (hostName: string, onClose?: () => void) => { - loadDetailsPanel({ panelView: 'hostDetail', params: { hostName } }); - onPanelClose.current = onClose ?? noopPanelClose; - }, - [loadDetailsPanel] - ); - - const openNetworkDetailsPanel = useCallback( - (ip: string, flowTarget: FlowTargetSourceDest, onClose?: () => void) => { - loadDetailsPanel({ panelView: 'networkDetail', params: { ip, flowTarget } }); - onPanelClose.current = onClose ?? noopPanelClose; - }, - [loadDetailsPanel] - ); - - const openUserDetailsPanel = useCallback( - (userName: string, onClose?: () => void) => { - loadDetailsPanel({ panelView: 'userDetail', params: { userName } }); - onPanelClose.current = onClose ?? noopPanelClose; }, - [loadDetailsPanel] + [isSecurityFlyoutEnabled, openFlyout, eventDetailsIndex, scopeId, telemetry, loadDetailsPanel] ); const handleOnDetailsPanelClosed = useCallback(() => { + if (isSecurityFlyoutEnabled) return; if (onPanelClose.current) onPanelClose.current(); if (scopedActions) { dispatch(scopedActions.toggleDetailPanel({ tabType, id: scopeId })); } - }, [scopedActions, tabType, scopeId, dispatch]); + }, [isSecurityFlyoutEnabled, scopedActions, dispatch, tabType, scopeId]); const DetailsPanel = useMemo( () => @@ -166,10 +159,6 @@ export const useDetailPanel = ({ return { openEventDetailsPanel, - openHostDetailsPanel, - openNetworkDetailsPanel, - openUserDetailsPanel, - handleOnDetailsPanelClosed, shouldShowDetailsPanel, DetailsPanel, }; From f0e4a97219f299a686c64fce4191f7bd92572cac Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko <jo.naumenko@gmail.com> Date: Wed, 24 Apr 2024 17:34:05 -0700 Subject: [PATCH 177/183] [Security AI Assistant] Conversation migration bugs (#181512) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed duplication conversations and actionTypeId for removed connectors: <img width="2030" alt="Screenshot 2024-04-23 at 8 17 16 AM" src="https://github.com/elastic/kibana/assets/55110838/e85a894a-c9ae-4691-95ba-24f37931f47e"> <img width="2253" alt="Screenshot 2024-04-23 at 8 03 44 AM" src="https://github.com/elastic/kibana/assets/55110838/c8040605-b994-424e-bf52-652f30057d31"> --- .../api/conversations/conversations.ts | 40 ++++++++++ .../packages/kbn-elastic-assistant/index.ts | 1 + .../public/assistant/provider.test.tsx | 2 - .../public/assistant/provider.tsx | 73 +++++++++---------- 4 files changed, 74 insertions(+), 42 deletions(-) diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts index 6e07e9f4cd91d..54bac7e563acc 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts @@ -12,8 +12,10 @@ import { ApiConfig, Replacements, API_VERSIONS, + ELASTIC_AI_ASSISTANT_CONVERSATIONS_URL_FIND, } from '@kbn/elastic-assistant-common'; import { Conversation, ClientMessage } from '../../../assistant_context/types'; +import { FetchConversationsResponse } from './use_fetch_current_user_conversations'; export interface GetConversationByIdParams { http: HttpSetup; @@ -58,6 +60,44 @@ export const getConversationById = async ({ } }; +/** + * API call for getting all user conversations. + * + * @param {Object} options - The options object. + * @param {HttpSetup} options.http - HttpSetup + * @param {IToasts} [options.toasts] - IToasts + * @param {AbortSignal} [options.signal] - AbortSignal + * + * @returns {Promise<FetchConversationsResponse>} + */ +export const getUserConversations = async ({ + http, + signal, + toasts, +}: { + http: HttpSetup; + toasts?: IToasts; + signal?: AbortSignal | undefined; +}) => { + try { + return await http.fetch<FetchConversationsResponse>( + ELASTIC_AI_ASSISTANT_CONVERSATIONS_URL_FIND, + { + method: 'GET', + version: API_VERSIONS.public.v1, + signal, + } + ); + } catch (error) { + toasts?.addError(error.body && error.body.message ? new Error(error.body.message) : error, { + title: i18n.translate('xpack.elasticAssistant.conversations.getUserConversationsError', { + defaultMessage: 'Error fetching conversations', + }), + }); + throw error; + } +}; + export interface PostConversationParams { http: HttpSetup; conversation: Partial<Conversation>; diff --git a/x-pack/packages/kbn-elastic-assistant/index.ts b/x-pack/packages/kbn-elastic-assistant/index.ts index 6b3cb0044db6b..8cfb517851ceb 100644 --- a/x-pack/packages/kbn-elastic-assistant/index.ts +++ b/x-pack/packages/kbn-elastic-assistant/index.ts @@ -159,3 +159,4 @@ export { getConversationById } from './impl/assistant/api/conversations/conversa export { mergeBaseWithPersistedConversations } from './impl/assistant/helpers'; export { UpgradeButtons } from './impl/upgrade/upgrade_buttons'; +export { getUserConversations } from './impl/assistant/api'; diff --git a/x-pack/plugins/security_solution/public/assistant/provider.test.tsx b/x-pack/plugins/security_solution/public/assistant/provider.test.tsx index bba04ed15eecb..9ee276181b65e 100644 --- a/x-pack/plugins/security_solution/public/assistant/provider.test.tsx +++ b/x-pack/plugins/security_solution/public/assistant/provider.test.tsx @@ -158,7 +158,6 @@ describe('createConversations', () => { await act(async () => { const { waitForNextUpdate } = renderHook(() => createConversations( - [], coreMock.createStart().notifications, http, mockStorage as unknown as Storage @@ -181,7 +180,6 @@ describe('createConversations', () => { await act(async () => { const { waitForNextUpdate } = renderHook(() => createConversations( - [], coreMock.createStart().notifications, http, mockStorage as unknown as Storage diff --git a/x-pack/plugins/security_solution/public/assistant/provider.tsx b/x-pack/plugins/security_solution/public/assistant/provider.tsx index 2f12e02386d25..e11c39c00cf18 100644 --- a/x-pack/plugins/security_solution/public/assistant/provider.tsx +++ b/x-pack/plugins/security_solution/public/assistant/provider.tsx @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React, { useCallback } from 'react'; +import React, { useEffect } from 'react'; import { parse } from '@kbn/datemath'; import type { Storage } from '@kbn/kibana-utils-plugin/public'; import { i18n } from '@kbn/i18n'; @@ -13,15 +13,14 @@ import type { Conversation } from '@kbn/elastic-assistant'; import { AssistantProvider as ElasticAssistantProvider, bulkUpdateConversations, - mergeBaseWithPersistedConversations, - useFetchCurrentUserConversations, + getUserConversations, } from '@kbn/elastic-assistant'; -import type { FetchConversationsResponse } from '@kbn/elastic-assistant/impl/assistant/api'; import { once } from 'lodash/fp'; import type { HttpSetup } from '@kbn/core-http-browser'; import type { Message } from '@kbn/elastic-assistant-common'; import { loadAllActions as loadConnectors } from '@kbn/triggers-actions-ui-plugin/public/common/constants'; +import { APP_ID } from '../../common'; import { useBasePath, useKibana } from '../common/lib/kibana'; import { useAssistantTelemetry } from './use_assistant_telemetry'; import { getComments } from './get_comments'; @@ -46,22 +45,15 @@ const LOCAL_CONVERSATIONS_MIGRATION_STATUS_TOAST_TITLE = i18n.translate( ); export const createConversations = async ( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - conversationsData: Record<string, any>, notifications: NotificationsStart, http: HttpSetup, storage: Storage ) => { // migrate conversations with messages from the local storage // won't happen next time - const conversations = storage.get(`securitySolution.${LOCAL_STORAGE_KEY}`); + const conversations = storage.get(`${APP_ID}.${LOCAL_STORAGE_KEY}`); - if ( - conversationsData && - Object.keys(conversationsData).length === 0 && - conversations && - Object.keys(conversations).length > 0 - ) { + if (conversations && Object.keys(conversations).length > 0) { const conversationsToCreate = Object.values(conversations).filter( // eslint-disable-next-line @typescript-eslint/no-explicit-any (c: any) => c.messages && c.messages.length > 0 @@ -87,10 +79,14 @@ export const createConversations = async ( const selectedConnector = (connectors ?? []).find( (connector) => connector.id === c.apiConfig.connectorId ); - c.apiConfig = { - ...c.apiConfig, - actionTypeId: selectedConnector?.actionTypeId, - }; + if (selectedConnector) { + c.apiConfig = { + ...c.apiConfig, + actionTypeId: selectedConnector.actionTypeId, + }; + } else { + c.apiConfig = undefined; + } } res[c.id] = { ...c, @@ -104,7 +100,7 @@ export const createConversations = async ( notifications.toasts ); if (bulkResult && bulkResult.success) { - storage.remove(`securitySolution.${LOCAL_STORAGE_KEY}`); + storage.remove(`${APP_ID}.${LOCAL_STORAGE_KEY}`); notifications.toasts?.addSuccess({ iconType: 'check', title: LOCAL_CONVERSATIONS_MIGRATION_STATUS_TOAST_TITLE, @@ -132,30 +128,27 @@ export const AssistantProvider: React.FC = ({ children }) => { const assistantAvailability = useAssistantAvailability(); const assistantTelemetry = useAssistantTelemetry(); - const migrateConversationsFromLocalStorage = once( - (conversationsData: Record<string, Conversation>) => - createConversations(conversationsData, notifications, http, storage) - ); - const onFetchedConversations = useCallback( - (conversationsData: FetchConversationsResponse): Record<string, Conversation> => { - const mergedData = mergeBaseWithPersistedConversations({}, conversationsData); - if (assistantAvailability.isAssistantEnabled && assistantAvailability.hasAssistantPrivilege) { - migrateConversationsFromLocalStorage(mergedData); + useEffect(() => { + const migrateConversationsFromLocalStorage = once(async () => { + const res = await getUserConversations({ + http, + }); + if ( + assistantAvailability.isAssistantEnabled && + assistantAvailability.hasAssistantPrivilege && + res.total === 0 + ) { + await createConversations(notifications, http, storage); } - return mergedData; - }, - [ - assistantAvailability.hasAssistantPrivilege, - assistantAvailability.isAssistantEnabled, - migrateConversationsFromLocalStorage, - ] - ); - useFetchCurrentUserConversations({ + }); + migrateConversationsFromLocalStorage(); + }, [ + assistantAvailability.hasAssistantPrivilege, + assistantAvailability.isAssistantEnabled, http, - onFetch: onFetchedConversations, - isAssistantEnabled: - assistantAvailability.isAssistantEnabled && assistantAvailability.hasAssistantPrivilege, - }); + notifications, + storage, + ]); const { signalIndexName } = useSignalIndex(); const alertsIndexPattern = signalIndexName ?? undefined; From 86222a3c989b9b87d0a73feeeb32577f8df44680 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Thu, 25 Apr 2024 05:08:16 +0100 Subject: [PATCH 178/183] skip flaky suite (#167288) --- .../migrations/group3/actions/actions_test_suite.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts index f89b9891b8b21..1d11bb604959c 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions_test_suite.ts @@ -1348,7 +1348,8 @@ export const runActionTestSuite = ({ ); }); - it('returns a left es_response_too_large error when a read batch exceeds the maxResponseSize', async () => { + // FLAKY: https://github.com/elastic/kibana/issues/167288 + it.skip('returns a left es_response_too_large error when a read batch exceeds the maxResponseSize', async () => { const openPitTask = openPit({ client, index: 'existing_index_with_docs' }); const pitResponse = (await openPitTask()) as Either.Right<OpenPitResponse>; From 2469e6479832e95c83b4d3bc157886b17b2a5a2b Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Thu, 25 Apr 2024 05:20:04 +0100 Subject: [PATCH 179/183] skip flaky suite (#181507) --- .../exception_comments_serverless.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts index 5af48e8216c3c..9fd4433e01f38 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/exceptions/workflows/basic_license_essentials_tier/exception_comments_serverless.ts @@ -27,7 +27,8 @@ export default ({ getService }: FtrProviderContext) => { const supertestWithoutAuth = getService('supertestWithoutAuth'); describe('@serverless exception item comments - serverless specific behavior', () => { - describe('Rule Exceptions', () => { + // FLAKY: https://github.com/elastic/kibana/issues/181507 + describe.skip('Rule Exceptions', () => { afterEach(async () => { await deleteAllExceptions(supertest, log); }); From 8ee659745326ec5735b7f37b5ec9286eafd54d81 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 25 Apr 2024 01:32:44 -0400 Subject: [PATCH 180/183] [api-docs] 2024-04-25 Daily api_docs build (#181648) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/684 --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- .../ai_assistant_management_selection.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.mdx | 2 +- api_docs/apm.devdocs.json | 66 +- api_docs/apm.mdx | 2 +- api_docs/apm_data_access.mdx | 2 +- api_docs/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.devdocs.json | 42 +- api_docs/console.mdx | 4 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/dataset_quality.devdocs.json | 40 +- api_docs/dataset_quality.mdx | 2 +- api_docs/deprecations_by_api.mdx | 5 +- api_docs/deprecations_by_plugin.mdx | 7 +- api_docs/deprecations_by_team.mdx | 4 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/elastic_assistant.mdx | 2 +- api_docs/embeddable.devdocs.json | 433 +- api_docs/embeddable.mdx | 4 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_annotation_listing.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.devdocs.json | 4 + api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/ingest_pipelines.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_actions_types.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_log_pattern_analysis.mdx | 2 +- api_docs/kbn_aiops_log_rate_analysis.mdx | 2 +- .../kbn_alerting_api_integration_helpers.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerting_types.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_collection_utils.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_data_view.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_bfetch_error.mdx | 2 +- api_docs/kbn_calculate_auto.mdx | 2 +- .../kbn_calculate_width_from_char_count.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.devdocs.json | 33 + api_docs/kbn_cell_actions.mdx | 4 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mock.mdx | 2 +- api_docs/kbn_code_owners.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.devdocs.json | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- ...tent_management_tabbed_table_list_view.mdx | 2 +- ...kbn_content_management_table_list_view.mdx | 2 +- ...tent_management_table_list_view_common.mdx | 2 +- ...ntent_management_table_list_view_table.mdx | 2 +- api_docs/kbn_content_management_utils.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...equest_handler_context_server.devdocs.json | 20 + ...re_http_request_handler_context_server.mdx | 4 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.devdocs.json | 12 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.devdocs.json | 18 + api_docs/kbn_core_i18n_server.mdx | 4 +- ...kbn_core_i18n_server_internal.devdocs.json | 43 +- api_docs/kbn_core_i18n_server_internal.mdx | 7 +- .../kbn_core_i18n_server_mocks.devdocs.json | 24 + api_docs/kbn_core_i18n_server_mocks.mdx | 4 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- .../kbn_core_lifecycle_browser.devdocs.json | 44 + api_docs/kbn_core_lifecycle_browser.mdx | 4 +- ..._core_lifecycle_browser_mocks.devdocs.json | 24 + api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- .../kbn_core_lifecycle_server.devdocs.json | 44 + api_docs/kbn_core_lifecycle_server.mdx | 4 +- ...n_core_lifecycle_server_mocks.devdocs.json | 16 + api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- .../kbn_core_plugins_contracts_browser.mdx | 2 +- .../kbn_core_plugins_contracts_server.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- .../kbn_core_security_browser.devdocs.json | 20 +- api_docs/kbn_core_security_browser.mdx | 2 +- .../kbn_core_security_browser_internal.mdx | 2 +- api_docs/kbn_core_security_browser_mocks.mdx | 2 +- api_docs/kbn_core_security_common.mdx | 2 +- .../kbn_core_security_server.devdocs.json | 20 +- api_docs/kbn_core_security_server.mdx | 2 +- .../kbn_core_security_server_internal.mdx | 2 +- api_docs/kbn_core_security_server_mocks.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- .../kbn_core_test_helpers_model_versions.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- ...kbn_core_user_profile_browser.devdocs.json | 704 + api_docs/kbn_core_user_profile_browser.mdx | 33 + ...user_profile_browser_internal.devdocs.json | 207 + ...kbn_core_user_profile_browser_internal.mdx | 33 + ...re_user_profile_browser_mocks.devdocs.json | 154 + .../kbn_core_user_profile_browser_mocks.mdx | 30 + .../kbn_core_user_profile_common.devdocs.json | 364 + api_docs/kbn_core_user_profile_common.mdx | 33 + .../kbn_core_user_profile_server.devdocs.json | 701 + api_docs/kbn_core_user_profile_server.mdx | 33 + ..._user_profile_server_internal.devdocs.json | 375 + .../kbn_core_user_profile_server_internal.mdx | 33 + ...ore_user_profile_server_mocks.devdocs.json | 178 + .../kbn_core_user_profile_server_mocks.mdx | 30 + api_docs/kbn_core_user_settings_server.mdx | 2 +- ...kbn_core_user_settings_server_internal.mdx | 2 +- .../kbn_core_user_settings_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_custom_icons.mdx | 2 +- api_docs/kbn_custom_integrations.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_data_forge.mdx | 2 +- api_docs/kbn_data_service.mdx | 2 +- api_docs/kbn_data_stream_adapter.mdx | 2 +- api_docs/kbn_data_view_utils.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_deeplinks_analytics.mdx | 2 +- api_docs/kbn_deeplinks_devtools.mdx | 2 +- api_docs/kbn_deeplinks_fleet.mdx | 2 +- api_docs/kbn_deeplinks_management.mdx | 2 +- api_docs/kbn_deeplinks_ml.mdx | 2 +- .../kbn_deeplinks_observability.devdocs.json | 16 + api_docs/kbn_deeplinks_observability.mdx | 4 +- api_docs/kbn_deeplinks_search.mdx | 2 +- api_docs/kbn_deeplinks_security.mdx | 2 +- api_docs/kbn_deeplinks_shared.mdx | 2 +- api_docs/kbn_default_nav_analytics.mdx | 2 +- api_docs/kbn_default_nav_devtools.mdx | 2 +- api_docs/kbn_default_nav_management.mdx | 2 +- api_docs/kbn_default_nav_ml.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_discover_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_elastic_agent_utils.mdx | 2 +- api_docs/kbn_elastic_assistant.devdocs.json | 106 + api_docs/kbn_elastic_assistant.mdx | 4 +- api_docs/kbn_elastic_assistant_common.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_esql_ast.mdx | 2 +- api_docs/kbn_esql_utils.mdx | 2 +- api_docs/kbn_esql_validation_autocomplete.mdx | 2 +- api_docs/kbn_event_annotation_common.mdx | 2 +- api_docs/kbn_event_annotation_components.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_field_utils.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- api_docs/kbn_formatters.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- .../kbn_ftr_common_functional_ui_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_generate_console_definitions.mdx | 2 +- api_docs/kbn_generate_csv.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_index_management.mdx | 2 +- api_docs/kbn_inference_integration_flyout.mdx | 2 +- api_docs/kbn_infra_forge.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_ipynb.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_lens_embeddable_utils.mdx | 2 +- api_docs/kbn_lens_formula_docs.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_content_badge.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_management_cards_navigation.mdx | 2 +- .../kbn_management_settings_application.mdx | 2 +- ...ent_settings_components_field_category.mdx | 2 +- ...gement_settings_components_field_input.mdx | 2 +- ...nagement_settings_components_field_row.mdx | 2 +- ...bn_management_settings_components_form.mdx | 2 +- ...n_management_settings_field_definition.mdx | 2 +- api_docs/kbn_management_settings_ids.mdx | 2 +- ...n_management_settings_section_registry.mdx | 2 +- api_docs/kbn_management_settings_types.mdx | 2 +- .../kbn_management_settings_utilities.mdx | 2 +- api_docs/kbn_management_storybook_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_maps_vector_tile_utils.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_anomaly_utils.mdx | 2 +- api_docs/kbn_ml_cancellable_search.mdx | 2 +- api_docs/kbn_ml_category_validator.mdx | 2 +- api_docs/kbn_ml_chi2test.mdx | 2 +- .../kbn_ml_data_frame_analytics_utils.mdx | 2 +- api_docs/kbn_ml_data_grid.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_date_utils.mdx | 2 +- api_docs/kbn_ml_error_utils.mdx | 2 +- api_docs/kbn_ml_in_memory_table.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_kibana_theme.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_number_utils.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_random_sampler_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_runtime_field_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_time_buckets.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_ui_actions.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_mock_idp_utils.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- .../kbn_observability_alerting_test_data.mdx | 2 +- ...ility_get_padded_alert_time_range_util.mdx | 2 +- api_docs/kbn_openapi_bundler.mdx | 2 +- api_docs/kbn_openapi_generator.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_panel_loader.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_check.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_presentation_containers.mdx | 2 +- api_docs/kbn_presentation_publishing.mdx | 2 +- api_docs/kbn_profiling_utils.mdx | 2 +- api_docs/kbn_random_sampling.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_react_kibana_context_common.mdx | 2 +- api_docs/kbn_react_kibana_context_render.mdx | 2 +- api_docs/kbn_react_kibana_context_root.mdx | 2 +- api_docs/kbn_react_kibana_context_styled.mdx | 2 +- api_docs/kbn_react_kibana_context_theme.mdx | 2 +- api_docs/kbn_react_kibana_mount.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_reporting_common.mdx | 2 +- api_docs/kbn_reporting_csv_share_panel.mdx | 2 +- api_docs/kbn_reporting_export_types_csv.mdx | 2 +- .../kbn_reporting_export_types_csv_common.mdx | 2 +- api_docs/kbn_reporting_export_types_pdf.mdx | 2 +- .../kbn_reporting_export_types_pdf_common.mdx | 2 +- api_docs/kbn_reporting_export_types_png.mdx | 2 +- .../kbn_reporting_export_types_png_common.mdx | 2 +- api_docs/kbn_reporting_mocks_server.mdx | 2 +- api_docs/kbn_reporting_public.mdx | 2 +- api_docs/kbn_reporting_server.mdx | 2 +- api_docs/kbn_resizable_layout.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_router_to_openapispec.mdx | 2 +- api_docs/kbn_router_utils.mdx | 2 +- api_docs/kbn_rrule.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_saved_objects_settings.mdx | 2 +- api_docs/kbn_search_api_panels.mdx | 2 +- api_docs/kbn_search_connectors.devdocs.json | 19054 ++++++++++------ api_docs/kbn_search_connectors.mdx | 4 +- api_docs/kbn_search_errors.mdx | 2 +- api_docs/kbn_search_index_documents.mdx | 2 +- api_docs/kbn_search_response_warnings.mdx | 2 +- api_docs/kbn_security_hardening.mdx | 2 +- ..._security_plugin_types_common.devdocs.json | 64 +- api_docs/kbn_security_plugin_types_common.mdx | 2 +- ..._security_plugin_types_public.devdocs.json | 504 +- api_docs/kbn_security_plugin_types_public.mdx | 4 +- ..._security_plugin_types_server.devdocs.json | 293 +- api_docs/kbn_security_plugin_types_server.mdx | 4 +- api_docs/kbn_security_solution_features.mdx | 2 +- api_docs/kbn_security_solution_navigation.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_data_table.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_serverless_common_settings.mdx | 2 +- .../kbn_serverless_observability_settings.mdx | 2 +- api_docs/kbn_serverless_project_switcher.mdx | 2 +- api_docs/kbn_serverless_search_settings.mdx | 2 +- api_docs/kbn_serverless_security_settings.mdx | 2 +- api_docs/kbn_serverless_storybook_config.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +- api_docs/kbn_shared_ux_error_boundary.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_tabbed_modal.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_solution_nav_es.mdx | 2 +- api_docs/kbn_solution_nav_oblt.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_sort_predicates.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_eui_helpers.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_text_based_editor.mdx | 2 +- api_docs/kbn_timerange.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_triggers_actions_ui_types.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_unified_data_table.mdx | 2 +- api_docs/kbn_unified_doc_viewer.mdx | 2 +- api_docs/kbn_unified_field_list.mdx | 2 +- api_docs/kbn_unsaved_changes_badge.mdx | 2 +- api_docs/kbn_use_tracked_promise.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_visualization_ui_components.mdx | 2 +- api_docs/kbn_visualization_utils.mdx | 2 +- api_docs/kbn_xstate_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kbn_zod_helpers.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.devdocs.json | 8 + api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/links.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/logs_explorer.mdx | 2 +- api_docs/logs_shared.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/metrics_data_access.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/mock_idp_plugin.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/no_data_page.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- .../observability_a_i_assistant.devdocs.json | 130 +- api_docs/observability_a_i_assistant.mdx | 4 +- api_docs/observability_a_i_assistant_app.mdx | 2 +- .../observability_ai_assistant_management.mdx | 2 +- api_docs/observability_logs_explorer.mdx | 2 +- api_docs/observability_onboarding.mdx | 2 +- api_docs/observability_shared.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/painless_lab.mdx | 2 +- api_docs/plugin_directory.mdx | 45 +- api_docs/presentation_panel.devdocs.json | 35 +- api_docs/presentation_panel.mdx | 2 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/profiling_data_access.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/search_connectors.mdx | 2 +- api_docs/search_notebooks.mdx | 2 +- api_docs/search_playground.mdx | 2 +- api_docs/security.devdocs.json | 387 +- api_docs/security.mdx | 4 +- api_docs/security_solution.mdx | 2 +- api_docs/security_solution_ess.mdx | 2 +- api_docs/security_solution_serverless.mdx | 2 +- api_docs/serverless.mdx | 2 +- api_docs/serverless_observability.mdx | 2 +- api_docs/serverless_search.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/slo.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/text_based_languages.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.devdocs.json | 6 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_doc_viewer.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/uptime.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 722 files changed, 17441 insertions(+), 8421 deletions(-) create mode 100644 api_docs/kbn_core_user_profile_browser.devdocs.json create mode 100644 api_docs/kbn_core_user_profile_browser.mdx create mode 100644 api_docs/kbn_core_user_profile_browser_internal.devdocs.json create mode 100644 api_docs/kbn_core_user_profile_browser_internal.mdx create mode 100644 api_docs/kbn_core_user_profile_browser_mocks.devdocs.json create mode 100644 api_docs/kbn_core_user_profile_browser_mocks.mdx create mode 100644 api_docs/kbn_core_user_profile_common.devdocs.json create mode 100644 api_docs/kbn_core_user_profile_common.mdx create mode 100644 api_docs/kbn_core_user_profile_server.devdocs.json create mode 100644 api_docs/kbn_core_user_profile_server.mdx create mode 100644 api_docs/kbn_core_user_profile_server_internal.devdocs.json create mode 100644 api_docs/kbn_core_user_profile_server_internal.mdx create mode 100644 api_docs/kbn_core_user_profile_server_mocks.devdocs.json create mode 100644 api_docs/kbn_core_user_profile_server_mocks.mdx diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 235eb1266444a..402680307651d 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 9f715de756869..bbd25c4d494da 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx index 56c82f528294c..0980bd159eab3 100644 --- a/api_docs/ai_assistant_management_selection.mdx +++ b/api_docs/ai_assistant_management_selection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection title: "aiAssistantManagementSelection" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementSelection plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection'] --- import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index 36a180e2b4c3f..b66931a062e7e 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index ddaf4a2a4c7f8..22c61c6a424fa 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 1eabcac165064..5aaaf2b6be7ee 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -4639,7 +4639,17 @@ "PartialC", "<{ transactionName: ", "StringC", - "; }>, ", + "; filters: ", + "Type", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.BoolQuery", + "text": "BoolQuery" + }, + ", string, unknown>; }>, ", "IntersectionC", "<[", "TypeC", @@ -4711,7 +4721,15 @@ "RollupInterval", ".None>]>; }>]>]>; }> | undefined; handler: ({}: ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; bucketSizeInSeconds: number; } & { transactionName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", + " & { params: { path: { serviceName: string; }; query: { transactionType: string; bucketSizeInSeconds: number; } & { transactionName?: string | undefined; filters?: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.BoolQuery", + "text": "BoolQuery" + }, + " | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", "Branded", "<string, ", { @@ -4899,7 +4917,17 @@ "PartialC", "<{ transactionName: ", "StringC", - "; }>, ", + "; filters: ", + "Type", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.BoolQuery", + "text": "BoolQuery" + }, + ", string, unknown>; }>, ", "IntersectionC", "<[", "TypeC", @@ -4973,7 +5001,15 @@ "APMRouteHandlerResources", " & { params: { path: { serviceName: string; }; query: { transactionType: string; latencyAggregationType: ", "LatencyAggregationType", - "; bucketSizeInSeconds: number; useDurationSummary: boolean; } & { transactionName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", + "; bucketSizeInSeconds: number; useDurationSummary: boolean; } & { transactionName?: string | undefined; filters?: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.BoolQuery", + "text": "BoolQuery" + }, + " | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", "Branded", "<string, ", { @@ -6075,7 +6111,17 @@ "PartialC", "<{ transactionName: ", "StringC", - "; }>, ", + "; filters: ", + "Type", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.BoolQuery", + "text": "BoolQuery" + }, + ", string, unknown>; }>, ", "IntersectionC", "<[", "TypeC", @@ -6147,7 +6193,15 @@ "RollupInterval", ".None>]>; }>]>]>; }> | undefined; handler: ({}: ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; bucketSizeInSeconds: number; } & { transactionName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", + " & { params: { path: { serviceName: string; }; query: { transactionType: string; bucketSizeInSeconds: number; } & { transactionName?: string | undefined; filters?: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.BoolQuery", + "text": "BoolQuery" + }, + " | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", "Branded", "<string, ", { diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 2f87aa59a7751..7aa5a13fe9ae2 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index c4c03333823c9..799c30aeb48d8 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 3f67f06dc42a5..a2546115ac092 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index b0d31fb29446e..da1fd40d641d0 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index 1d53fde562bee..591d1cf7ed618 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index f090926eb8a66..be15192e54a92 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index a08ec62044c1f..1ef52ddeba9ea 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 744434d03b9e3..56c23234daf11 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 50ec3784ee51d..0296f1e59cdb6 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 5789a1bafec32..fc2cd78389d53 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index a08a47e4542e3..f9d6a4b98d5f2 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 48ede8336aaa2..1a8b9f2c7e1a2 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index e2c44d0c3b033..8a99427eb3b8d 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.devdocs.json b/api_docs/console.devdocs.json index 402d842a5d536..5aa8157a41915 100644 --- a/api_docs/console.devdocs.json +++ b/api_docs/console.devdocs.json @@ -530,38 +530,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "console", - "id": "def-public.EmbeddableConsoleProps", - "type": "Interface", - "tags": [], - "label": "EmbeddableConsoleProps", - "description": [ - "\nEmbeddableConsoleProps are optional props used when rendering the embeddable developer console." - ], - "path": "src/plugins/console/public/types/embeddable_console.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "console", - "id": "def-public.EmbeddableConsoleProps.size", - "type": "CompoundType", - "tags": [], - "label": "size", - "description": [ - "\nThe default height of the content area." - ], - "signature": [ - "\"m\" | \"s\" | \"l\" | undefined" - ], - "path": "src/plugins/console/public/types/embeddable_console.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "console", "id": "def-public.EmbeddedConsoleView", @@ -803,15 +771,7 @@ "\nEmbeddableConsole is a functional component used to render a portable version of the dev tools console on any page in Kibana" ], "signature": [ - "React.FC<", - { - "pluginId": "console", - "scope": "public", - "docId": "kibConsolePluginApi", - "section": "def-public.EmbeddableConsoleProps", - "text": "EmbeddableConsoleProps" - }, - "> | undefined" + "React.FC<{}> | undefined" ], "path": "src/plugins/console/public/types/plugin_dependencies.ts", "deprecated": false, diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 7aec6b5f42ff9..294bd4028191f 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kiban | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 40 | 0 | 30 | 0 | +| 38 | 0 | 30 | 0 | ## Client diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index a70ac9c2e0eb1..84d86ec893e5f 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index bfed4d645626e..20e38f524b03b 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index fcf993fd83945..75dadb42861f3 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 7b994dd255d7e..2ea00ac0b489c 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 0677e2d4a1017..9e58ca715c828 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index b39328966ea9c..1fdecb67bff7f 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 0e22cdc482aca..efe20023ae1f2 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index c2ff9efe3af71..4861ce9f7f377 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index b31b991de2530..60a8a1721711b 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index b7dd9d023af35..4e5e87ec3e988 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index 26b4c6f10ed71..07e26f8c4182c 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 24c07b0cfbf20..6ce0a534b71ef 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index fac8c97f8aa7c..5ea83a2f85e78 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/dataset_quality.devdocs.json b/api_docs/dataset_quality.devdocs.json index 8b24872620a3a..b4ed739f30770 100644 --- a/api_docs/dataset_quality.devdocs.json +++ b/api_docs/dataset_quality.devdocs.json @@ -179,7 +179,7 @@ "DatasetQualityRouteHandlerResources", " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { start: number; end: number; }; }; }) => Promise<{ estimatedDataInBytes: number | null; }>; } & ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + "; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ", "TypeC", "<{ path: ", "TypeC", @@ -187,7 +187,23 @@ "StringC", "; }>; }> | undefined; handler: ({}: ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | undefined; lastActivity?: number | undefined; }>; } & ", + " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; }>; } & ", + "DatasetQualityRouteCreateOptions", + "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ dataStream: ", + "StringC", + "; }>; query: ", + "TypeC", + "<{ start: ", + "Type", + "<number, string, unknown>; end: ", + "Type", + "<number, string, unknown>; }>; }> | undefined; handler: ({}: ", + "DatasetQualityRouteHandlerResources", + " & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; }>; } & ", "DatasetQualityRouteCreateOptions", "; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", "TypeC", @@ -298,7 +314,7 @@ "DatasetQualityRouteHandlerResources", " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { start: number; end: number; }; }; }) => Promise<{ estimatedDataInBytes: number | null; }>; } & ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + "; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ", "TypeC", "<{ path: ", "TypeC", @@ -306,7 +322,23 @@ "StringC", "; }>; }> | undefined; handler: ({}: ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | undefined; lastActivity?: number | undefined; }>; } & ", + " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; }>; } & ", + "DatasetQualityRouteCreateOptions", + "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ dataStream: ", + "StringC", + "; }>; query: ", + "TypeC", + "<{ start: ", + "Type", + "<number, string, unknown>; end: ", + "Type", + "<number, string, unknown>; }>; }> | undefined; handler: ({}: ", + "DatasetQualityRouteHandlerResources", + " & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; }>; } & ", "DatasetQualityRouteCreateOptions", "; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", "TypeC", diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index 43bce00047f50..ad4ecc3bd122e 100644 --- a/api_docs/dataset_quality.mdx +++ b/api_docs/dataset_quality.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality title: "datasetQuality" image: https://source.unsplash.com/400x175/?github description: API docs for the datasetQuality plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality'] --- import datasetQualityObj from './dataset_quality.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 051e7415a342f..fdd44f63c849d 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -112,6 +112,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibDataPluginApi" section="def-server.DataView.removeScriptedField" text="removeScriptedField"/> | dataViews, dataViewManagement | - | | <DocLink id="kibDataPluginApi" section="def-server.DataView.getScriptedFields" text="getScriptedFields"/> | dataViews, dataViewManagement | - | | <DocLink id="kibDataViewsPluginApi" section="def-public.DataView.flattenHit" text="flattenHit"/> | maps | - | +| <DocLink id="kibEmbeddablePluginApi" section="def-public.registerSavedObjectToPanelMethod" text="registerSavedObjectToPanelMethod"/> | savedSearch, visualizations, lens, maps | - | | <DocLink id="kibDataViewsPluginApi" section="def-public.DataView.removeScriptedField" text="removeScriptedField"/> | dataViewManagement | - | | <DocLink id="kibDataViewsPluginApi" section="def-public.DataView.getScriptedFields" text="getScriptedFields"/> | dataViewManagement | - | | <DocLink id="kibDataViewsPluginApi" section="def-server.getFieldByName" text="getFieldByName"/> | unifiedSearch | - | @@ -152,7 +153,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibLicensingPluginApi" section="def-server.LicensingPluginSetup.license$" text="license$"/> | spaces, security, actions, alerting, aiops, ml, remoteClusters, graph, indexLifecycleManagement, mapsEms, osquery, securitySolution, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | 8.8.0 | | <DocLink id="kibLicensingPluginApi" section="def-public.PublicLicense.mode" text="mode"/> | fleet, apm, security, securitySolution | 8.8.0 | | <DocLink id="kibLicensingPluginApi" section="def-server.PublicLicense.mode" text="mode"/> | fleet, apm, security, securitySolution | 8.8.0 | -| <DocLink id="kibFeaturesPluginApi" section="def-server.PluginSetupContract.getKibanaFeatures" text="getKibanaFeatures"/> | spaces, security, alerting | 8.8.0 | +| <DocLink id="kibFeaturesPluginApi" section="def-server.PluginSetupContract.getKibanaFeatures" text="getKibanaFeatures"/> | spaces, security, alerting, cases | 8.8.0 | | <DocLink id="kibSavedObjectsPluginApi" section="def-public.SavedObjectSaveModal" text="SavedObjectSaveModal"/> | embeddable, presentationUtil, lens, dashboard, discover, graph, links | 8.8.0 | | <DocLink id="kibKbnCoreApplicationBrowserPluginApi" section="def-common.AppMountParameters.appBasePath" text="appBasePath"/> | @kbn/core-application-browser-internal, @kbn/core-application-browser-mocks, management, fleet, searchPlayground, security, kibanaOverview, @kbn/core | 8.8.0 | | <DocLink id="kibFeaturesPluginApi" section="def-server.PluginSetupContract.getElasticsearchFeatures" text="getElasticsearchFeatures"/> | security | 8.8.0 | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index aae677be01c4a..fbb240b4802ad 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -487,6 +487,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| +| <DocLink id="kibFeaturesPluginApi" section="def-server.PluginSetupContract.getKibanaFeatures" text="getKibanaFeatures"/> | [factory.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/client/factory.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | | <DocLink id="kibKbnCoreSavedObjectsApiBrowserPluginApi" section="def-common.ResolvedSimpleSavedObject" text="ResolvedSimpleSavedObject"/> | [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/common/ui/types.ts#:~:text=ResolvedSimpleSavedObject) | - | | <DocLink id="kibKbnCoreSavedObjectsServerPluginApi" section="def-common.SavedObjectsType.migrations" text="migrations"/> | [cases.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/cases/cases.ts#:~:text=migrations), [configure.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/configure.ts#:~:text=migrations), [comments.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/comments.ts#:~:text=migrations), [user_actions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/user_actions.ts#:~:text=migrations), [connector_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/connector_mappings.ts#:~:text=migrations) | - | | <DocLink id="kibKbnCoreSavedObjectsServerPluginApi" section="def-common.SavedObjectsType.convertToMultiNamespaceTypeVersion" text="convertToMultiNamespaceTypeVersion"/> | [cases.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/cases/cases.ts#:~:text=convertToMultiNamespaceTypeVersion), [configure.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/configure.ts#:~:text=convertToMultiNamespaceTypeVersion), [comments.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/comments.ts#:~:text=convertToMultiNamespaceTypeVersion), [user_actions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/user_actions.ts#:~:text=convertToMultiNamespaceTypeVersion), [connector_mappings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/saved_object_types/connector_mappings.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -1025,6 +1026,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| +| <DocLink id="kibEmbeddablePluginApi" section="def-public.registerSavedObjectToPanelMethod" text="registerSavedObjectToPanelMethod"/> | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod) | - | | <DocLink id="kibKibanaReactPluginApi" section="def-public.toMountPoint" text="toMountPoint"/> | [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [remove_layer_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/remove_layer_action.tsx#:~:text=toMountPoint), [remove_layer_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/remove_layer_action.tsx#:~:text=toMountPoint), [revert_changes_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx#:~:text=toMountPoint), [revert_changes_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx#:~:text=toMountPoint), [edit_action_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/edit_action_helpers.ts#:~:text=toMountPoint), [edit_action_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/edit_action_helpers.ts#:~:text=toMountPoint), [in_app_embeddable_edit_action_helpers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/in_app_embeddable_edit_action_helpers.tsx#:~:text=toMountPoint), [in_app_embeddable_edit_action_helpers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/in_app_embeddable_edit_action_helpers.tsx#:~:text=toMountPoint) | - | | <DocLink id="kibKibanaReactPluginApi" section="def-public.KibanaThemeProvider" text="KibanaThemeProvider"/> | [help_popover.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/help_popover.tsx#:~:text=KibanaThemeProvider), [help_popover.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/help_popover.tsx#:~:text=KibanaThemeProvider), [help_popover.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/help_popover.tsx#:~:text=KibanaThemeProvider), [expression.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx#:~:text=KibanaThemeProvider), [expression.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx#:~:text=KibanaThemeProvider), [expression.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx#:~:text=KibanaThemeProvider), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=KibanaThemeProvider), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=KibanaThemeProvider), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=KibanaThemeProvider), [settings_menu.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/settings_menu.tsx#:~:text=KibanaThemeProvider)+ 15 more | - | | <DocLink id="kibSavedObjectsPluginApi" section="def-public.SavedObjectSaveModal" text="SavedObjectSaveModal"/> | [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=SavedObjectSaveModal), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | @@ -1103,6 +1105,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibDataPluginApi" section="def-common.DataView.flattenHit" text="flattenHit"/> | [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | | <DocLink id="kibDataPluginApi" section="def-server.DataView.flattenHit" text="flattenHit"/> | [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | | <DocLink id="kibDataViewsPluginApi" section="def-public.DataView.flattenHit" text="flattenHit"/> | [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | +| <DocLink id="kibEmbeddablePluginApi" section="def-public.registerSavedObjectToPanelMethod" text="registerSavedObjectToPanelMethod"/> | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod) | - | | <DocLink id="kibKibanaReactPluginApi" section="def-public.toMountPoint" text="toMountPoint"/> | [render_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/render_app.tsx#:~:text=toMountPoint), [render_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/render_app.tsx#:~:text=toMountPoint) | - | | <DocLink id="kibKibanaReactPluginApi" section="def-public.KibanaThemeProvider" text="KibanaThemeProvider"/> | [map_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx#:~:text=KibanaThemeProvider), [map_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx#:~:text=KibanaThemeProvider), [map_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx#:~:text=KibanaThemeProvider), [render_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/render_app.tsx#:~:text=KibanaThemeProvider), [render_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/render_app.tsx#:~:text=KibanaThemeProvider), [render_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/render_app.tsx#:~:text=KibanaThemeProvider) | - | | <DocLink id="kibKbnCoreSavedObjectsApiBrowserPluginApi" section="def-common.ResolvedSimpleSavedObject" text="ResolvedSimpleSavedObject"/> | [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject), [map_attribute_service.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/maps/public/map_attribute_service.ts#:~:text=ResolvedSimpleSavedObject) | - | @@ -1313,6 +1316,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| +| <DocLink id="kibEmbeddablePluginApi" section="def-public.registerSavedObjectToPanelMethod" text="registerSavedObjectToPanelMethod"/> | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod) | - | | <DocLink id="kibKbnCoreSavedObjectsApiBrowserPluginApi" section="def-common.ResolvedSimpleSavedObject" text="ResolvedSimpleSavedObject"/> | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/public/services/saved_searches/types.ts#:~:text=ResolvedSimpleSavedObject) | - | | <DocLink id="kibKbnCoreSavedObjectsApiServerPluginApi" section="def-common.SavedObjectAttributes" text="SavedObjectAttributes"/> | [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes), [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes), [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes), [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes) | - | | <DocLink id="kibKbnCoreSavedObjectsServerPluginApi" section="def-common.SavedObjectsType.migrations" text="migrations"/> | [search.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search.ts#:~:text=migrations) | - | @@ -1618,6 +1622,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| +| <DocLink id="kibEmbeddablePluginApi" section="def-public.registerSavedObjectToPanelMethod" text="registerSavedObjectToPanelMethod"/> | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/plugin.ts#:~:text=registerSavedObjectToPanelMethod) | - | | <DocLink id="kibKibanaReactPluginApi" section="def-public.toMountPoint" text="toMountPoint"/> | [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [use_visualize_app_state.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/use/use_visualize_app_state.tsx#:~:text=toMountPoint), [use_visualize_app_state.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/use/use_visualize_app_state.tsx#:~:text=toMountPoint), [visualize_no_match.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_no_match.tsx#:~:text=toMountPoint), [visualize_no_match.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_no_match.tsx#:~:text=toMountPoint), [index.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/index.tsx#:~:text=toMountPoint), [index.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/index.tsx#:~:text=toMountPoint) | - | | <DocLink id="kibKibanaReactPluginApi" section="def-public.KibanaThemeProvider" text="KibanaThemeProvider"/> | [use_visualize_app_state.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/use/use_visualize_app_state.tsx#:~:text=KibanaThemeProvider), [use_visualize_app_state.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/use/use_visualize_app_state.tsx#:~:text=KibanaThemeProvider), [use_visualize_app_state.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/utils/use/use_visualize_app_state.tsx#:~:text=KibanaThemeProvider), [visualize_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx#:~:text=KibanaThemeProvider), [visualize_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx#:~:text=KibanaThemeProvider), [visualize_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx#:~:text=KibanaThemeProvider), [show_new_vis.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/show_new_vis.tsx#:~:text=KibanaThemeProvider), [show_new_vis.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/show_new_vis.tsx#:~:text=KibanaThemeProvider), [show_new_vis.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/show_new_vis.tsx#:~:text=KibanaThemeProvider), [visualize_no_match.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_no_match.tsx#:~:text=KibanaThemeProvider)+ 5 more | - | | <DocLink id="kibSavedObjectsFinderPluginApi" section="def-public.SavedObjectMetaData.includeFields" text="includeFields"/> | [search_selection.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx#:~:text=includeFields), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=includeFields) | - | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 7b40831d1685f..8460fd190f707 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -154,7 +154,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| alerting | <DocLink id="kibFeaturesPluginApi" section="def-server.PluginSetupContract.getKibanaFeatures" text="getKibanaFeatures"/> | [plugin.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | +| alerting | <DocLink id="kibFeaturesPluginApi" section="def-server.PluginSetupContract.getKibanaFeatures" text="getKibanaFeatures"/> | [plugin.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.test.ts#:~:text=getKibanaFeatures), [factory.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cases/server/client/factory.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | | alerting | <DocLink id="kibLicensingPluginApi" section="def-server.LicensingPluginSetup.license$" text="license$"/> | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index ade608994ec68..4a56a6100718f 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index e7cc9c0433189..fcec3dbe617cc 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index ec2b1653b1ecf..c10dc338490b0 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 5073c811f88bd..cab4f1534dd60 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index e69a37548dac6..b63e71281457c 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index a150cb0eb1c35..8142a978325a2 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -8781,29 +8781,13 @@ "signature": [ "({ container, onAddPanel, onClose, }: { container: ", { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" - }, - "<{}, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" - }, - "<{}>, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" }, - ">; onAddPanel?: ((id: string) => void) | undefined; onClose?: (() => void) | undefined; }) => ", + "; onAddPanel?: ((id: string) => void) | undefined; onClose?: (() => void) | undefined; }) => ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", @@ -8836,29 +8820,12 @@ "description": [], "signature": [ { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" - }, - "<{}, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" - }, - "<{}>, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" - }, - ">" + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + } ], "path": "src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx", "deprecated": false, @@ -8977,7 +8944,7 @@ "section": "def-public.DefaultEmbeddableApi", "text": "DefaultEmbeddableApi" }, - "<StateType>>({ maybeId, type, state, parentApi, onApiAvailable, panelProps, onAnyStateChange, }: { maybeId?: string | undefined; type: string; state: ", + "<StateType>>({ maybeId, type, state, parentApi, onApiAvailable, panelProps, onAnyStateChange, hidePanelChrome, }: { maybeId?: string | undefined; type: string; state: ", { "pluginId": "@kbn/presentation-containers", "scope": "common", @@ -8993,7 +8960,7 @@ "section": "def-public.PresentationPanelProps", "text": "PresentationPanelProps" }, - "<ApiType, {}>, \"showShadow\" | \"showBorder\" | \"showBadges\" | \"showNotifications\" | \"hideHeader\" | \"hideInspector\"> | undefined; onAnyStateChange?: ((state: ", + "<ApiType, {}>, \"showShadow\" | \"showBorder\" | \"showBadges\" | \"showNotifications\" | \"hideHeader\" | \"hideInspector\"> | undefined; hidePanelChrome?: boolean | undefined; onAnyStateChange?: ((state: ", { "pluginId": "@kbn/presentation-containers", "scope": "common", @@ -9012,7 +8979,7 @@ "id": "def-public.ReactEmbeddableRenderer.$1", "type": "Object", "tags": [], - "label": "{\n maybeId,\n type,\n state,\n parentApi,\n onApiAvailable,\n panelProps,\n onAnyStateChange,\n}", + "label": "{\n maybeId,\n type,\n state,\n parentApi,\n onApiAvailable,\n panelProps,\n onAnyStateChange,\n hidePanelChrome,\n}", "description": [], "path": "src/plugins/embeddable/public/react_embeddable_system/react_embeddable_renderer.tsx", "deprecated": false, @@ -9132,6 +9099,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "embeddable", + "id": "def-public.ReactEmbeddableRenderer.$1.hidePanelChrome", + "type": "CompoundType", + "tags": [], + "label": "hidePanelChrome", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/embeddable/public/react_embeddable_system/react_embeddable_renderer.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "embeddable", "id": "def-public.ReactEmbeddableRenderer.$1.onAnyStateChange", @@ -9275,17 +9256,369 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.registerSavedObjectToPanelMethod", + "id": "def-public.registerReactEmbeddableSavedObject", "type": "Function", "tags": [], + "label": "registerReactEmbeddableSavedObject", + "description": [ + "\nRegister an embeddable API saved object with the Add from library flyout.\n" + ], + "signature": [ + "<TSavedObjectAttributes extends ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.FinderAttributes", + "text": "FinderAttributes" + }, + ">({ onAdd, embeddableType, savedObjectType, savedObjectName, getIconForSavedObject, getSavedObjectSubType, getTooltipForSavedObject, }: { onAdd: SOToEmbeddable<TSavedObjectAttributes>; embeddableType: string; savedObjectType: string; savedObjectName: string; getIconForSavedObject: (savedObject: ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>) => ", + "IconType", + "; getSavedObjectSubType?: ((savedObject: ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>) => string) | undefined; getTooltipForSavedObject?: ((savedObject: ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>) => string) | undefined; }) => void" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1", + "type": "Object", + "tags": [], + "label": "{\n onAdd,\n embeddableType,\n savedObjectType,\n savedObjectName,\n getIconForSavedObject,\n getSavedObjectSubType,\n getTooltipForSavedObject,\n}", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.onAdd", + "type": "Function", + "tags": [], + "label": "onAdd", + "description": [], + "signature": [ + "(container: ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + ", savedObject: ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>) => void" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.onAdd.$1", + "type": "Object", + "tags": [], + "label": "container", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + } + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.onAdd.$2", + "type": "Object", + "tags": [], + "label": "savedObject", + "description": [], + "signature": [ + { + "pluginId": "@kbn/content-management-utils", + "scope": "common", + "docId": "kibKbnContentManagementUtilsPluginApi", + "section": "def-common.SOWithMetadata", + "text": "SOWithMetadata" + }, + "<TSavedObjectAttributes>" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.embeddableType", + "type": "string", + "tags": [], + "label": "embeddableType", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.savedObjectType", + "type": "string", + "tags": [], + "label": "savedObjectType", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.savedObjectName", + "type": "string", + "tags": [], + "label": "savedObjectName", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.getIconForSavedObject", + "type": "Function", + "tags": [], + "label": "getIconForSavedObject", + "description": [], + "signature": [ + "(savedObject: ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>) => ", + "IconType" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.getIconForSavedObject.$1", + "type": "Object", + "tags": [], + "label": "savedObject", + "description": [], + "signature": [ + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.getSavedObjectSubType", + "type": "Function", + "tags": [], + "label": "getSavedObjectSubType", + "description": [], + "signature": [ + "((savedObject: ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>) => string) | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.getSavedObjectSubType.$1", + "type": "Object", + "tags": [], + "label": "savedObject", + "description": [], + "signature": [ + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.getTooltipForSavedObject", + "type": "Function", + "tags": [], + "label": "getTooltipForSavedObject", + "description": [], + "signature": [ + "((savedObject: ", + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>) => string) | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.registerReactEmbeddableSavedObject.$1.getTooltipForSavedObject.$1", + "type": "Object", + "tags": [], + "label": "savedObject", + "description": [], + "signature": [ + { + "pluginId": "savedObjectsFinder", + "scope": "common", + "docId": "kibSavedObjectsFinderPluginApi", + "section": "def-common.SavedObjectCommon", + "text": "SavedObjectCommon" + }, + "<TSavedObjectAttributes>" + ], + "path": "src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.registerSavedObjectToPanelMethod", + "type": "Function", + "tags": [ + "deprecated" + ], "label": "registerSavedObjectToPanelMethod", "description": [], "signature": [ "<TSavedObjectAttributes, TByValueAttributes>(savedObjectType: string, method: SavedObjectToPanelMethod<TSavedObjectAttributes, TByValueAttributes>) => void" ], "path": "src/plugins/embeddable/public/registry/saved_object_to_panel_methods.ts", - "deprecated": false, + "deprecated": true, "trackAdoption": false, + "references": [ + { + "plugin": "savedSearch", + "path": "src/plugins/saved_search/public/plugin.ts" + }, + { + "plugin": "savedSearch", + "path": "src/plugins/saved_search/public/plugin.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/plugin.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/plugin.ts" + }, + { + "plugin": "lens", + "path": "x-pack/plugins/lens/public/plugin.ts" + }, + { + "plugin": "lens", + "path": "x-pack/plugins/lens/public/plugin.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/plugin.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/plugin.ts" + } + ], "children": [ { "parentPluginId": "embeddable", diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 84f5b4da0e481..76a9ac9955d20 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 560 | 1 | 454 | 8 | +| 575 | 1 | 468 | 8 | ## Client diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index 145b383759ee9..e2d6ea20a7059 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index e890f605ab27f..c08f05a9e2c43 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index be775ba090f11..ac7c14b69ae14 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index c01e4b5491890..c4463dd987118 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 8bbdd258cb71f..80240242056ce 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx index a868685e0aa6c..2c262f73ae500 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index a395ebaf5fe8e..39f5f8e8e4482 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index c169985583d61..f8e80fc580e1f 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 35d3fb33eb5c0..b58e7b9576369 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index c1384d0493f0f..f24befa63232e 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 02632d6c70308..953e47f426b30 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 34e62baea614d..34651fe4787e4 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index 10989b4d27d3e..eb8bd795c1532 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index 23a28acbab697..4ea243f640b03 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 26d4c9bd16d67..1ba71cccd3aeb 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 627e5ebb047b0..63ce175e6a87f 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 95133924e7040..68c193f036416 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index eb5be730a6e94..93e28216efdc4 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index e40c9570e903f..414f78db402d8 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index 3d273cea5b21a..558de6400b2e2 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index af4e24b6d53d4..27d9dc1bef2be 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index 33736bc6b7646..af36f490fec00 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.devdocs.json b/api_docs/features.devdocs.json index 27e89ae753ed1..2fd46e8ffdbd9 100644 --- a/api_docs/features.devdocs.json +++ b/api_docs/features.devdocs.json @@ -2329,6 +2329,10 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/plugin.test.ts" }, + { + "plugin": "cases", + "path": "x-pack/plugins/cases/server/client/factory.test.ts" + }, { "plugin": "security", "path": "x-pack/plugins/security/server/authorization/app_authorization.test.ts" diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 0705c0f61454f..1fcfa3b9765a5 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 65dcc4d14b590..261899913920d 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index d9db257d5f427..ecead2a85204d 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index d52753688099f..063e56ea7b542 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index 1b719d00692e4..e038c97293c51 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 2bc8c2c922f90..2ba63ae946304 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 0026b7b14891d..4da24225c73bf 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 9c0abfd9f8503..f98b131a40d73 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index c12d2ec33e90c..383740a4fb99a 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index a607adb784c31..709255aa807da 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 6674010f245f4..856426e8c6061 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 52d72954dce56..226bdb4ca7744 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index dd0a36d20525f..79930e1f24662 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx index 6f88226b93574..f9f8e0a9d9cc8 100644 --- a/api_docs/ingest_pipelines.mdx +++ b/api_docs/ingest_pipelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines title: "ingestPipelines" image: https://source.unsplash.com/400x175/?github description: API docs for the ingestPipelines plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines'] --- import ingestPipelinesObj from './ingest_pipelines.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index 7b2fc2fd7a675..8242a197d17e0 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 01fac0a87fb13..23119e877560d 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index d5b6891424e13..f650c73770dae 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx index 301a6a6450b04..dc318f2a464d7 100644 --- a/api_docs/kbn_actions_types.mdx +++ b/api_docs/kbn_actions_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types title: "@kbn/actions-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/actions-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types'] --- import kbnActionsTypesObj from './kbn_actions_types.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index 0c0a617652fab..e132208359be2 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx index f8c3d59e10f37..d7f3d5163f034 100644 --- a/api_docs/kbn_aiops_log_pattern_analysis.mdx +++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis title: "@kbn/aiops-log-pattern-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-pattern-analysis plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis'] --- import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx index 61c4fe116b14b..ac908113505a8 100644 --- a/api_docs/kbn_aiops_log_rate_analysis.mdx +++ b/api_docs/kbn_aiops_log_rate_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis title: "@kbn/aiops-log-rate-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-rate-analysis plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis'] --- import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index 5dff30d92a0fb..4db5a5e0664dd 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index 939ac46ec08a8..8e9b75c89fd19 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx index 0c87a9a1bc7fa..fbcd8d7c5d913 100644 --- a/api_docs/kbn_alerting_types.mdx +++ b/api_docs/kbn_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types title: "@kbn/alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types'] --- import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index d3541c8cc1bd1..f254554674d1d 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 3da465b85eb3a..6a962a0b0fecf 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 690a200240a69..d82cd14d45c05 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index c99246faddff3..b3cd5b65e3060 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index dab51002b381d..fd81f6c2ca845 100644 --- a/api_docs/kbn_analytics_collection_utils.mdx +++ b/api_docs/kbn_analytics_collection_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils title: "@kbn/analytics-collection-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-collection-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 568a9973bccb3..bd97acb37515a 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index c70ea896335f6..fbeea02ff76d8 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index d64d158ba540d..f659d90a35502 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index 8c65716765fe0..26e8edaeeed28 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 1545c6d4e7125..fd2c5d156a6bf 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_data_view.mdx b/api_docs/kbn_apm_data_view.mdx index 325909e4480e9..42d2ea3d63be6 100644 --- a/api_docs/kbn_apm_data_view.mdx +++ b/api_docs/kbn_apm_data_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view title: "@kbn/apm-data-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-data-view plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view'] --- import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 26ca80ec65f7d..fe84a395387b1 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index f76b0993977b2..a31f27265e0be 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 096a975c09a41..4de6042d64538 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 86f1908d62574..19f291377ebba 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx index 9e47e776a5f99..92f68f6af305c 100644 --- a/api_docs/kbn_bfetch_error.mdx +++ b/api_docs/kbn_bfetch_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error title: "@kbn/bfetch-error" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/bfetch-error plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error'] --- import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json'; diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx index c9c14a6ef0ab1..ddd7836b8fc27 100644 --- a/api_docs/kbn_calculate_auto.mdx +++ b/api_docs/kbn_calculate_auto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto title: "@kbn/calculate-auto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-auto plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto'] --- import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json'; diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx index 9dc645f34f1f7..b0fa1f57bb34f 100644 --- a/api_docs/kbn_calculate_width_from_char_count.mdx +++ b/api_docs/kbn_calculate_width_from_char_count.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count title: "@kbn/calculate-width-from-char-count" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-width-from-char-count plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count'] --- import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index ff6992ca6e152..3ae86fc722a8b 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.devdocs.json b/api_docs/kbn_cell_actions.devdocs.json index e52997ce6b620..fc3c0e4bb9cc6 100644 --- a/api_docs/kbn_cell_actions.devdocs.json +++ b/api_docs/kbn_cell_actions.devdocs.json @@ -19,6 +19,39 @@ "common": { "classes": [], "functions": [ + { + "parentPluginId": "@kbn/cell-actions", + "id": "def-common.addExistsFilter", + "type": "Function", + "tags": [], + "label": "addExistsFilter", + "description": [], + "signature": [ + "({ filterManager, key, negate, dataViewId, }: AddExistsFilterParams) => void" + ], + "path": "packages/kbn-cell-actions/src/actions/filter/add_filter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cell-actions", + "id": "def-common.addExistsFilter.$1", + "type": "Object", + "tags": [], + "label": "{\n filterManager,\n key,\n negate,\n dataViewId,\n}", + "description": [], + "signature": [ + "AddExistsFilterParams" + ], + "path": "packages/kbn-cell-actions/src/actions/filter/add_filter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/cell-actions", "id": "def-common.addFilterIn", diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index ad952476aa655..20e5fc97861a0 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-threat-hunting-explore](https://github.com/orgs/elast | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 62 | 1 | 44 | 3 | +| 64 | 1 | 46 | 3 | ## Common diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 260bd120cdbc6..59eec8fa5d1c7 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 1a2cf277616c2..bd9d79fba39e4 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index cbfbc0654a47e..fdd7e996d15cf 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 9cf43a8bf4e5f..cdeb121499111 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index e2aa5242cba73..20eff5e133cde 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 6f54f83359313..2593a23d5765f 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 4dee60b0400f2..345227f2723a7 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx index 1d321c53a1fd6..9250fb3d3d470 100644 --- a/api_docs/kbn_code_editor_mock.mdx +++ b/api_docs/kbn_code_editor_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock title: "@kbn/code-editor-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mock plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock'] --- import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json'; diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx index 98f5a0893e848..bad65611c5464 100644 --- a/api_docs/kbn_code_owners.mdx +++ b/api_docs/kbn_code_owners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners title: "@kbn/code-owners" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-owners plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners'] --- import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 3dd133a7c9991..770327a230c4d 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index 92cd886766239..4a55c2ad10020 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index 9dd1240a9e63f..efbe4b8cf3590 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.devdocs.json b/api_docs/kbn_config_schema.devdocs.json index 7d311ed14d483..e31bc4d56342e 100644 --- a/api_docs/kbn_config_schema.devdocs.json +++ b/api_docs/kbn_config_schema.devdocs.json @@ -2630,7 +2630,7 @@ "label": "metaFields", "description": [], "signature": [ - "{ readonly META_FIELD_X_OAS_REF_ID: \"x-oas-ref-id\"; readonly META_FIELD_X_OAS_OPTIONAL: \"x-oas-optional\"; readonly META_FIELD_X_OAS_MAX_LENGTH: \"x-oas-max-length\"; readonly META_FIELD_X_OAS_MIN_LENGTH: \"x-oas-min-length\"; readonly META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES: \"x-oas-get-additional-properties\"; }" + "{ readonly META_FIELD_X_OAS_REF_ID: \"x-oas-ref-id\"; readonly META_FIELD_X_OAS_OPTIONAL: \"x-oas-optional\"; readonly META_FIELD_X_OAS_DEPRECATED: \"x-oas-deprecated\"; readonly META_FIELD_X_OAS_MAX_LENGTH: \"x-oas-max-length\"; readonly META_FIELD_X_OAS_MIN_LENGTH: \"x-oas-min-length\"; readonly META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES: \"x-oas-get-additional-properties\"; }" ], "path": "packages/kbn-config-schema/index.ts", "deprecated": false, diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 1bcd7b59d822b..e1b63b1651a09 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 9079b7eaa123d..7465d3c382a54 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index 877570dce5a5b..b72d15d3d8373 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view'] --- import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx index 04aa3d5da3b4a..50c30159aa29b 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx index 68c0ec18e0850..ee30b0e7a29ec 100644 --- a/api_docs/kbn_content_management_table_list_view_common.mdx +++ b/api_docs/kbn_content_management_table_list_view_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common title: "@kbn/content-management-table-list-view-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common'] --- import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index 7c5305431f531..20891db53339a 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index da368c084ea0c..f4197f480b7fc 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 0a204a56afa15..32d41cb131bd6 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index b6668b3b7b7b3..0621639276db2 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index 9662072ce8c4d..57f789a2580d1 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 8fb068910ef2d..70050fdda9a51 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index 7a18c0d053f24..1ef15ead54e1d 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index 0e98a183afa03..8cbab9406c58f 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index 12342aabaf769..7c4e00b956aec 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index f8d32769b8b15..412c63a988776 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 54d79bc639ee9..e64f1d6211093 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index 4214aff23ba0d..60519f0bd2482 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index 506ab63b5de4c..f9d747bf673c6 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index 59d27fbf6d9d2..9f7faadb86aa4 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index c9f1d555786a9..fd33e6dcca46b 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 89f218b480d06..a74ee81475e2e 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 2ca2c3d09f42f..82d46406d40d0 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index bfb3dfbecc3a1..7b721b10a1ebe 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index 0ea99a78ba273..157f5f756d5d3 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index ddc4ba57f7b1e..e5bc9103fbdf2 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 5a443590dbefd..132c777ab950b 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 4264623e3c459..fdd6ccf59f0aa 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 3f53d58543840..da92af24c7935 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 66a6cea1bd75b..ac4872e1738be 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 6b29876c1001b..668fc4cd4d81f 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index 8f7a15c981933..ecaacede2eadb 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 657a771deaf15..3ea3d911b27c8 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index ca5d98231a7e0..85139f81e2469 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index efafe81496b5f..8f20709f45de2 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 9b45bc6fb4625..d8b564b44c262 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index bf39acdeb71d3..1fe3f9b6d8a27 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index e24ea96e8546f..277306d2ecb94 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 23c98d99ee4a0..5f92f460990f3 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index fe9094ca403ac..ac4a77426cb93 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index ad12b70b172d3..9937f9c139516 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index 9d7ce31d8f39e..9d0392306da7b 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 2850f6b3a8717..ed0659956f557 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index ff290c1d60bf9..0d15e0b6e4e45 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 1f60a36b0aa8e..a4e5d429f880c 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 093fad53a5eff..8ff2407653647 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 32d3af2cbc31f..c76ee1714d124 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index 66cd6ad3871b3..106da94dbeaac 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index bd6e61ea6f045..4c02cebbeaedc 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index 06b4dad10f173..f84a02d72db4b 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 5106b0e50183a..66fab0d4a1db8 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index fda28d6de853a..1922532447bad 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 1d4c321dcf166..d22e55d93fb58 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 1b07f53ce0909..b0e6c45ab8856 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index 869ddc51920af..a33c64433da15 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 1fdf99dd10787..be8509766cae0 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index 2282f04fcaf9b..57025ea164db9 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 0d7f4bacf65aa..86a38cbf32424 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 4365762d5bf54..af9c733be5127 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 0d2ed14d9224c..0a5fb58312f2e 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 7e45f6f5f9b2d..63672e4a9d95a 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index cc869e7634e2d..84430a5ad6bbf 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index c1d41eb5f5b2d..bbc9710c234af 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index 5381f0fdab50c..f36a08c127131 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index 2dd1638442817..7b9a9aa8f2b26 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index 99798c93b1b74..ca448577617a7 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index de404fb3e0c05..f570f3d5ed690 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 903b5859325ce..048d67ace82f2 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index f8a441132bff3..15e8e1b5c5798 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index 7fa5824dafb66..56e3d9b2b22fa 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index 2a6c98d76001c..41c8c103e4840 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.devdocs.json b/api_docs/kbn_core_http_request_handler_context_server.devdocs.json index 674a7dcbe6794..92797e104c662 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.devdocs.json +++ b/api_docs/kbn_core_http_request_handler_context_server.devdocs.json @@ -132,6 +132,26 @@ "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-http-request-handler-context-server", + "id": "def-common.CoreRequestHandlerContext.userProfile", + "type": "Object", + "tags": [], + "label": "userProfile", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileRequestHandlerContext", + "text": "UserProfileRequestHandlerContext" + } + ], + "path": "packages/core/http/core-http-request-handler-context-server/src/request_handler_context.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 88dfccd74b6c8..dda926a819a49 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 15 | 0 | 12 | 0 | +| 16 | 0 | 13 | 0 | ## Common diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 105d07744289a..61c1001642e56 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index 10ba6c5171998..2c31a905a362f 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index f5d4a42b63a63..6bf89115443fc 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 0b609b0d9fb05..356835b2eb03d 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 304c25dc83d4c..2e38291128bbe 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 137d22704c4e5..befd68992b752 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -3445,6 +3445,10 @@ "plugin": "@kbn/core-status-server-internal", "path": "packages/core/status/core-status-server-internal/src/routes/status_preboot.ts" }, + { + "plugin": "@kbn/core-i18n-server-internal", + "path": "packages/core/i18n/core-i18n-server-internal/src/routes/translations.ts" + }, { "plugin": "@kbn/core-rendering-server-internal", "path": "packages/core/rendering/core-rendering-server-internal/src/bootstrap/register_bootstrap_route.ts" @@ -3461,10 +3465,6 @@ "plugin": "@kbn/core-deprecations-server-internal", "path": "packages/core/deprecations/core-deprecations-server-internal/src/routes/get.ts" }, - { - "plugin": "@kbn/core-i18n-server-internal", - "path": "packages/core/i18n/core-i18n-server-internal/src/routes/translations.ts" - }, { "plugin": "@kbn/core-apps-server-internal", "path": "packages/core/apps/core-apps-server-internal/src/bundle_routes/bundles_route.ts" @@ -5713,6 +5713,10 @@ "plugin": "@kbn/core-i18n-server-internal", "path": "packages/core/i18n/core-i18n-server-internal/src/routes/translations.test.ts" }, + { + "plugin": "@kbn/core-i18n-server-internal", + "path": "packages/core/i18n/core-i18n-server-internal/src/routes/translations.test.ts" + }, { "plugin": "@kbn/core-rendering-server-internal", "path": "packages/core/rendering/core-rendering-server-internal/src/bootstrap/register_bootstrap_route.test.ts" diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 0ab6d565a670e..b98f5c2633110 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 75c1d32578974..7bb7d38bb6b0d 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 4c6417664901a..491d107f27a35 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index fd4a198e34fae..31ee7ea249927 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index 07bc8129e321e..1066095b011a6 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.devdocs.json b/api_docs/kbn_core_i18n_server.devdocs.json index f53aaa6ac7f05..c21bb6ea67115 100644 --- a/api_docs/kbn_core_i18n_server.devdocs.json +++ b/api_docs/kbn_core_i18n_server.devdocs.json @@ -66,6 +66,24 @@ "trackAdoption": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-i18n-server", + "id": "def-common.I18nServiceSetup.getTranslationHash", + "type": "Function", + "tags": [], + "label": "getTranslationHash", + "description": [ + "\nReturns the hash generated from the current translations." + ], + "signature": [ + "() => string" + ], + "path": "packages/core/i18n/core-i18n-server/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index 9a0b73a66d182..59466ee5221de 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3 | 0 | 1 | 0 | +| 4 | 0 | 1 | 0 | ## Common diff --git a/api_docs/kbn_core_i18n_server_internal.devdocs.json b/api_docs/kbn_core_i18n_server_internal.devdocs.json index b2935017e0469..f7faf82af0bad 100644 --- a/api_docs/kbn_core_i18n_server_internal.devdocs.json +++ b/api_docs/kbn_core_i18n_server_internal.devdocs.json @@ -71,7 +71,15 @@ "signature": [ "({ pluginPaths, http }: ", "PrebootDeps", - ") => Promise<void>" + ") => Promise<", + { + "pluginId": "@kbn/core-i18n-server-internal", + "scope": "common", + "docId": "kibKbnCoreI18nServerInternalPluginApi", + "section": "def-common.InternalI18nServicePreboot", + "text": "InternalI18nServicePreboot" + }, + ">" ], "path": "packages/core/i18n/core-i18n-server-internal/src/i18n_service.ts", "deprecated": false, @@ -142,7 +150,38 @@ } ], "functions": [], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "@kbn/core-i18n-server-internal", + "id": "def-common.InternalI18nServicePreboot", + "type": "Interface", + "tags": [], + "label": "InternalI18nServicePreboot", + "description": [], + "path": "packages/core/i18n/core-i18n-server-internal/src/i18n_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-i18n-server-internal", + "id": "def-common.InternalI18nServicePreboot.getTranslationHash", + "type": "Function", + "tags": [], + "label": "getTranslationHash", + "description": [], + "signature": [ + "() => string" + ], + "path": "packages/core/i18n/core-i18n-server-internal/src/i18n_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], "enums": [], "misc": [ { diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 639b97329653f..94eb016feb788 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; @@ -21,13 +21,16 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 8 | 0 | 8 | 2 | +| 10 | 0 | 10 | 2 | ## Common ### Classes <DocDefinitionList data={kbnCoreI18nServerInternalObj.common.classes}/> +### Interfaces +<DocDefinitionList data={kbnCoreI18nServerInternalObj.common.interfaces}/> + ### Consts, variables and types <DocDefinitionList data={kbnCoreI18nServerInternalObj.common.misc}/> diff --git a/api_docs/kbn_core_i18n_server_mocks.devdocs.json b/api_docs/kbn_core_i18n_server_mocks.devdocs.json index 2fb15942eb4ec..262e5feca6f2c 100644 --- a/api_docs/kbn_core_i18n_server_mocks.devdocs.json +++ b/api_docs/kbn_core_i18n_server_mocks.devdocs.json @@ -73,6 +73,30 @@ "trackAdoption": false, "returnComment": [], "children": [] + }, + { + "parentPluginId": "@kbn/core-i18n-server-mocks", + "id": "def-common.i18nServiceMock.createInternalPrebootContract", + "type": "Function", + "tags": [], + "label": "createInternalPrebootContract", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-i18n-server-internal", + "scope": "common", + "docId": "kibKbnCoreI18nServerInternalPluginApi", + "section": "def-common.InternalI18nServicePreboot", + "text": "InternalI18nServicePreboot" + }, + ">" + ], + "path": "packages/core/i18n/core-i18n-server-mocks/src/i18n_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index 32bc2534136c8..3decf3193b8ce 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3 | 0 | 3 | 0 | +| 4 | 0 | 4 | 0 | ## Common diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index f400a2bb8d0d5..9fad69fd40f6e 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index 723cf32dfd847..e9c1fc0719b14 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index 7441444df9dec..7808876d27711 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.devdocs.json b/api_docs/kbn_core_lifecycle_browser.devdocs.json index 9a08f80a601b1..50656f7c4a677 100644 --- a/api_docs/kbn_core_lifecycle_browser.devdocs.json +++ b/api_docs/kbn_core_lifecycle_browser.devdocs.json @@ -361,6 +361,28 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/core-lifecycle-browser", + "id": "def-common.CoreSetup.userProfile", + "type": "Object", + "tags": [], + "label": "userProfile", + "description": [ + "{@link UserProfileServiceSetup}" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + } + ], + "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_setup.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/core-lifecycle-browser", "id": "def-common.CoreSetup.getStartServices", @@ -888,6 +910,28 @@ "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-lifecycle-browser", + "id": "def-common.CoreStart.userProfile", + "type": "Object", + "tags": [], + "label": "userProfile", + "description": [ + "{@link UserProfileServiceStart}" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 15eb3f157f830..0b12d1c3aa957 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 34 | 0 | 0 | 0 | +| 36 | 0 | 0 | 0 | ## Common diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.devdocs.json b/api_docs/kbn_core_lifecycle_browser_mocks.devdocs.json index 547c6390aa72a..0dbb1801fcfa0 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.devdocs.json +++ b/api_docs/kbn_core_lifecycle_browser_mocks.devdocs.json @@ -252,6 +252,14 @@ "section": "def-common.SecurityServiceStart", "text": "SecurityServiceStart" }, + ">; userProfile: jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, ">; plugins: { onStart: jest.Mock<any, any, any>; }; }, any, any]>, [], any>; http: ", { "pluginId": "@kbn/core-http-browser-mocks", @@ -316,6 +324,14 @@ "section": "def-common.SecurityServiceSetup", "text": "SecurityServiceSetup" }, + ">; userProfile: jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, ">; plugins: { onSetup: jest.Mock<any, any, any>; onStart: jest.Mock<any, any, any>; }; }" ], "path": "packages/core/lifecycle/core-lifecycle-browser-mocks/src/index.ts", @@ -513,6 +529,14 @@ "section": "def-common.SecurityServiceStart", "text": "SecurityServiceStart" }, + ">; userProfile: jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, ">; plugins: { onStart: jest.Mock<any, any, any>; }; }" ], "path": "packages/core/lifecycle/core-lifecycle-browser-mocks/src/index.ts", diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index c41a43af63c4a..cc1a569a7ffb5 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.devdocs.json b/api_docs/kbn_core_lifecycle_server.devdocs.json index a514499ccd655..39e4ac4c5f031 100644 --- a/api_docs/kbn_core_lifecycle_server.devdocs.json +++ b/api_docs/kbn_core_lifecycle_server.devdocs.json @@ -676,6 +676,28 @@ "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-lifecycle-server", + "id": "def-common.CoreSetup.userProfile", + "type": "Object", + "tags": [], + "label": "userProfile", + "description": [ + "{@link UserProfileServiceSetup}" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + } + ], + "path": "packages/core/lifecycle/core-lifecycle-server/src/core_setup.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -968,6 +990,28 @@ "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-lifecycle-server", + "id": "def-common.CoreStart.userProfile", + "type": "Object", + "tags": [], + "label": "userProfile", + "description": [ + "{@link UserProfileServiceStart}" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/lifecycle/core-lifecycle-server/src/core_start.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index 772708bbd92e2..e35326e661c62 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 38 | 0 | 0 | 0 | +| 40 | 0 | 0 | 0 | ## Common diff --git a/api_docs/kbn_core_lifecycle_server_mocks.devdocs.json b/api_docs/kbn_core_lifecycle_server_mocks.devdocs.json index 9415e1494b34a..8e94c3af2225c 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.devdocs.json +++ b/api_docs/kbn_core_lifecycle_server_mocks.devdocs.json @@ -192,6 +192,14 @@ "section": "def-common.SecurityServiceSetup", "text": "SecurityServiceSetup" }, + ">; userProfile: jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, ">; }" ], "path": "packages/core/lifecycle/core-lifecycle-server-mocks/src/index.ts", @@ -284,6 +292,14 @@ "section": "def-common.SecurityServiceStart", "text": "SecurityServiceStart" }, + ">; userProfile: jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-server-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerInternalPluginApi", + "section": "def-common.InternalUserProfileServiceStart", + "text": "InternalUserProfileServiceStart" + }, ">; }" ], "path": "packages/core/lifecycle/core-lifecycle-server-mocks/src/index.ts", diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index a02739a32c80d..8d2b9a6f60ada 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index 6debe13186733..9ad736706b2a8 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 7e6b52528f740..6fe2db360086e 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 75185d79a6b72..7d5119070a897 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 8d45f15a9dc61..d34b00143b2c5 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index 9d74924886779..c1a3eca53b2e6 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index 9bb63720d4519..a110b4685b96a 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index 99c9ea5429eb1..e7b80e31c5862 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 5c847095613b4..00caba38947f1 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index e9a9fbc64a4ed..6ac634d36dc96 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 7ecd0b043606a..39de9f04c2a76 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 3a54ebfe39d8a..285a229c3339e 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index ecd1974e0621e..4011565bd186f 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index 6663cb037daf2..81597a8d6a8aa 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index 0f440625c9090..1816ca3678132 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 0067d326438c4..99c6823f6d640 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 4ca72d13812fe..e69f7e589f571 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 648fa9a59a66f..2433bd5cd9de1 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 2f544dfa0b595..b2a031c79f87a 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 31b8363631d90..53fc6d4897cae 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index f869fb78ab434..e7ebce711b2fc 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index 4ce6b25dc82f1..1739c90b6d082 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 74e2f1ca5e624..68f2c62baf86a 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx index d98ca06bf612d..2f9136c0cf9f9 100644 --- a/api_docs/kbn_core_plugins_contracts_browser.mdx +++ b/api_docs/kbn_core_plugins_contracts_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser title: "@kbn/core-plugins-contracts-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser'] --- import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx index 2d06a8b3ff14e..f3409e092253e 100644 --- a/api_docs/kbn_core_plugins_contracts_server.mdx +++ b/api_docs/kbn_core_plugins_contracts_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server title: "@kbn/core-plugins-contracts-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server'] --- import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 28db3d9cac474..12b0bfebaf1e0 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index 645e0b02764ad..5a7e226931ec3 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index 25c412ab41489..3f75151c5e034 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index 8a2da5d889d01..e9529cec2e5a1 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index 76f56aab806d6..89e004d5f5bac 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index febad0a87348b..38ca5bba8e58f 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index b516bd556a7be..f7c65467f38a5 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index d05993b3ee862..729b965436e28 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index e0342c2296a32..d2c00e94edc09 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 80d5522d09a87..3c100e7375ce5 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index 6a45ebe10cb2d..b921a0adb790a 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index c5cc35c38d536..38ac1d2ea06a0 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 9dab18ce0dda3..ba25e456aa785 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 4a617ceca43a3..be034f71ee114 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 556c52eb0cf70..9a38b0ba46910 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index d4011ecc8ac09..3b8e4499c5a10 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 09bc97c71f389..f622ea75d8438 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index 1d3e53e5f37d6..7d04a14a3bb23 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index d54c9a06c999f..cf3e8f0aa501f 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 5d253a1fcebfe..cb1fb22f2453c 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index bc90bb029a561..00bafca6d216e 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index f0acc463e0d71..a7215019a5221 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index d10976e32036d..77878ee2b33c5 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index c133dd6496f4d..e9b45c7371753 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index 6189862dde2fe..b2ac1539f0b8e 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser.devdocs.json b/api_docs/kbn_core_security_browser.devdocs.json index 868b3b9c39522..bde00dc666e46 100644 --- a/api_docs/kbn_core_security_browser.devdocs.json +++ b/api_docs/kbn_core_security_browser.devdocs.json @@ -64,10 +64,10 @@ }, { "parentPluginId": "@kbn/core-security-browser", - "id": "def-common.CoreSecurityContract", + "id": "def-common.CoreSecurityDelegateContract", "type": "Interface", "tags": [], - "label": "CoreSecurityContract", + "label": "CoreSecurityDelegateContract", "description": [ "\nThe contract exposed by the security provider for Core to\nconsume and re-expose via its security service.\n" ], @@ -77,7 +77,7 @@ "children": [ { "parentPluginId": "@kbn/core-security-browser", - "id": "def-common.CoreSecurityContract.authc", + "id": "def-common.CoreSecurityDelegateContract.authc", "type": "Object", "tags": [], "label": "authc", @@ -113,10 +113,10 @@ "children": [ { "parentPluginId": "@kbn/core-security-browser", - "id": "def-common.SecurityServiceSetup.registerSecurityApi", + "id": "def-common.SecurityServiceSetup.registerSecurityDelegate", "type": "Function", "tags": [], - "label": "registerSecurityApi", + "label": "registerSecurityDelegate", "description": [ "\nRegister the security implementation that then will be used and re-exposed by Core.\n" ], @@ -126,8 +126,8 @@ "pluginId": "@kbn/core-security-browser", "scope": "common", "docId": "kibKbnCoreSecurityBrowserPluginApi", - "section": "def-common.CoreSecurityContract", - "text": "CoreSecurityContract" + "section": "def-common.CoreSecurityDelegateContract", + "text": "CoreSecurityDelegateContract" }, ") => void" ], @@ -137,7 +137,7 @@ "children": [ { "parentPluginId": "@kbn/core-security-browser", - "id": "def-common.SecurityServiceSetup.registerSecurityApi.$1", + "id": "def-common.SecurityServiceSetup.registerSecurityDelegate.$1", "type": "Object", "tags": [], "label": "api", @@ -147,8 +147,8 @@ "pluginId": "@kbn/core-security-browser", "scope": "common", "docId": "kibKbnCoreSecurityBrowserPluginApi", - "section": "def-common.CoreSecurityContract", - "text": "CoreSecurityContract" + "section": "def-common.CoreSecurityDelegateContract", + "text": "CoreSecurityDelegateContract" } ], "path": "packages/core/security/core-security-browser/src/contracts.ts", diff --git a/api_docs/kbn_core_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx index 1e0ac27003ed2..695dba2e5caf4 100644 --- a/api_docs/kbn_core_security_browser.mdx +++ b/api_docs/kbn_core_security_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser title: "@kbn/core-security-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser'] --- import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx index c822adadfd52b..422c2ad9ad6e2 100644 --- a/api_docs/kbn_core_security_browser_internal.mdx +++ b/api_docs/kbn_core_security_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal title: "@kbn/core-security-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal'] --- import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx index 74f4494728607..20858f069c497 100644 --- a/api_docs/kbn_core_security_browser_mocks.mdx +++ b/api_docs/kbn_core_security_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks title: "@kbn/core-security-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks'] --- import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx index 21d7c07863849..54e51778e303d 100644 --- a/api_docs/kbn_core_security_common.mdx +++ b/api_docs/kbn_core_security_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common title: "@kbn/core-security-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common'] --- import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json'; diff --git a/api_docs/kbn_core_security_server.devdocs.json b/api_docs/kbn_core_security_server.devdocs.json index 6e06a416514b6..0f4ca120e2853 100644 --- a/api_docs/kbn_core_security_server.devdocs.json +++ b/api_docs/kbn_core_security_server.devdocs.json @@ -135,10 +135,10 @@ }, { "parentPluginId": "@kbn/core-security-server", - "id": "def-common.CoreSecurityContract", + "id": "def-common.CoreSecurityDelegateContract", "type": "Interface", "tags": [], - "label": "CoreSecurityContract", + "label": "CoreSecurityDelegateContract", "description": [ "\nThe contract exposed by the security provider for Core to\nconsume and re-expose via its security service.\n" ], @@ -148,7 +148,7 @@ "children": [ { "parentPluginId": "@kbn/core-security-server", - "id": "def-common.CoreSecurityContract.authc", + "id": "def-common.CoreSecurityDelegateContract.authc", "type": "Object", "tags": [], "label": "authc", @@ -218,10 +218,10 @@ "children": [ { "parentPluginId": "@kbn/core-security-server", - "id": "def-common.SecurityServiceSetup.registerSecurityApi", + "id": "def-common.SecurityServiceSetup.registerSecurityDelegate", "type": "Function", "tags": [], - "label": "registerSecurityApi", + "label": "registerSecurityDelegate", "description": [ "\nRegister the security implementation that then will be used and re-exposed by Core.\n" ], @@ -231,8 +231,8 @@ "pluginId": "@kbn/core-security-server", "scope": "common", "docId": "kibKbnCoreSecurityServerPluginApi", - "section": "def-common.CoreSecurityContract", - "text": "CoreSecurityContract" + "section": "def-common.CoreSecurityDelegateContract", + "text": "CoreSecurityDelegateContract" }, ") => void" ], @@ -242,7 +242,7 @@ "children": [ { "parentPluginId": "@kbn/core-security-server", - "id": "def-common.SecurityServiceSetup.registerSecurityApi.$1", + "id": "def-common.SecurityServiceSetup.registerSecurityDelegate.$1", "type": "Object", "tags": [], "label": "api", @@ -252,8 +252,8 @@ "pluginId": "@kbn/core-security-server", "scope": "common", "docId": "kibKbnCoreSecurityServerPluginApi", - "section": "def-common.CoreSecurityContract", - "text": "CoreSecurityContract" + "section": "def-common.CoreSecurityDelegateContract", + "text": "CoreSecurityDelegateContract" } ], "path": "packages/core/security/core-security-server/src/contracts.ts", diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx index 245fb3fe42383..eb7fa5f7533da 100644 --- a/api_docs/kbn_core_security_server.mdx +++ b/api_docs/kbn_core_security_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server title: "@kbn/core-security-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server'] --- import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx index 89f3194d4c5b6..3e969456dd2b2 100644 --- a/api_docs/kbn_core_security_server_internal.mdx +++ b/api_docs/kbn_core_security_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal title: "@kbn/core-security-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal'] --- import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx index f288e62b8c557..7aa52fe863350 100644 --- a/api_docs/kbn_core_security_server_mocks.mdx +++ b/api_docs/kbn_core_security_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks title: "@kbn/core-security-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks'] --- import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index b5129581076d6..d1a4655790ab7 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index 30c76329f6cc1..837c8b1aec08b 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 6c6807dda84ac..852b71d92f5de 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 88ff212d20753..ceb012c59e631 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index be958b13cde01..567ed8f7582ea 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index c296da59987c1..7e551fdfa6b1c 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 5eb1532587066..55c9fdec2fc5e 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 6d32ea2acd858..76fed879d6221 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx index bf5ab83cd3dbd..72f86e6b94917 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions'] --- import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index ed2c87c8d603a..7896b309ec675 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 4f825f001700f..0cd378575ad62 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 85f4acceadcee..47fc81dc09d66 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index f85cb113b68f0..283d01494d938 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 5128e17c1785f..e4e868e67aaa7 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index d94e517c67b2c..a9d0d99d0e60b 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index 4120662a38f5d..312b997a2d880 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index d09f1cf33f833..63af74bf0a86c 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index ca048814e059a..3dbdd82ebf6e8 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 4b5ecb14752c7..6d8f4df13451b 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 27b16fa43ccea..180a9e8c935a3 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 8e6c8a1ff904e..10e002e4d13cb 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index cc84cea0f733c..222a712f8fbd4 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index a18a4b9e607a6..607e1a8c2bb18 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_browser.devdocs.json b/api_docs/kbn_core_user_profile_browser.devdocs.json new file mode 100644 index 0000000000000..b49c0ec1dd750 --- /dev/null +++ b/api_docs/kbn_core_user_profile_browser.devdocs.json @@ -0,0 +1,704 @@ +{ + "id": "@kbn/core-user-profile-browser", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.GetUserProfileResponse", + "type": "Interface", + "tags": [], + "label": "GetUserProfileResponse", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.GetUserProfileResponse", + "text": "GetUserProfileResponse" + }, + "<D> extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileWithSecurity", + "text": "UserProfileWithSecurity" + }, + "<D, ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileLabels", + "text": "UserProfileLabels" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.GetUserProfileResponse.user", + "type": "CompoundType", + "tags": [], + "label": "user", + "description": [ + "\nInformation about the currently authenticated user that owns the profile." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileUserInfoWithSecurity", + "text": "UserProfileUserInfoWithSecurity" + }, + " & Pick<", + { + "pluginId": "@kbn/core-security-common", + "scope": "common", + "docId": "kibKbnCoreSecurityCommonPluginApi", + "section": "def-common.AuthenticatedUser", + "text": "AuthenticatedUser" + }, + ", \"authentication_provider\">" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileBulkGetParams", + "type": "Interface", + "tags": [], + "label": "UserProfileBulkGetParams", + "description": [ + "\nParameters for the bulk get API." + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileBulkGetParams.uids", + "type": "Object", + "tags": [], + "label": "uids", + "description": [ + "\nList of user profile identifiers." + ], + "signature": [ + "Set<string>" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileBulkGetParams.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [ + "\nBy default, suggest API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileGetCurrentParams", + "type": "Interface", + "tags": [], + "label": "UserProfileGetCurrentParams", + "description": [ + "\nParameters for the get user profile for the current user API." + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileGetCurrentParams.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [ + "\nBy default, get API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService", + "type": "Interface", + "tags": [], + "label": "UserProfileService", + "description": [], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.getUserProfile$", + "type": "Function", + "tags": [], + "label": "getUserProfile$", + "description": [ + "\nRetrieve an observable emitting when the user profile is loaded." + ], + "signature": [ + "() => ", + "Observable", + "<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + " | null>" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.getCurrent", + "type": "Function", + "tags": [], + "label": "getCurrent", + "description": [ + "\nRetrieves the user profile of the current user. If the profile isn't available, e.g. for the anonymous users or\nusers authenticated via authenticating proxies, the `null` value is returned." + ], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">(params?: ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileGetCurrentParams", + "text": "UserProfileGetCurrentParams" + }, + " | undefined) => Promise<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.GetUserProfileResponse", + "text": "GetUserProfileResponse" + }, + "<D>>" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.getCurrent.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [ + "Get current user profile operation parameters." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileGetCurrentParams", + "text": "UserProfileGetCurrentParams" + }, + " | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.bulkGet", + "type": "Function", + "tags": [], + "label": "bulkGet", + "description": [ + "\nRetrieves multiple user profiles by their identifiers." + ], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">(params: ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileBulkGetParams", + "text": "UserProfileBulkGetParams" + }, + ") => Promise<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfile", + "text": "UserProfile" + }, + "<D>[]>" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.bulkGet.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [ + "Bulk get operation parameters." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileBulkGetParams", + "text": "UserProfileBulkGetParams" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.suggest", + "type": "Function", + "tags": [], + "label": "suggest", + "description": [ + "\nSuggests multiple user profiles by search criteria.\n\nNote: This endpoint is not provided out-of-the-box by the platform. You need to expose your own\nversion within your app. An example of how to do this can be found in:\n`examples/user_profile_examples/server/plugin.ts`\n" + ], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">(path: string, params: ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileSuggestParams", + "text": "UserProfileSuggestParams" + }, + ") => Promise<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfile", + "text": "UserProfile" + }, + "<D>[]>" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.suggest.$1", + "type": "string", + "tags": [], + "label": "path", + "description": [ + "Path to your app's suggest endpoint." + ], + "signature": [ + "string" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.suggest.$2", + "type": "Object", + "tags": [], + "label": "params", + "description": [ + "Suggest operation parameters." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileSuggestParams", + "text": "UserProfileSuggestParams" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.update", + "type": "Function", + "tags": [], + "label": "update", + "description": [ + "\nUpdates user profile data of the current user." + ], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">(data: D) => Promise<void>" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.update.$1", + "type": "Uncategorized", + "tags": [], + "label": "data", + "description": [ + "Application data to be written (merged with existing data)." + ], + "signature": [ + "D" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.partialUpdate", + "type": "Function", + "tags": [], + "label": "partialUpdate", + "description": [ + "\nPartially updates user profile data of the current user, merging the previous data with the provided data." + ], + "signature": [ + "<D extends Partial<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">>(data: D) => Promise<void>" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileService.partialUpdate.$1", + "type": "Uncategorized", + "tags": [], + "label": "data", + "description": [ + "Application data to be merged with existing data." + ], + "signature": [ + "D" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileServiceSetup", + "type": "Interface", + "tags": [], + "label": "UserProfileServiceSetup", + "description": [ + "\nSetup contract for Core's userProfile service.\n" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileServiceSetup.registerUserProfileDelegate", + "type": "Function", + "tags": [], + "label": "registerUserProfileDelegate", + "description": [ + "\nRegister the userProfile implementation that will be used and re-exposed by Core.\n" + ], + "signature": [ + "(delegate: ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.CoreUserProfileDelegateContract", + "text": "CoreUserProfileDelegateContract" + }, + ") => void" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileServiceSetup.registerUserProfileDelegate.$1", + "type": "CompoundType", + "tags": [], + "label": "delegate", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.CoreUserProfileDelegateContract", + "text": "CoreUserProfileDelegateContract" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileSuggestParams", + "type": "Interface", + "tags": [], + "label": "UserProfileSuggestParams", + "description": [ + "\nParameters for the suggest API." + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileSuggestParams.name", + "type": "string", + "tags": [], + "label": "name", + "description": [ + "\nQuery string used to match name-related fields in user profiles. The following fields are treated as\nname-related: username, full_name and email." + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileSuggestParams.size", + "type": "number", + "tags": [], + "label": "size", + "description": [ + "\nDesired number of suggestions to return. The default value is 10." + ], + "signature": [ + "number | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileSuggestParams.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [ + "\nBy default, suggest API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.CoreUserProfileDelegateContract", + "type": "Type", + "tags": [], + "label": "CoreUserProfileDelegateContract", + "description": [], + "signature": [ + "Omit<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + ", \"getUserProfile$\"> & { userProfile$: ", + "Observable", + "<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + " | null>; }" + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/api_provider.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser", + "id": "def-common.UserProfileServiceStart", + "type": "Type", + "tags": [], + "label": "UserProfileServiceStart", + "description": [ + "\nStart contract for Core's userProfile service.\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_user_profile_browser.mdx b/api_docs/kbn_core_user_profile_browser.mdx new file mode 100644 index 0000000000000..b699d583015fe --- /dev/null +++ b/api_docs/kbn_core_user_profile_browser.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreUserProfileBrowserPluginApi +slug: /kibana-dev-docs/api/kbn-core-user-profile-browser +title: "@kbn/core-user-profile-browser" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/core-user-profile-browser plugin +date: 2024-04-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser'] +--- +import kbnCoreUserProfileBrowserObj from './kbn_core_user_profile_browser.devdocs.json'; + + + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 29 | 0 | 4 | 0 | + +## Common + +### Interfaces +<DocDefinitionList data={kbnCoreUserProfileBrowserObj.common.interfaces}/> + +### Consts, variables and types +<DocDefinitionList data={kbnCoreUserProfileBrowserObj.common.misc}/> + diff --git a/api_docs/kbn_core_user_profile_browser_internal.devdocs.json b/api_docs/kbn_core_user_profile_browser_internal.devdocs.json new file mode 100644 index 0000000000000..347e0ca211fb5 --- /dev/null +++ b/api_docs/kbn_core_user_profile_browser_internal.devdocs.json @@ -0,0 +1,207 @@ +{ + "id": "@kbn/core-user-profile-browser-internal", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.UserProfileService", + "type": "Class", + "tags": [], + "label": "UserProfileService", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserInternalPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + " implements ", + "CoreService", + "<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, + ", ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.UserProfileService.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.UserProfileService.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "coreContext", + "description": [], + "signature": [ + "CoreContext" + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.UserProfileService.setup", + "type": "Function", + "tags": [], + "label": "setup", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.UserProfileService.start", + "type": "Function", + "tags": [], + "label": "start", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.UserProfileService.stop", + "type": "Function", + "tags": [], + "label": "stop", + "description": [], + "signature": [ + "() => void" + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.InternalUserProfileServiceSetup", + "type": "Type", + "tags": [], + "label": "InternalUserProfileServiceSetup", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/internal_contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-internal", + "id": "def-common.InternalUserProfileServiceStart", + "type": "Type", + "tags": [], + "label": "InternalUserProfileServiceStart", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/user-profile/core-user-profile-browser-internal/src/internal_contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_user_profile_browser_internal.mdx b/api_docs/kbn_core_user_profile_browser_internal.mdx new file mode 100644 index 0000000000000..e7a806110a50b --- /dev/null +++ b/api_docs/kbn_core_user_profile_browser_internal.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreUserProfileBrowserInternalPluginApi +slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-internal +title: "@kbn/core-user-profile-browser-internal" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/core-user-profile-browser-internal plugin +date: 2024-04-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-internal'] +--- +import kbnCoreUserProfileBrowserInternalObj from './kbn_core_user_profile_browser_internal.devdocs.json'; + + + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 8 | 0 | 8 | 0 | + +## Common + +### Classes +<DocDefinitionList data={kbnCoreUserProfileBrowserInternalObj.common.classes}/> + +### Consts, variables and types +<DocDefinitionList data={kbnCoreUserProfileBrowserInternalObj.common.misc}/> + diff --git a/api_docs/kbn_core_user_profile_browser_mocks.devdocs.json b/api_docs/kbn_core_user_profile_browser_mocks.devdocs.json new file mode 100644 index 0000000000000..f7fa73e0ed88b --- /dev/null +++ b/api_docs/kbn_core_user_profile_browser_mocks.devdocs.json @@ -0,0 +1,154 @@ +{ + "id": "@kbn/core-user-profile-browser-mocks", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [ + { + "parentPluginId": "@kbn/core-user-profile-browser-mocks", + "id": "def-common.userProfileServiceMock", + "type": "Object", + "tags": [], + "label": "userProfileServiceMock", + "description": [], + "path": "packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-browser-mocks", + "id": "def-common.userProfileServiceMock.create", + "type": "Function", + "tags": [], + "label": "create", + "description": [], + "signature": [ + "() => { setup: jest.Mock<any, any, any>; start: jest.Mock<any, any, any>; stop: jest.Mock<any, any, any>; }" + ], + "path": "packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-mocks", + "id": "def-common.userProfileServiceMock.createSetup", + "type": "Function", + "tags": [], + "label": "createSetup", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-mocks", + "id": "def-common.userProfileServiceMock.createStart", + "type": "Function", + "tags": [], + "label": "createStart", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-mocks", + "id": "def-common.userProfileServiceMock.createInternalSetup", + "type": "Function", + "tags": [], + "label": "createInternalSetup", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-browser-mocks", + "id": "def-common.userProfileServiceMock.createInternalStart", + "type": "Function", + "tags": [], + "label": "createInternalStart", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-browser-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + } + ], + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_user_profile_browser_mocks.mdx b/api_docs/kbn_core_user_profile_browser_mocks.mdx new file mode 100644 index 0000000000000..78f37d679d3a6 --- /dev/null +++ b/api_docs/kbn_core_user_profile_browser_mocks.mdx @@ -0,0 +1,30 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreUserProfileBrowserMocksPluginApi +slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-mocks +title: "@kbn/core-user-profile-browser-mocks" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/core-user-profile-browser-mocks plugin +date: 2024-04-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-mocks'] +--- +import kbnCoreUserProfileBrowserMocksObj from './kbn_core_user_profile_browser_mocks.devdocs.json'; + + + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 6 | 0 | 6 | 0 | + +## Common + +### Objects +<DocDefinitionList data={kbnCoreUserProfileBrowserMocksObj.common.objects}/> + diff --git a/api_docs/kbn_core_user_profile_common.devdocs.json b/api_docs/kbn_core_user_profile_common.devdocs.json new file mode 100644 index 0000000000000..bc940d2cd5e38 --- /dev/null +++ b/api_docs/kbn_core_user_profile_common.devdocs.json @@ -0,0 +1,364 @@ +{ + "id": "@kbn/core-user-profile-common", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [ + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfile", + "type": "Interface", + "tags": [], + "label": "UserProfile", + "description": [ + "\nIMPORTANT:\n\nThe types in this file are duplicated at\n`packages/kbn-user-profile-components/src/user_profile.ts`\n\nWhen making changes please ensure to keep both files in sync.\n\nDescribes basic properties stored in user profile." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfile", + "text": "UserProfile" + }, + "<D>" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfile.uid", + "type": "string", + "tags": [], + "label": "uid", + "description": [ + "\nUnique ID for of the user profile." + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfile.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [ + "\nIndicates whether user profile is enabled or not." + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfile.user", + "type": "Object", + "tags": [], + "label": "user", + "description": [ + "\nInformation about the user that owns profile." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileUserInfo", + "text": "UserProfileUserInfo" + } + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfile.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [ + "\nUser specific data associated with the profile." + ], + "signature": [ + "{ [P in keyof D]?: D[P] | undefined; }" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfo", + "type": "Interface", + "tags": [], + "label": "UserProfileUserInfo", + "description": [ + "\nBasic user information returned in user profile." + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfo.username", + "type": "string", + "tags": [], + "label": "username", + "description": [ + "\nUsername of the user." + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfo.email", + "type": "string", + "tags": [], + "label": "email", + "description": [ + "\nOptional email of the user." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfo.full_name", + "type": "string", + "tags": [], + "label": "full_name", + "description": [ + "\nOptional full name of the user." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfoWithSecurity", + "type": "Interface", + "tags": [], + "label": "UserProfileUserInfoWithSecurity", + "description": [ + "\nExtended user information returned in user profile (both basic and security related properties)." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileUserInfoWithSecurity", + "text": "UserProfileUserInfoWithSecurity" + }, + " extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileUserInfo", + "text": "UserProfileUserInfo" + } + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfoWithSecurity.roles", + "type": "Object", + "tags": [], + "label": "roles", + "description": [ + "\nList of the user roles." + ], + "signature": [ + "readonly string[]" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfoWithSecurity.realm_name", + "type": "string", + "tags": [], + "label": "realm_name", + "description": [ + "\nName of the Elasticsearch security realm that was used to authenticate user." + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileUserInfoWithSecurity.realm_domain", + "type": "string", + "tags": [], + "label": "realm_domain", + "description": [ + "\nOptional name of the security domain that Elasticsearch security realm that was\nused to authenticate user resides in (if any)." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileWithSecurity", + "type": "Interface", + "tags": [], + "label": "UserProfileWithSecurity", + "description": [ + "\nDescribes all properties stored in user profile (both basic and security related properties)." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileWithSecurity", + "text": "UserProfileWithSecurity" + }, + "<D, L> extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfile", + "text": "UserProfile" + }, + "<D>" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileWithSecurity.user", + "type": "Object", + "tags": [], + "label": "user", + "description": [ + "\nInformation about the user that owns profile." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileUserInfoWithSecurity", + "text": "UserProfileUserInfoWithSecurity" + } + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileWithSecurity.labels", + "type": "Uncategorized", + "tags": [], + "label": "labels", + "description": [ + "\nUser specific _searchable_ labels associated with the profile. Note that labels are considered\nsecurity related field since it's going to be used to store user's space ID." + ], + "signature": [ + "L" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileData", + "type": "Type", + "tags": [], + "label": "UserProfileData", + "description": [ + "\nPlaceholder for data stored in user profile." + ], + "signature": [ + "{ [x: string]: unknown; }" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-common", + "id": "def-common.UserProfileLabels", + "type": "Type", + "tags": [], + "label": "UserProfileLabels", + "description": [ + "\nType of the user profile labels structure (currently" + ], + "signature": [ + "{ [x: string]: string; }" + ], + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_user_profile_common.mdx b/api_docs/kbn_core_user_profile_common.mdx new file mode 100644 index 0000000000000..61953bd7f7100 --- /dev/null +++ b/api_docs/kbn_core_user_profile_common.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreUserProfileCommonPluginApi +slug: /kibana-dev-docs/api/kbn-core-user-profile-common +title: "@kbn/core-user-profile-common" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/core-user-profile-common plugin +date: 2024-04-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-common'] +--- +import kbnCoreUserProfileCommonObj from './kbn_core_user_profile_common.devdocs.json'; + + + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 18 | 0 | 0 | 0 | + +## Common + +### Interfaces +<DocDefinitionList data={kbnCoreUserProfileCommonObj.common.interfaces}/> + +### Consts, variables and types +<DocDefinitionList data={kbnCoreUserProfileCommonObj.common.misc}/> + diff --git a/api_docs/kbn_core_user_profile_server.devdocs.json b/api_docs/kbn_core_user_profile_server.devdocs.json new file mode 100644 index 0000000000000..cee68e2171a4a --- /dev/null +++ b/api_docs/kbn_core_user_profile_server.devdocs.json @@ -0,0 +1,701 @@ +{ + "id": "@kbn/core-user-profile-server", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileBulkGetParams", + "type": "Interface", + "tags": [], + "label": "UserProfileBulkGetParams", + "description": [ + "\nParameters for the bulk get API." + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileBulkGetParams.uids", + "type": "Object", + "tags": [], + "label": "uids", + "description": [ + "\nList of user profile identifiers." + ], + "signature": [ + "Set<string>" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileBulkGetParams.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [ + "\nBy default, suggest API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileGetCurrentParams", + "type": "Interface", + "tags": [], + "label": "UserProfileGetCurrentParams", + "description": [ + "\nParameters for the get user profile for the current user API." + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileGetCurrentParams.request", + "type": "Object", + "tags": [], + "label": "request", + "description": [ + "\nUser request instance to get user profile for." + ], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.KibanaRequest", + "text": "KibanaRequest" + }, + "<unknown, unknown, unknown, any>" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileGetCurrentParams.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [ + "\nBy default, get API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileRequestHandlerContext", + "type": "Interface", + "tags": [], + "label": "UserProfileRequestHandlerContext", + "description": [], + "path": "packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileRequestHandlerContext.getCurrent", + "type": "Function", + "tags": [], + "label": "getCurrent", + "description": [], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ", L extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileLabels", + "text": "UserProfileLabels" + }, + ">(options?: { dataPath?: string | undefined; } | undefined) => Promise<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileWithSecurity", + "text": "UserProfileWithSecurity" + }, + "<D, L> | null>" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileRequestHandlerContext.getCurrent.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileRequestHandlerContext.getCurrent.$1.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/request_handler_context.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileRequiredPrivileges", + "type": "Interface", + "tags": [], + "label": "UserProfileRequiredPrivileges", + "description": [ + "\nThe set of privileges that users associated with the suggested user profile should have for a specified space id." + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileRequiredPrivileges.spaceId", + "type": "string", + "tags": [], + "label": "spaceId", + "description": [ + "\nThe id of the Kibana Space." + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileRequiredPrivileges.privileges", + "type": "Object", + "tags": [], + "label": "privileges", + "description": [ + "\nThe set of the Kibana specific application privileges." + ], + "signature": [ + "{ kibana: string[]; }" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileService", + "type": "Interface", + "tags": [], + "label": "UserProfileService", + "description": [ + "\nA set of methods to work with Kibana user profiles." + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileService.getCurrent", + "type": "Function", + "tags": [], + "label": "getCurrent", + "description": [ + "\nRetrieves a user profile for the current user extracted from the specified request. If the profile isn't available,\ne.g. for the anonymous users or users authenticated via authenticating proxies, the `null` value is returned." + ], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ", L extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileLabels", + "text": "UserProfileLabels" + }, + ">(params: ", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileGetCurrentParams", + "text": "UserProfileGetCurrentParams" + }, + ") => Promise<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileWithSecurity", + "text": "UserProfileWithSecurity" + }, + "<D, L> | null>" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileService.getCurrent.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [ + "Get current user profile operation parameters." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileGetCurrentParams", + "text": "UserProfileGetCurrentParams" + } + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileService.bulkGet", + "type": "Function", + "tags": [], + "label": "bulkGet", + "description": [ + "\nRetrieves multiple user profiles by their identifiers." + ], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">(params: ", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileBulkGetParams", + "text": "UserProfileBulkGetParams" + }, + ") => Promise<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfile", + "text": "UserProfile" + }, + "<D>[]>" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileService.bulkGet.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [ + "Bulk get operation parameters." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileBulkGetParams", + "text": "UserProfileBulkGetParams" + } + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileService.suggest", + "type": "Function", + "tags": [], + "label": "suggest", + "description": [ + "\nSuggests multiple user profiles by search criteria." + ], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">(params: ", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileSuggestParams", + "text": "UserProfileSuggestParams" + }, + ") => Promise<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfile", + "text": "UserProfile" + }, + "<D>[]>" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileService.suggest.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [ + "Suggest operation parameters." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileSuggestParams", + "text": "UserProfileSuggestParams" + } + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileServiceSetup", + "type": "Interface", + "tags": [], + "label": "UserProfileServiceSetup", + "description": [ + "\nSetup contract for Core's userProfile service.\n" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileServiceSetup.registerUserProfileDelegate", + "type": "Function", + "tags": [], + "label": "registerUserProfileDelegate", + "description": [ + "\nRegister the userProfile implementation that will be used and re-exposed by Core.\n" + ], + "signature": [ + "(delegate: ", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.CoreUserProfileDelegateContract", + "text": "CoreUserProfileDelegateContract" + }, + ") => void" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileServiceSetup.registerUserProfileDelegate.$1", + "type": "CompoundType", + "tags": [], + "label": "delegate", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.CoreUserProfileDelegateContract", + "text": "CoreUserProfileDelegateContract" + } + ], + "path": "packages/core/user-profile/core-user-profile-server/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileSuggestParams", + "type": "Interface", + "tags": [], + "label": "UserProfileSuggestParams", + "description": [ + "\nParameters for the suggest API." + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileSuggestParams.name", + "type": "string", + "tags": [], + "label": "name", + "description": [ + "\nQuery string used to match name-related fields in user profiles. The following fields are treated as\nname-related: username, full_name and email." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileSuggestParams.hint", + "type": "Object", + "tags": [], + "label": "hint", + "description": [ + "\nExtra search criteria to improve relevance of the suggestion result. A profile matching the\nspecified hint is ranked higher in the response. But not-matching the hint does not exclude a\nprofile from the response as long as it matches the `name` field query." + ], + "signature": [ + "{ uids: string[]; } | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileSuggestParams.size", + "type": "number", + "tags": [], + "label": "size", + "description": [ + "\nDesired number of suggestion to return. The default value is 10." + ], + "signature": [ + "number | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileSuggestParams.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [ + "\nBy default, suggest API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileSuggestParams.requiredPrivileges", + "type": "Object", + "tags": [], + "label": "requiredPrivileges", + "description": [ + "\nThe set of the privileges that users associated with the suggested user profile should have in the specified space.\nIf not specified, privileges check isn't performed and all matched profiles are returned irrespective to the\nprivileges of the associated users." + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileRequiredPrivileges", + "text": "UserProfileRequiredPrivileges" + }, + " | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.CoreUserProfileDelegateContract", + "type": "Type", + "tags": [], + "label": "CoreUserProfileDelegateContract", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + " & { update<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ">(uid: string, data: D): Promise<void>; }" + ], + "path": "packages/core/user-profile/core-user-profile-server/src/api_provider.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server", + "id": "def-common.UserProfileServiceStart", + "type": "Type", + "tags": [], + "label": "UserProfileServiceStart", + "description": [ + "\nStart contract for Core's userProfile service.\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/user-profile/core-user-profile-server/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_user_profile_server.mdx b/api_docs/kbn_core_user_profile_server.mdx new file mode 100644 index 0000000000000..7eb1769e245af --- /dev/null +++ b/api_docs/kbn_core_user_profile_server.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreUserProfileServerPluginApi +slug: /kibana-dev-docs/api/kbn-core-user-profile-server +title: "@kbn/core-user-profile-server" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/core-user-profile-server plugin +date: 2024-04-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server'] +--- +import kbnCoreUserProfileServerObj from './kbn_core_user_profile_server.devdocs.json'; + + + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 31 | 0 | 6 | 0 | + +## Common + +### Interfaces +<DocDefinitionList data={kbnCoreUserProfileServerObj.common.interfaces}/> + +### Consts, variables and types +<DocDefinitionList data={kbnCoreUserProfileServerObj.common.misc}/> + diff --git a/api_docs/kbn_core_user_profile_server_internal.devdocs.json b/api_docs/kbn_core_user_profile_server_internal.devdocs.json new file mode 100644 index 0000000000000..c5edb8b7c3797 --- /dev/null +++ b/api_docs/kbn_core_user_profile_server_internal.devdocs.json @@ -0,0 +1,375 @@ +{ + "id": "@kbn/core-user-profile-server-internal", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.CoreUserProfileRouteHandlerContext", + "type": "Class", + "tags": [], + "label": "CoreUserProfileRouteHandlerContext", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerInternalPluginApi", + "section": "def-common.CoreUserProfileRouteHandlerContext", + "text": "CoreUserProfileRouteHandlerContext" + }, + " implements ", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileRequestHandlerContext", + "text": "UserProfileRequestHandlerContext" + } + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.CoreUserProfileRouteHandlerContext.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.CoreUserProfileRouteHandlerContext.Unnamed.$1", + "type": "CompoundType", + "tags": [], + "label": "userProfileStart", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerInternalPluginApi", + "section": "def-common.InternalUserProfileServiceStart", + "text": "InternalUserProfileServiceStart" + } + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.CoreUserProfileRouteHandlerContext.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "request", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.KibanaRequest", + "text": "KibanaRequest" + }, + "<unknown, unknown, unknown, any>" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.CoreUserProfileRouteHandlerContext.getCurrent", + "type": "Function", + "tags": [], + "label": "getCurrent", + "description": [], + "signature": [ + "<D extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + ", L extends ", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileLabels", + "text": "UserProfileLabels" + }, + ">({ dataPath, }?: { dataPath?: string | undefined; }) => Promise<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileWithSecurity", + "text": "UserProfileWithSecurity" + }, + "<D, L> | null>" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.CoreUserProfileRouteHandlerContext.getCurrent.$1", + "type": "Object", + "tags": [], + "label": "{\n dataPath,\n }", + "description": [], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.CoreUserProfileRouteHandlerContext.getCurrent.$1.dataPath", + "type": "string", + "tags": [], + "label": "dataPath", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_route_handler_context.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.UserProfileService", + "type": "Class", + "tags": [], + "label": "UserProfileService", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerInternalPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + " implements ", + "CoreService", + "<", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, + ", ", + { + "pluginId": "@kbn/core-user-profile-server-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerInternalPluginApi", + "section": "def-common.InternalUserProfileServiceStart", + "text": "InternalUserProfileServiceStart" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.UserProfileService.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.UserProfileService.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "coreContext", + "description": [], + "signature": [ + "CoreContext" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.UserProfileService.setup", + "type": "Function", + "tags": [], + "label": "setup", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + } + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.UserProfileService.start", + "type": "Function", + "tags": [], + "label": "start", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-user-profile-server-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerInternalPluginApi", + "section": "def-common.InternalUserProfileServiceStart", + "text": "InternalUserProfileServiceStart" + } + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.UserProfileService.stop", + "type": "Function", + "tags": [], + "label": "stop", + "description": [], + "signature": [ + "() => void" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/user_profile_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.InternalUserProfileServiceSetup", + "type": "Type", + "tags": [], + "label": "InternalUserProfileServiceSetup", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + } + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/internal_contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-user-profile-server-internal", + "id": "def-common.InternalUserProfileServiceStart", + "type": "Type", + "tags": [], + "label": "InternalUserProfileServiceStart", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + " & Pick<", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.CoreUserProfileDelegateContract", + "text": "CoreUserProfileDelegateContract" + }, + ", \"update\">" + ], + "path": "packages/core/user-profile/core-user-profile-server-internal/src/internal_contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_user_profile_server_internal.mdx b/api_docs/kbn_core_user_profile_server_internal.mdx new file mode 100644 index 0000000000000..7f29ea974b740 --- /dev/null +++ b/api_docs/kbn_core_user_profile_server_internal.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreUserProfileServerInternalPluginApi +slug: /kibana-dev-docs/api/kbn-core-user-profile-server-internal +title: "@kbn/core-user-profile-server-internal" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/core-user-profile-server-internal plugin +date: 2024-04-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-internal'] +--- +import kbnCoreUserProfileServerInternalObj from './kbn_core_user_profile_server_internal.devdocs.json'; + + + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 15 | 0 | 15 | 0 | + +## Common + +### Classes +<DocDefinitionList data={kbnCoreUserProfileServerInternalObj.common.classes}/> + +### Consts, variables and types +<DocDefinitionList data={kbnCoreUserProfileServerInternalObj.common.misc}/> + diff --git a/api_docs/kbn_core_user_profile_server_mocks.devdocs.json b/api_docs/kbn_core_user_profile_server_mocks.devdocs.json new file mode 100644 index 0000000000000..ed450a95abe05 --- /dev/null +++ b/api_docs/kbn_core_user_profile_server_mocks.devdocs.json @@ -0,0 +1,178 @@ +{ + "id": "@kbn/core-user-profile-server-mocks", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [ + { + "parentPluginId": "@kbn/core-user-profile-server-mocks", + "id": "def-common.userProfileServiceMock", + "type": "Object", + "tags": [], + "label": "userProfileServiceMock", + "description": [], + "path": "packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-user-profile-server-mocks", + "id": "def-common.userProfileServiceMock.create", + "type": "Function", + "tags": [], + "label": "create", + "description": [], + "signature": [ + "() => { setup: jest.Mock<any, any, any>; start: jest.Mock<any, any, any>; stop: jest.Mock<any, any, any>; }" + ], + "path": "packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-mocks", + "id": "def-common.userProfileServiceMock.createSetup", + "type": "Function", + "tags": [], + "label": "createSetup", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-mocks", + "id": "def-common.userProfileServiceMock.createStart", + "type": "Function", + "tags": [], + "label": "createStart", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-mocks", + "id": "def-common.userProfileServiceMock.createInternalSetup", + "type": "Function", + "tags": [], + "label": "createInternalSetup", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileServiceSetup", + "text": "UserProfileServiceSetup" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-mocks", + "id": "def-common.userProfileServiceMock.createInternalStart", + "type": "Function", + "tags": [], + "label": "createInternalStart", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-server-internal", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerInternalPluginApi", + "section": "def-common.InternalUserProfileServiceStart", + "text": "InternalUserProfileServiceStart" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-user-profile-server-mocks", + "id": "def-common.userProfileServiceMock.createRequestHandlerContext", + "type": "Function", + "tags": [], + "label": "createRequestHandlerContext", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileRequestHandlerContext", + "text": "UserProfileRequestHandlerContext" + }, + ">" + ], + "path": "packages/core/user-profile/core-user-profile-server-mocks/src/user_profile_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + } + ], + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_user_profile_server_mocks.mdx b/api_docs/kbn_core_user_profile_server_mocks.mdx new file mode 100644 index 0000000000000..3d7bdf6bf9430 --- /dev/null +++ b/api_docs/kbn_core_user_profile_server_mocks.mdx @@ -0,0 +1,30 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreUserProfileServerMocksPluginApi +slug: /kibana-dev-docs/api/kbn-core-user-profile-server-mocks +title: "@kbn/core-user-profile-server-mocks" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/core-user-profile-server-mocks plugin +date: 2024-04-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-mocks'] +--- +import kbnCoreUserProfileServerMocksObj from './kbn_core_user_profile_server_mocks.devdocs.json'; + + + +Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 7 | 0 | 7 | 0 | + +## Common + +### Objects +<DocDefinitionList data={kbnCoreUserProfileServerMocksObj.common.objects}/> + diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index 8156723ed27fc..7348ac46e5d04 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index 74c5eaf226c27..73987e63f070a 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index 0747c4c994a0d..ebd8344ab1ab0 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks'] --- import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 7e09294109071..bbe31e13c96de 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index 513ee828dc01f..a16a71c240b63 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx index 285cd9c3de222..491f9e4577f27 100644 --- a/api_docs/kbn_custom_icons.mdx +++ b/api_docs/kbn_custom_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons title: "@kbn/custom-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-icons plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons'] --- import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json'; diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx index afe508066ac73..26a719a599aa9 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations'] --- import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 8290aa0680f95..5853cd5653aa3 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx index 8218cdc2b1d03..ab4cb8f34875f 100644 --- a/api_docs/kbn_data_forge.mdx +++ b/api_docs/kbn_data_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge title: "@kbn/data-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-forge plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge'] --- import kbnDataForgeObj from './kbn_data_forge.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index 06051368c6b14..9e4dc7bee03ba 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx index e6113baf753ad..7b1c73a8df933 100644 --- a/api_docs/kbn_data_stream_adapter.mdx +++ b/api_docs/kbn_data_stream_adapter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter title: "@kbn/data-stream-adapter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-stream-adapter plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter'] --- import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json'; diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx index 3d4d3e7658870..b561925f9fdb6 100644 --- a/api_docs/kbn_data_view_utils.mdx +++ b/api_docs/kbn_data_view_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils title: "@kbn/data-view-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-view-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils'] --- import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 70fc182a06204..a2669155fe2e9 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx index 3e7172fd8879c..7a8887b6a9cb6 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics'] --- import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx index 66fc3dfa31517..fc91dcc365bca 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx index e6355a2af33ff..583b7d31af2b0 100644 --- a/api_docs/kbn_deeplinks_fleet.mdx +++ b/api_docs/kbn_deeplinks_fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet title: "@kbn/deeplinks-fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-fleet plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet'] --- import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index b769caf16d7c0..c5b97bfe6eb23 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index 2f4c2c7aa7fe2..6bcc4c1d749a3 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.devdocs.json b/api_docs/kbn_deeplinks_observability.devdocs.json index 17001a6acff88..c2ca486f53760 100644 --- a/api_docs/kbn_deeplinks_observability.devdocs.json +++ b/api_docs/kbn_deeplinks_observability.devdocs.json @@ -285,6 +285,22 @@ "path": "packages/deeplinks/observability/locators/logs_explorer.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/deeplinks-observability", + "id": "def-common.LogsExplorerNavigationParams.breakdownField", + "type": "string", + "tags": [], + "label": "breakdownField", + "description": [ + "\nOptionally set chart's breakdown field" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/deeplinks/observability/locators/logs_explorer.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index f6c2f902f3976..26a0918c8435a 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 43 | 0 | 32 | 0 | +| 44 | 0 | 32 | 0 | ## Common diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index d00f7ad0a87d9..5ed70499239fb 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx index 9837cb248de99..d0468fda212de 100644 --- a/api_docs/kbn_deeplinks_security.mdx +++ b/api_docs/kbn_deeplinks_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security title: "@kbn/deeplinks-security" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-security plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security'] --- import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx index 19484a172a087..93fc6c47ecc17 100644 --- a/api_docs/kbn_deeplinks_shared.mdx +++ b/api_docs/kbn_deeplinks_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared title: "@kbn/deeplinks-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-shared plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared'] --- import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index 67c104a34037f..70116d73b84b7 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics'] --- import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json'; diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx index 36d5b2fc5f0c8..ffb22a03e55e7 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools'] --- import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json'; diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx index 6cf1e08f65461..70319caed9daf 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 876fa9595c288..bd1a40d518e9d 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml'] --- import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 2b01a3124dd62..f51a24c48e7cb 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 040e6d5faaa37..f37c7c2aaf15c 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index b19c838382cb2..29d38ff643602 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index 02f6932678e50..4ff79e410772a 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index ae1f72bd85d71..7ed6667d8f048 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index d317ef3710703..7fef9c29d2c6b 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 2d01243368a30..4ee1da34c7499 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 49721c873cc67..dff49f8e9d77c 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 5c4f362c48a12..83d4906871612 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 2684fd2a92ebe..d41dba9f77329 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx index 843556bb76e86..357482eba004d 100644 --- a/api_docs/kbn_elastic_agent_utils.mdx +++ b/api_docs/kbn_elastic_agent_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils title: "@kbn/elastic-agent-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-agent-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils'] --- import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.devdocs.json b/api_docs/kbn_elastic_assistant.devdocs.json index 0ef6a0d28d008..6d78ad3355487 100644 --- a/api_docs/kbn_elastic_assistant.devdocs.json +++ b/api_docs/kbn_elastic_assistant.devdocs.json @@ -395,6 +395,112 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.getUserConversations", + "type": "Function", + "tags": [], + "label": "getUserConversations", + "description": [ + "\nAPI call for getting all user conversations.\n" + ], + "signature": [ + "({ http, signal, toasts, }: { http: ", + { + "pluginId": "@kbn/core-http-browser", + "scope": "common", + "docId": "kibKbnCoreHttpBrowserPluginApi", + "section": "def-common.HttpSetup", + "text": "HttpSetup" + }, + "; toasts?: ", + { + "pluginId": "@kbn/core-notifications-browser", + "scope": "common", + "docId": "kibKbnCoreNotificationsBrowserPluginApi", + "section": "def-common.IToasts", + "text": "IToasts" + }, + " | undefined; signal?: AbortSignal | undefined; }) => Promise<", + "FetchConversationsResponse", + ">" + ], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.getUserConversations.$1", + "type": "Object", + "tags": [], + "label": "{\n http,\n signal,\n toasts,\n}", + "description": [], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.getUserConversations.$1.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-browser", + "scope": "common", + "docId": "kibKbnCoreHttpBrowserPluginApi", + "section": "def-common.HttpSetup", + "text": "HttpSetup" + } + ], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.getUserConversations.$1.toasts", + "type": "Object", + "tags": [], + "label": "toasts", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-notifications-browser", + "scope": "common", + "docId": "kibKbnCoreNotificationsBrowserPluginApi", + "section": "def-common.IToasts", + "text": "IToasts" + }, + " | undefined" + ], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.getUserConversations.$1.signal", + "type": "Object", + "tags": [], + "label": "signal", + "description": [], + "signature": [ + "AbortSignal | undefined" + ], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/conversations.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/elastic-assistant", "id": "def-public.mergeBaseWithPersistedConversations", diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index 26ee1604a56f3..732eac65b987a 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/ | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 168 | 0 | 142 | 9 | +| 173 | 0 | 146 | 9 | ## Client diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index 7611184bdc72d..39bfb01835ce9 100644 --- a/api_docs/kbn_elastic_assistant_common.mdx +++ b/api_docs/kbn_elastic_assistant_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common title: "@kbn/elastic-assistant-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index a5926d79cbf35..d028ef50929dd 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 3c3a630cfcc40..e72df58506781 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index 720805bac91d9..5c30bb55ca208 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 6f2a1acac4a0b..5d6ee85ad4b8f 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 2e35e13d9fbcc..87965fd919954 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 0d6be432c7cb4..d896a8a128f54 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx index 93a8bd2af4624..48389f403e292 100644 --- a/api_docs/kbn_esql_ast.mdx +++ b/api_docs/kbn_esql_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast title: "@kbn/esql-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-ast plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast'] --- import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json'; diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx index d71db17d712f0..5b5ae69defe2b 100644 --- a/api_docs/kbn_esql_utils.mdx +++ b/api_docs/kbn_esql_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils title: "@kbn/esql-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils'] --- import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json'; diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx index 34a6bc10ec4df..ef657202585f7 100644 --- a/api_docs/kbn_esql_validation_autocomplete.mdx +++ b/api_docs/kbn_esql_validation_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete title: "@kbn/esql-validation-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-validation-autocomplete plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete'] --- import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index cf0955335a7c4..6f49507798f16 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index 94c55c2f567b7..74d20bdf60e05 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index dec3de8c3aef6..2248b0036ee89 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index faabec75c60a6..63ceb8312248b 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx index 5871762d2f4c5..dd9ceaf2b22e6 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils'] --- import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index ec42cf2864d98..4fec5584ea842 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx index 05fb69a9a5359..d84a6c541465e 100644 --- a/api_docs/kbn_formatters.mdx +++ b/api_docs/kbn_formatters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters title: "@kbn/formatters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/formatters plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters'] --- import kbnFormattersObj from './kbn_formatters.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index 9726682708ff6..094c5e0c3e84e 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index 7d5ba302d589a..5e08df5f47e1e 100644 --- a/api_docs/kbn_ftr_common_functional_ui_services.mdx +++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services title: "@kbn/ftr-common-functional-ui-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-ui-services plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services'] --- import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index d3ab46fb8243e..b3e04d03fd726 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx index 32f45c5d3e66b..0e18a1f81751f 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index 7ceab50833a33..b1428043ed89b 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index bf635a787b613..5f70b5007dd40 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index a798a6232ac78..a72a94a12481a 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index f6476aa85f8c0..34c590806a675 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index d64368d90434c..4f8dfe0e4a95f 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 2ec262bf0a490..dde9afd6c80f2 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index d874ae0f492d3..ba2c06a9030d5 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 5034fea39ef50..89b75ed9f2b6d 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index fa202acb55e98..bbdc276c6d82e 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 5be59bf1765fd..113b04eeab8fb 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_index_management.mdx b/api_docs/kbn_index_management.mdx index 2b0bc72b4a78a..d91fd5e8c7a5f 100644 --- a/api_docs/kbn_index_management.mdx +++ b/api_docs/kbn_index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management title: "@kbn/index-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/index-management plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management'] --- import kbnIndexManagementObj from './kbn_index_management.devdocs.json'; diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx index 4b1cea3faa0a8..596bb6bce99c2 100644 --- a/api_docs/kbn_inference_integration_flyout.mdx +++ b/api_docs/kbn_inference_integration_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout title: "@kbn/inference_integration_flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/inference_integration_flyout plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout'] --- import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index 58edb77960672..e0b434de7bc4b 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge'] --- import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index 30b14ef007e47..1b45f7b0e90bc 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index d8aff44ed92ef..b0a9a6722749d 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx index 352fd5a6e7644..404e7fa94edd7 100644 --- a/api_docs/kbn_ipynb.mdx +++ b/api_docs/kbn_ipynb.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ipynb title: "@kbn/ipynb" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ipynb plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb'] --- import kbnIpynbObj from './kbn_ipynb.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 5288a84074343..3b23d9f7683b2 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index 14554bc27be30..cba1416ac2453 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index e1b95f33de2d8..a951396cce252 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 84a1d8c9a047b..30799be1c2cb4 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 98d93636a78fa..6de2a9dfe874f 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index e87343a8db43d..b0465bb9bcf89 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx index c0276c761129e..c09868907bc0c 100644 --- a/api_docs/kbn_lens_formula_docs.mdx +++ b/api_docs/kbn_lens_formula_docs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs title: "@kbn/lens-formula-docs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-formula-docs plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs'] --- import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index be4e9b44f0ae7..213b1cc668f24 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index a0607f0fea477..47d9d131d0934 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx index d33b5dac741a9..947a6db171f37 100644 --- a/api_docs/kbn_managed_content_badge.mdx +++ b/api_docs/kbn_managed_content_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge title: "@kbn/managed-content-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-content-badge plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge'] --- import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 54713786ec8ec..22550d018e7cd 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx index 7373d134481b2..b551cb8633a87 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation'] --- import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json'; diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx index 7551a182374e4..4f59149b4fba8 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index 2097976e80ebc..cd9da4cecdbd4 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category'] --- import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx index 5557b445e78c2..34be49d55ac78 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 1ac6abbe9e8f7..ec0bee7928be9 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row'] --- import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx index 38a3afc3f9c1d..7930243e2d574 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form'] --- import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json'; diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx index fa7ef5a6f768f..837b3452f409b 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index b09de60eb4965..a7db5a7cacde7 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index 7bc2f941fe5be..cc5db31a15dac 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index a03b7792a1593..de5484d56e692 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index 4972c98eddeb0..f37117c819559 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index 56b17d6e02d16..1f091064ada6f 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 5c4317f3c528b..1b7a0f1fb8c72 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx index 0691ad3aedae9..48b1dc432f1bf 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 43f9abb401f27..8229433cfded8 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx index c4cc462820932..b1aaadff3e590 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx index 5c13873398c4c..5fd5c1bf1f619 100644 --- a/api_docs/kbn_ml_cancellable_search.mdx +++ b/api_docs/kbn_ml_cancellable_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search title: "@kbn/ml-cancellable-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-cancellable-search plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search'] --- import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index bb0c792630f70..f58fd5a684c0b 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator'] --- import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json'; diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx index 74e6cb408c3ff..39fb78878e6da 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test'] --- import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json'; diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx index 40b374b6d736d..aa781b093d7a2 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index 6bd5c13aee9de..66bc5702aca94 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 3102cedb835eb..ea4b91d8d89e2 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx index 2e309236ea36a..104b64b0c64f2 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils'] --- import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx index db7fe409c4b42..3a4aef2e18f96 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index a78b5ae2eca0e..bf5088ee957af 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 9714f11a62edd..ec60125a8defb 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index c8d5e4036e9fa..8572ffc107ec4 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx index b4bb7127af81f..6baf4617bdf57 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme'] --- import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index ffae1a36906ae..366872f0c8544 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 92a6490f72083..6ab4fe2f24148 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx index 7015638815bda..c4bc613ac86da 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index ca003e0b85e1a..cfdc01717c287 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx index e53ca3beff41a..fc58a15fd4e83 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils'] --- import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 72ce416d8b2e8..277da3ceacf7f 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx index 2be14d0b71b98..54aa2ec86b42f 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils'] --- import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index ff1a29dd31816..128b7fb6ce16a 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx index 3865dcb911b28..8d09047f581d2 100644 --- a/api_docs/kbn_ml_time_buckets.mdx +++ b/api_docs/kbn_ml_time_buckets.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets title: "@kbn/ml-time-buckets" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-time-buckets plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets'] --- import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 9276ddd60086b..3bb3181705518 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx index d07dae5fb8c6e..67b4bd339363f 100644 --- a/api_docs/kbn_ml_ui_actions.mdx +++ b/api_docs/kbn_ml_ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions title: "@kbn/ml-ui-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-ui-actions plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions'] --- import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index b9fe78f1115e7..c933cbdacc4af 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx index 11ca210448c19..5ce1cf1432017 100644 --- a/api_docs/kbn_mock_idp_utils.mdx +++ b/api_docs/kbn_mock_idp_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils title: "@kbn/mock-idp-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mock-idp-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils'] --- import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 5c1800b933813..1179e249c5b2f 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 0f994545367db..1f1614ef8c4d2 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index c03a31d3548af..450260a0f5f20 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index f700b0fde7b11..838132bb8b784 100644 --- a/api_docs/kbn_observability_alerting_test_data.mdx +++ b/api_docs/kbn_observability_alerting_test_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data title: "@kbn/observability-alerting-test-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alerting-test-data plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data'] --- import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json'; diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx index d210480b0b993..18a9a6e449355 100644 --- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx +++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util title: "@kbn/observability-get-padded-alert-time-range-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util'] --- import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json'; diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx index 84cfb8ab20c98..d5770977ee2fb 100644 --- a/api_docs/kbn_openapi_bundler.mdx +++ b/api_docs/kbn_openapi_bundler.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler title: "@kbn/openapi-bundler" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-bundler plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler'] --- import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index 0ac5e5ae8dca3..f4c640a225f95 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index ccd0d3c971521..8879a2fd18da5 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index e423cf0365ec0..ad97d0df8b310 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index e72869de4dd24..83eabf77c6a94 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx index c7ada3cb9770f..ae0193d13c481 100644 --- a/api_docs/kbn_panel_loader.mdx +++ b/api_docs/kbn_panel_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader title: "@kbn/panel-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/panel-loader plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader'] --- import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 6960df5039d2b..8b4edc25ecb93 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx index eb7f1dd33e2b6..27792f523f19d 100644 --- a/api_docs/kbn_plugin_check.mdx +++ b/api_docs/kbn_plugin_check.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check title: "@kbn/plugin-check" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-check plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check'] --- import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 91d7ae0b6041a..a0c642d8ab9b3 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index b3b961bbcd005..0ce21d06be114 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx index 9f1ee04d13617..96e82e950f290 100644 --- a/api_docs/kbn_presentation_containers.mdx +++ b/api_docs/kbn_presentation_containers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers title: "@kbn/presentation-containers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-containers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] --- import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json'; diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx index 9a271d82ea631..6c41abbcc9e69 100644 --- a/api_docs/kbn_presentation_publishing.mdx +++ b/api_docs/kbn_presentation_publishing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing title: "@kbn/presentation-publishing" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-publishing plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing'] --- import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 176ae441a5edf..01cb00ef5a82d 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index 42259e5fab175..2d2674508fc09 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling'] --- import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index c5ec4724fee48..b52410c269ea8 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index a237c986af4e8..3129ed4c3fbe3 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common'] --- import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx index 654179342abce..9ff75786da5ed 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render'] --- import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx index 55dd8d53280dd..abf1f7c5e7315 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root'] --- import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx index 7df976906cc14..87776f5e6dd9b 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled'] --- import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx index c20cd3874afb8..e155003075164 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme'] --- import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx index 9efd027979601..0de66f391de48 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 05b3bc011bd51..a0b410a7d62c1 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index b93b45518e28a..ae116adf0c9ec 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index ef4974756cd50..f006310ccc40c 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 8594f47dc2611..fb22675c4fd29 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx index 6ce06f7bc01b6..830eef14de083 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx index 6d11f2f681bb0..eca03a58170dd 100644 --- a/api_docs/kbn_reporting_csv_share_panel.mdx +++ b/api_docs/kbn_reporting_csv_share_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel title: "@kbn/reporting-csv-share-panel" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-csv-share-panel plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel'] --- import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx index cec52373b81fb..134ef06eebb7c 100644 --- a/api_docs/kbn_reporting_export_types_csv.mdx +++ b/api_docs/kbn_reporting_export_types_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv title: "@kbn/reporting-export-types-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv'] --- import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx index 0dd7c9d06ec8b..3ded31c7519bd 100644 --- a/api_docs/kbn_reporting_export_types_csv_common.mdx +++ b/api_docs/kbn_reporting_export_types_csv_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common title: "@kbn/reporting-export-types-csv-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common'] --- import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx index 8a98772e74b41..87f84651d5ab1 100644 --- a/api_docs/kbn_reporting_export_types_pdf.mdx +++ b/api_docs/kbn_reporting_export_types_pdf.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf title: "@kbn/reporting-export-types-pdf" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf'] --- import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx index 9a79f72471d74..98c0084b907fa 100644 --- a/api_docs/kbn_reporting_export_types_pdf_common.mdx +++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common title: "@kbn/reporting-export-types-pdf-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common'] --- import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx index b78630e85976d..9299583410257 100644 --- a/api_docs/kbn_reporting_export_types_png.mdx +++ b/api_docs/kbn_reporting_export_types_png.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png title: "@kbn/reporting-export-types-png" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png'] --- import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx index 3585a1b9c3866..dbbb4a116617b 100644 --- a/api_docs/kbn_reporting_export_types_png_common.mdx +++ b/api_docs/kbn_reporting_export_types_png_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common title: "@kbn/reporting-export-types-png-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common'] --- import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx index 3a583eb67b9a1..2c7f726a66a94 100644 --- a/api_docs/kbn_reporting_mocks_server.mdx +++ b/api_docs/kbn_reporting_mocks_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server title: "@kbn/reporting-mocks-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-mocks-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server'] --- import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json'; diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx index 33e65b08c6d37..4cb9628f671c5 100644 --- a/api_docs/kbn_reporting_public.mdx +++ b/api_docs/kbn_reporting_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public title: "@kbn/reporting-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-public plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public'] --- import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json'; diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx index 3918484f6d533..85ebaa3fc786b 100644 --- a/api_docs/kbn_reporting_server.mdx +++ b/api_docs/kbn_reporting_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server title: "@kbn/reporting-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server'] --- import kbnReportingServerObj from './kbn_reporting_server.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index dda61e40adaeb..cb3c7a0ec5a6c 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 31da9365a3cc3..dcb4c015e6830 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx index 1bb28995ceb7f..c258bf98c751c 100644 --- a/api_docs/kbn_router_to_openapispec.mdx +++ b/api_docs/kbn_router_to_openapispec.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec title: "@kbn/router-to-openapispec" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-to-openapispec plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec'] --- import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json'; diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx index ef26b3268248d..db918d417c73d 100644 --- a/api_docs/kbn_router_utils.mdx +++ b/api_docs/kbn_router_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils title: "@kbn/router-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils'] --- import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json'; diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx index 89b6ab7a8df5a..bbf1a9b3a4ec6 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index cbb11bdc333c1..1a17fdcee9689 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx index c261588b1aeb6..14271bccfea24 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index 1fe032b36768a..6b71e62659bd5 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.devdocs.json b/api_docs/kbn_search_connectors.devdocs.json index 7a61e3a8c01ca..bee03d3e96b65 100644 --- a/api_docs/kbn_search_connectors.devdocs.json +++ b/api_docs/kbn_search_connectors.devdocs.json @@ -8537,10 +8537,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box", "type": "Object", "tags": [], - "label": "confluence", + "label": "box", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8548,7 +8548,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration", "type": "Object", "tags": [], "label": "configuration", @@ -8559,10 +8559,10 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path", "type": "Object", "tags": [], - "label": "data_source", + "label": "path", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8570,7 +8570,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -8584,7 +8584,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -8598,7 +8598,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.display", "type": "string", "tags": [], "label": "display", @@ -8611,7 +8611,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".DROPDOWN" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8619,7 +8619,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.label", "type": "string", "tags": [], "label": "label", @@ -8630,13 +8630,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "{ label: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8644,7 +8644,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.order", "type": "number", "tags": [], "label": "order", @@ -8655,13 +8655,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8669,7 +8669,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -8683,21 +8683,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.type", "type": "string", "tags": [], "label": "type", @@ -8718,7 +8715,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -8732,7 +8729,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.validations", "type": "Array", "tags": [], "label": "validations", @@ -8746,7 +8743,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.path.value", "type": "string", "tags": [], "label": "value", @@ -8759,10 +8756,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key", "type": "Object", "tags": [], - "label": "username", + "label": "app_key", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8770,7 +8767,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -8784,13 +8781,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8798,7 +8795,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.display", "type": "string", "tags": [], "label": "display", @@ -8819,7 +8816,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.label", "type": "string", "tags": [], "label": "label", @@ -8830,7 +8827,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.options", "type": "Array", "tags": [], "label": "options", @@ -8844,7 +8841,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.order", "type": "number", "tags": [], "label": "order", @@ -8855,7 +8852,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.required", "type": "boolean", "tags": [], "label": "required", @@ -8869,13 +8866,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8883,7 +8880,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -8897,7 +8894,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.type", "type": "string", "tags": [], "label": "type", @@ -8918,7 +8915,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -8932,7 +8929,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.validations", "type": "Array", "tags": [], "label": "validations", @@ -8946,7 +8943,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_key.value", "type": "string", "tags": [], "label": "value", @@ -8959,10 +8956,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret", "type": "Object", "tags": [], - "label": "password", + "label": "app_secret", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8970,7 +8967,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -8984,13 +8981,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -8998,7 +8995,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.display", "type": "string", "tags": [], "label": "display", @@ -9019,7 +9016,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.label", "type": "string", "tags": [], "label": "label", @@ -9030,7 +9027,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.options", "type": "Array", "tags": [], "label": "options", @@ -9044,7 +9041,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.order", "type": "number", "tags": [], "label": "order", @@ -9055,7 +9052,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.required", "type": "boolean", "tags": [], "label": "required", @@ -9069,7 +9066,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -9083,7 +9080,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -9097,7 +9094,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.type", "type": "string", "tags": [], "label": "type", @@ -9118,7 +9115,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -9132,7 +9129,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.validations", "type": "Array", "tags": [], "label": "validations", @@ -9146,7 +9143,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.app_secret.value", "type": "string", "tags": [], "label": "value", @@ -9159,10 +9156,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token", "type": "Object", "tags": [], - "label": "data_center_username", + "label": "refresh_token", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9170,7 +9167,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -9184,13 +9181,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9198,7 +9195,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.display", "type": "string", "tags": [], "label": "display", @@ -9219,7 +9216,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.label", "type": "string", "tags": [], "label": "label", @@ -9230,7 +9227,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.options", "type": "Array", "tags": [], "label": "options", @@ -9244,7 +9241,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.order", "type": "number", "tags": [], "label": "order", @@ -9255,7 +9252,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.required", "type": "boolean", "tags": [], "label": "required", @@ -9269,13 +9266,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9283,7 +9280,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -9297,7 +9294,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.type", "type": "string", "tags": [], "label": "type", @@ -9318,7 +9315,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -9332,7 +9329,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.validations", "type": "Array", "tags": [], "label": "validations", @@ -9346,7 +9343,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.refresh_token.value", "type": "string", "tags": [], "label": "value", @@ -9359,10 +9356,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count", "type": "Object", "tags": [], - "label": "data_center_password", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9370,27 +9367,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9398,7 +9392,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -9411,7 +9405,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9419,7 +9413,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -9430,7 +9424,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -9444,7 +9438,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -9455,13 +9449,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9469,13 +9463,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9483,7 +9477,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -9497,7 +9491,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -9510,7 +9504,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9518,13 +9512,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9532,7 +9526,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -9546,7 +9540,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.retry_count.value", "type": "string", "tags": [], "label": "value", @@ -9559,10 +9553,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads", "type": "Object", "tags": [], - "label": "account_email", + "label": "concurrent_downloads", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9570,27 +9564,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9598,7 +9589,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.display", "type": "string", "tags": [], "label": "display", @@ -9611,7 +9602,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9619,7 +9610,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.label", "type": "string", "tags": [], "label": "label", @@ -9630,7 +9621,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.options", "type": "Array", "tags": [], "label": "options", @@ -9644,7 +9635,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.order", "type": "number", "tags": [], "label": "order", @@ -9655,24 +9646,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9680,7 +9660,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -9694,7 +9674,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -9708,7 +9688,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.type", "type": "string", "tags": [], "label": "type", @@ -9721,7 +9701,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9729,13 +9709,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9743,7 +9723,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.validations", "type": "Array", "tags": [], "label": "validations", @@ -9757,7 +9737,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.concurrent_downloads.value", "type": "string", "tags": [], "label": "value", @@ -9770,10 +9750,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "api_token", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9781,7 +9761,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -9795,13 +9775,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9809,7 +9789,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -9822,7 +9802,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9830,7 +9810,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -9841,7 +9821,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -9855,7 +9835,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -9866,7 +9846,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -9880,13 +9860,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9894,21 +9874,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -9921,7 +9898,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9929,13 +9906,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9943,7 +9920,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -9957,11 +9934,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -9970,10 +9950,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "confluence_url", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -9981,7 +9961,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -9995,7 +9975,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -10009,7 +9989,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -10022,7 +10002,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10030,7 +10010,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -10041,7 +10021,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -10055,7 +10035,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -10066,18 +10046,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", @@ -10091,7 +10060,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10105,21 +10074,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -10132,7 +10098,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10140,7 +10106,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10154,7 +10120,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -10168,11 +10134,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.use_document_level_security.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -10181,10 +10150,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups", "type": "Object", "tags": [], - "label": "spaces", + "label": "include_inherited_users_and_groups", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10192,7 +10161,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10206,13 +10175,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10220,7 +10189,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.display", "type": "string", "tags": [], "label": "display", @@ -10233,7 +10202,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10241,7 +10210,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.label", "type": "string", "tags": [], "label": "label", @@ -10252,7 +10221,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.options", "type": "Array", "tags": [], "label": "options", @@ -10266,7 +10235,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.order", "type": "number", "tags": [], "label": "order", @@ -10277,7 +10246,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.required", "type": "boolean", "tags": [], "label": "required", @@ -10291,7 +10260,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10305,7 +10274,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -10316,7 +10285,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.type", "type": "string", "tags": [], "label": "type", @@ -10329,7 +10298,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10337,7 +10306,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10351,7 +10320,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.validations", "type": "Array", "tags": [], "label": "validations", @@ -10365,23 +10334,86 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.configuration.include_inherited_users_and_groups.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.box.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence", + "type": "Object", + "tags": [], + "label": "confluence", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "data_source", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10389,7 +10421,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10403,7 +10435,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -10417,7 +10449,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.display", "type": "string", "tags": [], "label": "display", @@ -10430,7 +10462,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".DROPDOWN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10438,7 +10470,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.label", "type": "string", "tags": [], "label": "label", @@ -10449,13 +10481,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "never[]" + "{ label: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10463,7 +10495,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.order", "type": "number", "tags": [], "label": "order", @@ -10474,7 +10506,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.required", "type": "boolean", "tags": [], "label": "required", @@ -10488,7 +10520,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10502,7 +10534,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -10516,7 +10548,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.type", "type": "string", "tags": [], "label": "type", @@ -10529,7 +10561,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10537,7 +10569,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10551,7 +10583,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.validations", "type": "Array", "tags": [], "label": "validations", @@ -10565,14 +10597,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_source.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -10581,10 +10610,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10592,7 +10621,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -10606,13 +10635,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10620,7 +10649,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -10641,7 +10670,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -10652,7 +10681,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -10666,7 +10695,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -10677,7 +10706,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.required", "type": "boolean", "tags": [], "label": "required", @@ -10691,7 +10720,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -10705,7 +10734,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -10719,7 +10748,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -10740,7 +10769,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -10754,7 +10783,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -10768,7 +10797,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -10781,10 +10810,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password", "type": "Object", "tags": [], - "label": "retry_count", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10792,24 +10821,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10817,7 +10849,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -10830,7 +10862,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10838,7 +10870,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -10849,7 +10881,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -10863,7 +10895,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -10874,13 +10906,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10888,13 +10920,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10902,7 +10934,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -10916,7 +10948,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -10937,13 +10969,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10951,7 +10983,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -10965,8 +10997,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.password.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -10978,10 +11010,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username", "type": "Object", "tags": [], - "label": "concurrent_downloads", + "label": "data_center_username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -10989,24 +11021,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11014,7 +11049,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.display", "type": "string", "tags": [], "label": "display", @@ -11027,7 +11062,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11035,7 +11070,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.label", "type": "string", "tags": [], "label": "label", @@ -11046,7 +11081,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.options", "type": "Array", "tags": [], "label": "options", @@ -11060,7 +11095,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.order", "type": "number", "tags": [], "label": "order", @@ -11071,13 +11106,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11085,7 +11120,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11099,7 +11134,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -11113,7 +11148,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.type", "type": "string", "tags": [], "label": "type", @@ -11126,7 +11161,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11134,13 +11169,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11148,13 +11183,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ constraint: number; type: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11162,8 +11197,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_username.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -11175,10 +11210,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "data_center_password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11186,7 +11221,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11200,7 +11235,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -11214,7 +11249,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.display", "type": "string", "tags": [], "label": "display", @@ -11227,7 +11262,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11235,7 +11270,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.label", "type": "string", "tags": [], "label": "label", @@ -11246,7 +11281,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.options", "type": "Array", "tags": [], "label": "options", @@ -11260,7 +11295,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.order", "type": "number", "tags": [], "label": "order", @@ -11271,7 +11306,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.required", "type": "boolean", "tags": [], "label": "required", @@ -11285,13 +11320,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11299,18 +11334,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.type", "type": "string", "tags": [], "label": "type", @@ -11323,7 +11361,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11331,7 +11369,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11345,7 +11383,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.validations", "type": "Array", "tags": [], "label": "validations", @@ -11359,14 +11397,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.data_center_password.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -11375,10 +11410,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "account_email", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11386,13 +11421,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11400,13 +11435,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11414,7 +11449,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.display", "type": "string", "tags": [], "label": "display", @@ -11427,7 +11462,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11435,7 +11470,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.label", "type": "string", "tags": [], "label": "label", @@ -11446,7 +11481,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.options", "type": "Array", "tags": [], "label": "options", @@ -11460,7 +11495,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.order", "type": "number", "tags": [], "label": "order", @@ -11471,7 +11506,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.required", "type": "boolean", "tags": [], "label": "required", @@ -11485,7 +11531,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11499,18 +11545,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.type", "type": "string", "tags": [], "label": "type", @@ -11523,7 +11572,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11531,13 +11580,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11545,7 +11594,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.validations", "type": "Array", "tags": [], "label": "validations", @@ -11559,121 +11608,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.account_email.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.DOCUMENT_LEVEL_SECURITY", - "type": "Object", - "tags": [], - "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -11682,85 +11621,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox", - "type": "Object", - "tags": [], - "label": "dropbox", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token", "type": "Object", "tags": [], - "label": "path", + "label": "api_token", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11768,7 +11632,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11782,13 +11646,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11796,7 +11660,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.display", "type": "string", "tags": [], "label": "display", @@ -11817,7 +11681,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.label", "type": "string", "tags": [], "label": "label", @@ -11828,7 +11692,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.options", "type": "Array", "tags": [], "label": "options", @@ -11842,7 +11706,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.order", "type": "number", "tags": [], "label": "order", @@ -11853,13 +11717,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11867,13 +11731,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11881,18 +11745,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.type", "type": "string", "tags": [], "label": "type", @@ -11913,7 +11780,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11927,7 +11794,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.validations", "type": "Array", "tags": [], "label": "validations", @@ -11941,7 +11808,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.api_token.value", "type": "string", "tags": [], "label": "value", @@ -11954,10 +11821,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url", "type": "Object", "tags": [], - "label": "app_key", + "label": "confluence_url", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11965,7 +11832,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11979,7 +11846,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -11993,7 +11860,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.display", "type": "string", "tags": [], "label": "display", @@ -12014,7 +11881,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.label", "type": "string", "tags": [], "label": "label", @@ -12025,7 +11892,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.options", "type": "Array", "tags": [], "label": "options", @@ -12039,7 +11906,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.order", "type": "number", "tags": [], "label": "order", @@ -12050,7 +11917,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.placeholder", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.placeholder", "type": "string", "tags": [], "label": "placeholder", @@ -12061,7 +11928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.required", "type": "boolean", "tags": [], "label": "required", @@ -12075,13 +11942,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12089,7 +11956,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -12103,7 +11970,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.type", "type": "string", "tags": [], "label": "type", @@ -12124,7 +11991,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12138,7 +12005,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.validations", "type": "Array", "tags": [], "label": "validations", @@ -12152,7 +12019,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.confluence_url.value", "type": "string", "tags": [], "label": "value", @@ -12165,10 +12032,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces", "type": "Object", "tags": [], - "label": "app_secret", + "label": "spaces", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12176,7 +12043,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -12190,7 +12057,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12204,7 +12071,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.display", "type": "string", "tags": [], "label": "display", @@ -12217,7 +12084,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12225,7 +12092,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.label", "type": "string", "tags": [], "label": "label", @@ -12236,7 +12103,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.options", "type": "Array", "tags": [], "label": "options", @@ -12250,7 +12117,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.order", "type": "number", "tags": [], "label": "order", @@ -12261,7 +12128,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.required", "type": "boolean", "tags": [], "label": "required", @@ -12275,13 +12142,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12289,21 +12156,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.type", "type": "string", "tags": [], "label": "type", @@ -12316,7 +12180,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12324,7 +12188,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12338,7 +12202,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.validations", "type": "Array", "tags": [], "label": "validations", @@ -12352,7 +12216,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.spaces.value", "type": "string", "tags": [], "label": "value", @@ -12365,10 +12229,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "refresh_token", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12376,7 +12240,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -12390,7 +12254,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12404,7 +12268,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -12417,7 +12281,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12425,7 +12289,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -12436,7 +12300,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -12450,7 +12314,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -12461,7 +12325,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -12475,13 +12339,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12489,7 +12353,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -12503,7 +12367,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -12516,7 +12380,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12524,7 +12388,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12538,7 +12402,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -12552,11 +12416,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -12565,10 +12432,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "retry_count", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12576,24 +12443,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12601,7 +12471,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -12614,7 +12484,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12622,7 +12492,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -12633,7 +12503,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -12647,7 +12517,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -12658,13 +12528,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12672,7 +12542,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12686,7 +12556,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -12700,7 +12570,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -12713,7 +12583,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12721,13 +12591,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12735,7 +12605,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -12749,8 +12619,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_ca.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -12762,10 +12632,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count", "type": "Object", "tags": [], - "label": "concurrent_downloads", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12773,7 +12643,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.default_value", "type": "number", "tags": [], "label": "default_value", @@ -12784,7 +12654,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12798,7 +12668,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -12819,7 +12689,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -12830,7 +12700,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -12844,7 +12714,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -12855,7 +12725,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", @@ -12869,7 +12739,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12883,7 +12753,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -12897,7 +12767,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -12910,7 +12780,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12918,7 +12788,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12932,7 +12802,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -12946,7 +12816,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.retry_count.value", "type": "number", "tags": [], "label": "value", @@ -12959,10 +12829,6340 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "concurrent_downloads", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.default_value", + "type": "number", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "{ constraint: number; type: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.concurrent_downloads.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security", + "type": "Object", + "tags": [], + "label": "use_document_level_security", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_document_level_security.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service", + "type": "Object", + "tags": [], + "label": "use_text_extraction_service", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.default_value", + "type": "boolean", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.use_text_extraction_service.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.DOCUMENT_LEVEL_SECURITY", + "type": "Object", + "tags": [], + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox", + "type": "Object", + "tags": [], + "label": "dropbox", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path", + "type": "Object", + "tags": [], + "label": "path", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.path.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key", + "type": "Object", + "tags": [], + "label": "app_key", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_key.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret", + "type": "Object", + "tags": [], + "label": "app_secret", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.app_secret.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token", + "type": "Object", + "tags": [], + "label": "refresh_token", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.refresh_token.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count", + "type": "Object", + "tags": [], + "label": "retry_count", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.default_value", + "type": "number", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.retry_count.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads", + "type": "Object", + "tags": [], + "label": "concurrent_downloads", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.default_value", + "type": "number", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.concurrent_downloads.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service", + "type": "Object", + "tags": [], + "label": "use_text_extraction_service", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.default_value", + "type": "boolean", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github", + "type": "Object", + "tags": [], + "label": "github", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source", + "type": "Object", + "tags": [], + "label": "data_source", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".DROPDOWN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ label: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method", + "type": "Object", + "tags": [], + "label": "auth_method", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".DROPDOWN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ label: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token", + "type": "Object", + "tags": [], + "label": "token", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type", + "type": "Object", + "tags": [], + "label": "repo_type", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".DROPDOWN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ label: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name", + "type": "Object", + "tags": [], + "label": "org_name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id", + "type": "Object", + "tags": [], + "label": "app_id", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key", + "type": "Object", + "tags": [], + "label": "private_key", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTAREA" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories", + "type": "Object", + "tags": [], + "label": "repositories", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTAREA" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".LIST" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled", + "type": "Object", + "tags": [], + "label": "ssl_enabled", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca", + "type": "Object", + "tags": [], + "label": "ssl_ca", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: true; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count", + "type": "Object", + "tags": [], + "label": "retry_count", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service", + "type": "Object", + "tags": [], + "label": "use_text_extraction_service", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security", + "type": "Object", + "tags": [], + "label": "use_document_level_security", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail", + "type": "Object", + "tags": [], + "label": "gmail", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials", + "type": "Object", + "tags": [], + "label": "service_account_credentials", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTAREA" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject", + "type": "Object", + "tags": [], + "label": "subject", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "{ type: string; constraint: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id", + "type": "Object", + "tags": [], + "label": "customer_id", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTBOX" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash", + "type": "Object", + "tags": [], + "label": "include_spam_and_trash", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security", + "type": "Object", + "tags": [], + "label": "use_document_level_security", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.DOCUMENT_LEVEL_SECURITY", + "type": "Object", + "tags": [], + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage", + "type": "Object", + "tags": [], + "label": "google_cloud_storage", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12970,13 +19170,53 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.features.FeatureName.INCREMENTAL_SYNC.enabled", "type": "boolean", "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets", + "type": "Object", + "tags": [], + "label": "buckets", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.default_value", + "type": "Uncategorized", + "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12984,7 +19224,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12998,7 +19238,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.display", "type": "string", "tags": [], "label": "display", @@ -13011,7 +19251,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13019,7 +19259,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.label", "type": "string", "tags": [], "label": "label", @@ -13030,7 +19270,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.options", "type": "Array", "tags": [], "label": "options", @@ -13044,7 +19284,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.order", "type": "number", "tags": [], "label": "order", @@ -13055,7 +19295,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.required", "type": "boolean", "tags": [], "label": "required", @@ -13069,7 +19309,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -13083,18 +19323,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.type", "type": "string", "tags": [], "label": "type", @@ -13107,7 +19350,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13115,13 +19358,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13129,7 +19372,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.validations", "type": "Array", "tags": [], "label": "validations", @@ -13143,39 +19386,23 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials", "type": "Object", "tags": [], - "label": "[FeatureName.SYNC_RULES]", + "label": "service_account_credentials", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13183,77 +19410,109 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.default_value", + "type": "Uncategorized", "tags": [], - "label": "advanced", + "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] + "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.basic", - "type": "Object", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.depends_on", + "type": "Array", "tags": [], - "label": "basic", + "label": "depends_on", "description": [], + "signature": [ + "never[]" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false, - "children": [ + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTAREA" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.features.FeatureName.INCREMENTAL_SYNC.enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.required", "type": "boolean", "tags": [], - "label": "enabled", + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", "description": [], "signature": [ "true" @@ -13261,63 +19520,89 @@ "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.dropbox.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github", - "type": "Object", - "tags": [], - "label": "github", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count", "type": "Object", "tags": [], - "label": "data_source", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13325,21 +19610,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -13353,7 +19635,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -13366,7 +19648,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".DROPDOWN" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13374,7 +19656,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -13385,13 +19667,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "{ label: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13399,7 +19681,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -13410,13 +19692,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13424,7 +19706,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -13438,7 +19720,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -13452,7 +19734,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -13465,7 +19747,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13473,13 +19755,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13487,7 +19769,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -13501,7 +19783,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.data_source.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.value", "type": "string", "tags": [], "label": "value", @@ -13514,10 +19796,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "host", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13525,7 +19807,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -13539,13 +19821,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13553,7 +19835,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -13566,7 +19848,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13574,7 +19856,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -13585,7 +19867,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -13599,7 +19881,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -13610,7 +19892,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -13624,7 +19906,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -13638,21 +19920,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -13665,7 +19944,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13673,13 +19952,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13687,7 +19966,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -13701,23 +19980,74 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.host.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive", + "type": "Object", + "tags": [], + "label": "google_drive", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials", "type": "Object", "tags": [], - "label": "auth_method", + "label": "service_account_credentials", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13725,7 +20055,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -13739,7 +20069,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -13753,7 +20083,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.display", "type": "string", "tags": [], "label": "display", @@ -13766,7 +20096,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".DROPDOWN" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13774,7 +20104,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.label", "type": "string", "tags": [], "label": "label", @@ -13785,13 +20115,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "{ label: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13799,7 +20129,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.order", "type": "number", "tags": [], "label": "order", @@ -13810,7 +20140,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.required", "type": "boolean", "tags": [], "label": "required", @@ -13824,13 +20154,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13838,21 +20168,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.type", "type": "string", "tags": [], "label": "type", @@ -13873,7 +20200,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -13887,7 +20214,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.validations", "type": "Array", "tags": [], "label": "validations", @@ -13901,7 +20228,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.auth_method.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.value", "type": "string", "tags": [], "label": "value", @@ -13914,10 +20241,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync", "type": "Object", "tags": [], - "label": "token", + "label": "use_domain_wide_delegation_for_sync", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13925,7 +20252,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -13939,13 +20266,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13953,7 +20280,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.display", "type": "string", "tags": [], "label": "display", @@ -13966,7 +20293,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -13974,7 +20301,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.label", "type": "string", "tags": [], "label": "label", @@ -13985,7 +20312,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.options", "type": "Array", "tags": [], "label": "options", @@ -13999,7 +20326,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.order", "type": "number", "tags": [], "label": "order", @@ -14010,7 +20337,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.required", "type": "boolean", "tags": [], "label": "required", @@ -14024,13 +20351,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14038,21 +20365,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.type", "type": "string", "tags": [], "label": "type", @@ -14065,7 +20389,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14073,7 +20397,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14087,7 +20411,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.validations", "type": "Array", "tags": [], "label": "validations", @@ -14101,11 +20425,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.token.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -14114,10 +20441,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync", "type": "Object", "tags": [], - "label": "repo_type", + "label": "google_workspace_admin_email_for_data_sync", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14125,7 +20452,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -14139,13 +20466,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14153,7 +20480,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.display", "type": "string", "tags": [], "label": "display", @@ -14166,7 +20493,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".DROPDOWN" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14174,7 +20501,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.label", "type": "string", "tags": [], "label": "label", @@ -14185,13 +20512,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "{ label: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14199,7 +20526,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.order", "type": "number", "tags": [], "label": "order", @@ -14210,7 +20537,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.required", "type": "boolean", "tags": [], "label": "required", @@ -14224,7 +20551,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -14238,7 +20565,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -14249,7 +20576,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.type", "type": "string", "tags": [], "label": "type", @@ -14270,7 +20597,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14284,13 +20611,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "never[]" + "{ type: string; constraint: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14298,7 +20625,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.value", "type": "string", "tags": [], "label": "value", @@ -14311,10 +20638,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync", "type": "Object", "tags": [], - "label": "org_name", + "label": "google_workspace_email_for_shared_drives_sync", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14322,7 +20649,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -14336,13 +20663,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14350,7 +20677,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.display", "type": "string", "tags": [], "label": "display", @@ -14371,7 +20698,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.label", "type": "string", "tags": [], "label": "label", @@ -14382,7 +20709,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.options", "type": "Array", "tags": [], "label": "options", @@ -14396,7 +20723,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.order", "type": "number", "tags": [], "label": "order", @@ -14407,7 +20734,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.required", "type": "boolean", "tags": [], "label": "required", @@ -14421,7 +20748,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -14435,21 +20762,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.type", "type": "string", "tags": [], "label": "type", @@ -14470,7 +20794,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14484,13 +20808,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "never[]" + "{ type: string; constraint: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14498,7 +20822,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.value", "type": "string", "tags": [], "label": "value", @@ -14511,10 +20835,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "app_id", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14522,7 +20846,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -14536,13 +20860,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14550,7 +20874,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -14563,7 +20887,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14571,7 +20895,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -14582,7 +20906,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -14596,7 +20920,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -14607,7 +20931,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", @@ -14621,7 +20945,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -14635,21 +20959,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -14662,7 +20983,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14670,7 +20991,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14684,7 +21005,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -14698,11 +21019,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.app_id.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -14711,10 +21035,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email", "type": "Object", "tags": [], - "label": "private_key", + "label": "google_workspace_admin_email", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14722,7 +21046,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -14736,13 +21060,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "({ field: string; value: true; } | { field: string; value: false; })[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14750,7 +21074,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.display", "type": "string", "tags": [], "label": "display", @@ -14763,7 +21087,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14771,7 +21095,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.label", "type": "string", "tags": [], "label": "label", @@ -14782,7 +21106,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.options", "type": "Array", "tags": [], "label": "options", @@ -14796,7 +21120,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.order", "type": "number", "tags": [], "label": "order", @@ -14807,7 +21131,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.required", "type": "boolean", "tags": [], "label": "required", @@ -14821,13 +21145,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14835,21 +21159,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.type", "type": "string", "tags": [], "label": "type", @@ -14870,7 +21191,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -14884,13 +21205,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "never[]" + "{ type: string; constraint: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14898,7 +21219,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.private_key.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.value", "type": "string", "tags": [], "label": "value", @@ -14911,10 +21232,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency", "type": "Object", "tags": [], - "label": "repositories", + "label": "max_concurrency", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14922,21 +21243,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -14950,7 +21268,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.display", "type": "string", "tags": [], "label": "display", @@ -14963,7 +21281,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -14971,7 +21289,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.label", "type": "string", "tags": [], "label": "label", @@ -14982,7 +21300,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.options", "type": "Array", "tags": [], "label": "options", @@ -14996,7 +21314,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.order", "type": "number", "tags": [], "label": "order", @@ -15007,13 +21325,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15021,7 +21339,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15035,7 +21353,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -15046,7 +21364,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.type", "type": "string", "tags": [], "label": "type", @@ -15059,7 +21377,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15067,13 +21385,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15081,13 +21399,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "never[]" + "{ type: string; constraint: number; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15095,7 +21413,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.value", "type": "string", "tags": [], "label": "value", @@ -15108,10 +21426,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15119,7 +21437,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -15133,7 +21451,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -15147,7 +21465,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -15168,7 +21486,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -15179,7 +21497,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -15193,7 +21511,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -15204,7 +21522,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -15218,7 +21536,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15232,21 +21550,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -15267,13 +21582,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15281,7 +21596,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -15295,7 +21610,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.value", "type": "boolean", "tags": [], "label": "value", @@ -15308,13 +21623,53 @@ "trackAdoption": false } ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.DOCUMENT_LEVEL_SECURITY", + "type": "Object", + "tags": [], + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.INCREMENTAL_SYNC", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "[FeatureName.INCREMENTAL_SYNC]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15322,7 +21677,82 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira", + "type": "Object", + "tags": [], + "label": "jira", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source", + "type": "Object", + "tags": [], + "label": "data_source", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -15336,13 +21766,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15350,7 +21780,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.display", "type": "string", "tags": [], "label": "display", @@ -15363,7 +21793,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".DROPDOWN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15371,7 +21801,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.label", "type": "string", "tags": [], "label": "label", @@ -15382,13 +21812,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "never[]" + "{ label: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15396,7 +21826,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.order", "type": "number", "tags": [], "label": "order", @@ -15407,7 +21837,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.required", "type": "boolean", "tags": [], "label": "required", @@ -15421,7 +21851,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15435,7 +21865,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -15449,7 +21879,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.type", "type": "string", "tags": [], "label": "type", @@ -15470,7 +21900,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -15484,7 +21914,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.validations", "type": "Array", "tags": [], "label": "validations", @@ -15498,7 +21928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.value", "type": "string", "tags": [], "label": "value", @@ -15511,10 +21941,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username", "type": "Object", "tags": [], - "label": "retry_count", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15522,7 +21952,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -15536,13 +21966,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15550,7 +21980,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -15563,7 +21993,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15571,7 +22001,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -15582,7 +22012,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -15596,7 +22026,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -15607,13 +22037,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15621,7 +22051,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -15635,7 +22065,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -15649,7 +22079,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -15662,7 +22092,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15670,13 +22100,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15684,7 +22114,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -15698,8 +22128,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -15711,10 +22141,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15722,7 +22152,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -15736,13 +22166,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15750,7 +22180,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -15763,7 +22193,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15771,7 +22201,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -15782,7 +22212,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -15796,7 +22226,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -15807,7 +22237,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.required", "type": "boolean", "tags": [], "label": "required", @@ -15821,13 +22251,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15835,18 +22265,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -15859,7 +22292,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15867,13 +22300,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15881,7 +22314,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -15895,14 +22328,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -15911,10 +22341,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "data_center_username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15922,7 +22352,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -15936,7 +22366,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -15950,7 +22380,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.display", "type": "string", "tags": [], "label": "display", @@ -15963,7 +22393,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -15971,7 +22401,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.label", "type": "string", "tags": [], "label": "label", @@ -15982,7 +22412,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.options", "type": "Array", "tags": [], "label": "options", @@ -15996,7 +22426,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.order", "type": "number", "tags": [], "label": "order", @@ -16007,7 +22437,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.required", "type": "boolean", "tags": [], "label": "required", @@ -16021,7 +22451,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16035,18 +22465,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.type", "type": "string", "tags": [], "label": "type", @@ -16059,7 +22492,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16067,7 +22500,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -16081,7 +22514,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.validations", "type": "Array", "tags": [], "label": "validations", @@ -16095,114 +22528,23 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail", - "type": "Object", - "tags": [], - "label": "gmail", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password", "type": "Object", "tags": [], - "label": "service_account_credentials", + "label": "data_center_password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16210,7 +22552,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -16224,13 +22566,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16238,7 +22580,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.display", "type": "string", "tags": [], "label": "display", @@ -16251,7 +22593,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16259,7 +22601,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.label", "type": "string", "tags": [], "label": "label", @@ -16270,7 +22612,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.options", "type": "Array", "tags": [], "label": "options", @@ -16284,7 +22626,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.order", "type": "number", "tags": [], "label": "order", @@ -16295,7 +22637,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.required", "type": "boolean", "tags": [], "label": "required", @@ -16309,7 +22651,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16323,7 +22665,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -16337,7 +22679,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.type", "type": "string", "tags": [], "label": "type", @@ -16358,7 +22700,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -16372,7 +22714,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.validations", "type": "Array", "tags": [], "label": "validations", @@ -16386,7 +22728,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.service_account_credentials.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.value", "type": "string", "tags": [], "label": "value", @@ -16399,10 +22741,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email", "type": "Object", "tags": [], - "label": "subject", + "label": "account_email", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16410,7 +22752,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -16424,13 +22766,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16438,7 +22780,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.display", "type": "string", "tags": [], "label": "display", @@ -16459,7 +22801,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.label", "type": "string", "tags": [], "label": "label", @@ -16470,7 +22812,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.options", "type": "Array", "tags": [], "label": "options", @@ -16484,7 +22826,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.order", "type": "number", "tags": [], "label": "order", @@ -16495,7 +22837,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.required", "type": "boolean", "tags": [], "label": "required", @@ -16509,7 +22862,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16523,18 +22876,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.type", "type": "string", "tags": [], "label": "type", @@ -16555,7 +22911,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -16569,13 +22925,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ type: string; constraint: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16583,7 +22939,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.subject.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.value", "type": "string", "tags": [], "label": "value", @@ -16596,10 +22952,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token", "type": "Object", "tags": [], - "label": "customer_id", + "label": "api_token", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16607,7 +22963,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -16621,13 +22977,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16635,7 +22991,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.display", "type": "string", "tags": [], "label": "display", @@ -16656,7 +23012,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.label", "type": "string", "tags": [], "label": "label", @@ -16667,7 +23023,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.options", "type": "Array", "tags": [], "label": "options", @@ -16681,7 +23037,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.order", "type": "number", "tags": [], "label": "order", @@ -16692,7 +23048,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.required", "type": "boolean", "tags": [], "label": "required", @@ -16706,13 +23062,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16720,18 +23076,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.type", "type": "string", "tags": [], "label": "type", @@ -16752,7 +23111,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -16766,7 +23125,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.validations", "type": "Array", "tags": [], "label": "validations", @@ -16780,7 +23139,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.customer_id.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.value", "type": "string", "tags": [], "label": "value", @@ -16793,10 +23152,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url", "type": "Object", "tags": [], - "label": "include_spam_and_trash", + "label": "jira_url", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16804,7 +23163,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -16818,7 +23177,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -16832,7 +23191,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.display", "type": "string", "tags": [], "label": "display", @@ -16845,7 +23204,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16853,7 +23212,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.label", "type": "string", "tags": [], "label": "label", @@ -16864,7 +23223,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.options", "type": "Array", "tags": [], "label": "options", @@ -16878,7 +23237,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.order", "type": "number", "tags": [], "label": "order", @@ -16889,7 +23248,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.required", "type": "boolean", "tags": [], "label": "required", @@ -16903,7 +23273,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -16917,18 +23287,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.type", "type": "string", "tags": [], "label": "type", @@ -16941,7 +23314,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -16949,7 +23322,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -16963,7 +23336,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.validations", "type": "Array", "tags": [], "label": "validations", @@ -16977,14 +23350,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.include_spam_and_trash.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -16993,10 +23363,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "projects", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17004,7 +23374,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -17018,7 +23388,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17032,7 +23402,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.display", "type": "string", "tags": [], "label": "display", @@ -17045,7 +23415,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17053,7 +23423,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.label", "type": "string", "tags": [], "label": "label", @@ -17064,7 +23434,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.options", "type": "Array", "tags": [], "label": "options", @@ -17078,7 +23448,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.order", "type": "number", "tags": [], "label": "order", @@ -17089,7 +23459,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.required", "type": "boolean", "tags": [], "label": "required", @@ -17103,7 +23473,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -17117,7 +23487,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -17128,7 +23498,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.type", "type": "string", "tags": [], "label": "type", @@ -17141,35 +23511,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.ui_restrictions", - "type": "Array", - "tags": [], - "label": "ui_restrictions", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.validations", - "type": "Array", - "tags": [], - "label": "validations", - "description": [], - "signature": [ - "never[]" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17177,181 +23519,51 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.configuration.use_document_level_security.value", - "type": "boolean", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.DOCUMENT_LEVEL_SECURITY", - "type": "Object", - "tags": [], - "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.ui_restrictions", + "type": "Array", "tags": [], - "label": "enabled", + "label": "ui_restrictions", "description": [], "signature": [ - "true" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.gmail.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage", - "type": "Object", - "tags": [], - "label": "google_cloud_storage", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.validations", + "type": "Array", "tags": [], - "label": "enabled", + "label": "validations", "description": [], "signature": [ - "true" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "buckets", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17359,7 +23571,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -17373,7 +23585,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17387,7 +23599,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -17400,7 +23612,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17408,7 +23620,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -17419,7 +23631,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -17433,7 +23645,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -17444,7 +23656,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -17458,7 +23670,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -17472,7 +23684,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -17486,7 +23698,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -17499,7 +23711,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17507,7 +23719,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17521,7 +23733,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -17535,11 +23747,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -17548,10 +23763,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "service_account_credentials", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17559,7 +23774,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -17573,13 +23788,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17587,7 +23802,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -17600,7 +23815,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17608,7 +23823,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -17619,7 +23834,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -17633,7 +23848,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -17644,7 +23859,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -17658,13 +23873,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17672,7 +23887,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -17686,7 +23901,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -17707,7 +23922,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17721,7 +23936,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -17735,7 +23950,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -17748,7 +23963,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count", "type": "Object", "tags": [], "label": "retry_count", @@ -17759,7 +23974,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.default_value", "type": "number", "tags": [], "label": "default_value", @@ -17770,7 +23985,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17784,7 +23999,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -17805,7 +24020,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -17816,7 +24031,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -17830,7 +24045,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -17841,7 +24056,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", @@ -17855,7 +24070,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -17869,7 +24084,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -17883,7 +24098,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -17904,7 +24119,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -17918,7 +24133,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -17932,8 +24147,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.retry_count.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -17945,10 +24160,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "concurrent_downloads", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -17956,21 +24171,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -17984,7 +24196,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.display", "type": "string", "tags": [], "label": "display", @@ -17997,7 +24209,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18005,7 +24217,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.label", "type": "string", "tags": [], "label": "label", @@ -18016,7 +24228,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.options", "type": "Array", "tags": [], "label": "options", @@ -18030,7 +24242,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.order", "type": "number", "tags": [], "label": "order", @@ -18041,13 +24253,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18055,7 +24267,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -18069,18 +24281,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.type", "type": "string", "tags": [], "label": "type", @@ -18093,7 +24308,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18101,7 +24316,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -18115,13 +24330,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "never[]" + "{ type: string; constraint: number; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18129,74 +24344,23 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.value", + "type": "number", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive", - "type": "Object", - "tags": [], - "label": "google_drive", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "service_account_credentials", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18204,7 +24368,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -18218,13 +24382,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18232,7 +24396,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -18245,7 +24409,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18253,7 +24417,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -18264,7 +24428,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -18278,7 +24442,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -18289,7 +24453,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", @@ -18303,13 +24467,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18317,7 +24481,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -18328,7 +24492,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -18341,7 +24505,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18349,7 +24513,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -18363,7 +24527,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -18377,11 +24541,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.service_account_credentials.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -18390,10 +24557,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "use_domain_wide_delegation_for_sync", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18401,13 +24568,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18415,7 +24582,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -18429,7 +24596,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -18450,7 +24617,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -18461,7 +24628,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -18475,7 +24642,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -18486,7 +24653,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -18500,7 +24667,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -18514,7 +24681,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -18525,7 +24692,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -18546,13 +24713,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18560,7 +24727,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -18574,26 +24741,208 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_domain_wide_delegation_for_sync.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.DOCUMENT_LEVEL_SECURITY", + "type": "Object", + "tags": [], + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.INCREMENTAL_SYNC.enabled", "type": "boolean", "tags": [], - "label": "value", + "label": "enabled", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams", + "type": "Object", + "tags": [], + "label": "microsoft_teams", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id", "type": "Object", "tags": [], - "label": "google_workspace_admin_email_for_data_sync", + "label": "tenant_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18601,7 +24950,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -18615,13 +24964,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18629,7 +24978,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.display", "type": "string", "tags": [], "label": "display", @@ -18650,7 +24999,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.label", "type": "string", "tags": [], "label": "label", @@ -18661,7 +25010,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.options", "type": "Array", "tags": [], "label": "options", @@ -18675,7 +25024,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.order", "type": "number", "tags": [], "label": "order", @@ -18686,7 +25035,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.required", "type": "boolean", "tags": [], "label": "required", @@ -18700,7 +25049,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -18714,18 +25063,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.type", "type": "string", "tags": [], "label": "type", @@ -18746,7 +25098,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -18760,13 +25112,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ type: string; constraint: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18774,7 +25126,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email_for_data_sync.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.tenant_id.value", "type": "string", "tags": [], "label": "value", @@ -18787,10 +25139,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id", "type": "Object", "tags": [], - "label": "google_workspace_email_for_shared_drives_sync", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18798,7 +25150,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -18812,13 +25164,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18826,7 +25178,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -18847,7 +25199,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -18858,7 +25210,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -18872,7 +25224,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -18883,7 +25235,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", @@ -18897,7 +25249,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -18911,18 +25263,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -18943,7 +25298,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -18957,13 +25312,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ type: string; constraint: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18971,7 +25326,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_email_for_shared_drives_sync.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.client_id.value", "type": "string", "tags": [], "label": "value", @@ -18984,10 +25339,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "secret_value", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -18995,7 +25350,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -19009,7 +25364,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -19023,7 +25378,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.display", "type": "string", "tags": [], "label": "display", @@ -19036,7 +25391,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19044,7 +25399,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.label", "type": "string", "tags": [], "label": "label", @@ -19055,7 +25410,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.options", "type": "Array", "tags": [], "label": "options", @@ -19069,7 +25424,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.order", "type": "number", "tags": [], "label": "order", @@ -19080,7 +25435,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.required", "type": "boolean", "tags": [], "label": "required", @@ -19094,13 +25449,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19108,18 +25463,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.type", "type": "string", "tags": [], "label": "type", @@ -19132,7 +25490,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19140,7 +25498,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -19154,7 +25512,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.validations", "type": "Array", "tags": [], "label": "validations", @@ -19168,14 +25526,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_document_level_security.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.secret_value.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -19184,10 +25539,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username", "type": "Object", "tags": [], - "label": "google_workspace_admin_email", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19195,7 +25550,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -19209,13 +25564,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "({ field: string; value: true; } | { field: string; value: false; })[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19223,7 +25578,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -19244,7 +25599,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -19255,7 +25610,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -19269,7 +25624,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -19280,7 +25635,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.required", "type": "boolean", "tags": [], "label": "required", @@ -19294,7 +25649,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -19308,18 +25663,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -19340,7 +25698,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -19354,13 +25712,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ type: string; constraint: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19368,7 +25726,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.google_workspace_admin_email.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -19381,10 +25739,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password", "type": "Object", "tags": [], - "label": "max_concurrency", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19392,18 +25750,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -19417,7 +25778,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -19430,7 +25791,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19438,7 +25799,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -19449,7 +25810,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -19463,7 +25824,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -19474,13 +25835,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19488,13 +25849,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19502,18 +25863,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -19526,7 +25890,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19534,13 +25898,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19548,13 +25912,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ type: string; constraint: number; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19562,7 +25926,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.max_concurrency.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -19572,13 +25936,73 @@ "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.microsoft_teams.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb", + "type": "Object", + "tags": [], + "label": "mongodb", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "host", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19586,21 +26010,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -19614,7 +26035,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.display", "type": "string", "tags": [], "label": "display", @@ -19627,7 +26048,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19635,7 +26056,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.label", "type": "string", "tags": [], "label": "label", @@ -19646,7 +26067,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.options", "type": "Array", "tags": [], "label": "options", @@ -19660,7 +26081,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.order", "type": "number", "tags": [], "label": "order", @@ -19671,7 +26092,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.required", "type": "boolean", "tags": [], "label": "required", @@ -19685,7 +26106,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -19699,7 +26120,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -19710,7 +26131,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.type", "type": "string", "tags": [], "label": "type", @@ -19723,7 +26144,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19731,13 +26152,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19745,7 +26166,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.validations", "type": "Array", "tags": [], "label": "validations", @@ -19759,54 +26180,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.DOCUMENT_LEVEL_SECURITY", - "type": "Object", - "tags": [], - "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -19815,85 +26193,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_drive.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira", - "type": "Object", - "tags": [], - "label": "jira", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user", "type": "Object", "tags": [], - "label": "data_source", + "label": "user", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19901,21 +26204,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -19929,7 +26229,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.display", "type": "string", "tags": [], "label": "display", @@ -19942,7 +26242,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".DROPDOWN" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19950,7 +26250,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.label", "type": "string", "tags": [], "label": "label", @@ -19961,13 +26261,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "{ label: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -19975,7 +26275,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.order", "type": "number", "tags": [], "label": "order", @@ -19986,13 +26286,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20000,7 +26300,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -20014,21 +26314,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.type", "type": "string", "tags": [], "label": "type", @@ -20049,7 +26346,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -20063,7 +26360,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.validations", "type": "Array", "tags": [], "label": "validations", @@ -20077,7 +26374,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_source.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.value", "type": "string", "tags": [], "label": "value", @@ -20090,10 +26387,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password", "type": "Object", "tags": [], - "label": "username", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20101,27 +26398,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20129,7 +26423,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -20150,7 +26444,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -20161,7 +26455,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -20175,7 +26469,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -20186,13 +26480,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20200,13 +26494,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20214,21 +26508,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -20249,7 +26540,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -20263,7 +26554,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -20277,7 +26568,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -20290,10 +26581,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database", "type": "Object", "tags": [], - "label": "password", + "label": "database", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20301,27 +26592,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20329,7 +26617,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.display", "type": "string", "tags": [], "label": "display", @@ -20350,7 +26638,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.label", "type": "string", "tags": [], "label": "label", @@ -20361,7 +26649,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.options", "type": "Array", "tags": [], "label": "options", @@ -20375,7 +26663,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.order", "type": "number", "tags": [], "label": "order", @@ -20386,7 +26674,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.required", "type": "boolean", "tags": [], "label": "required", @@ -20400,13 +26688,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20414,21 +26702,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.type", "type": "string", "tags": [], "label": "type", @@ -20449,7 +26734,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -20463,7 +26748,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.validations", "type": "Array", "tags": [], "label": "validations", @@ -20477,7 +26762,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.value", "type": "string", "tags": [], "label": "value", @@ -20490,10 +26775,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection", "type": "Object", "tags": [], - "label": "data_center_username", + "label": "collection", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20501,27 +26786,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20529,7 +26811,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.display", "type": "string", "tags": [], "label": "display", @@ -20550,7 +26832,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.label", "type": "string", "tags": [], "label": "label", @@ -20561,7 +26843,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.options", "type": "Array", "tags": [], "label": "options", @@ -20575,7 +26857,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.order", "type": "number", "tags": [], "label": "order", @@ -20586,7 +26868,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.required", "type": "boolean", "tags": [], "label": "required", @@ -20600,7 +26882,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -20614,21 +26896,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.type", "type": "string", "tags": [], "label": "type", @@ -20649,7 +26928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -20663,7 +26942,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.validations", "type": "Array", "tags": [], "label": "validations", @@ -20677,7 +26956,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.value", "type": "string", "tags": [], "label": "value", @@ -20690,10 +26969,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection", "type": "Object", "tags": [], - "label": "data_center_password", + "label": "direct_connection", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20701,13 +26980,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20715,13 +26994,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20729,7 +27008,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.display", "type": "string", "tags": [], "label": "display", @@ -20742,7 +27021,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20750,7 +27029,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.label", "type": "string", "tags": [], "label": "label", @@ -20761,7 +27040,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.options", "type": "Array", "tags": [], "label": "options", @@ -20775,7 +27054,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.order", "type": "number", "tags": [], "label": "order", @@ -20786,7 +27065,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.required", "type": "boolean", "tags": [], "label": "required", @@ -20800,13 +27079,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20814,21 +27093,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.type", "type": "string", "tags": [], "label": "type", @@ -20841,7 +27117,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20849,7 +27125,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -20863,7 +27139,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.validations", "type": "Array", "tags": [], "label": "validations", @@ -20877,11 +27153,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.data_center_password.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -20890,10 +27169,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "account_email", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20901,13 +27180,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20915,13 +27194,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20929,7 +27208,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -20942,7 +27221,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -20950,7 +27229,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -20961,7 +27240,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -20975,7 +27254,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -20986,18 +27265,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -21011,7 +27279,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -21025,21 +27293,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -21052,7 +27317,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21060,7 +27325,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -21074,7 +27339,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -21088,11 +27353,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.account_email.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -21101,10 +27369,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "api_token", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21112,27 +27380,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21140,7 +27405,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -21161,7 +27426,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -21172,7 +27437,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -21186,7 +27451,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -21197,13 +27462,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21211,13 +27476,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21225,21 +27490,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -21260,7 +27522,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -21274,7 +27536,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -21288,7 +27550,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.api_token.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -21301,10 +27563,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure", "type": "Object", "tags": [], - "label": "jira_url", + "label": "tls_insecure", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21312,13 +27574,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21326,13 +27588,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21340,7 +27602,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.display", "type": "string", "tags": [], "label": "display", @@ -21353,7 +27615,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21361,7 +27623,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.label", "type": "string", "tags": [], "label": "label", @@ -21372,7 +27634,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.options", "type": "Array", "tags": [], "label": "options", @@ -21386,7 +27648,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.order", "type": "number", "tags": [], "label": "order", @@ -21397,18 +27659,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.required", "type": "boolean", "tags": [], "label": "required", @@ -21422,7 +27673,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -21436,21 +27687,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.type", "type": "string", "tags": [], "label": "type", @@ -21463,7 +27711,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21471,13 +27719,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21485,7 +27733,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.validations", "type": "Array", "tags": [], "label": "validations", @@ -21499,23 +27747,67 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.jira_url.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_ADVANCED_CONFIG", + "type": "boolean", + "tags": [], + "label": "[FeatureName.FILTERING_ADVANCED_CONFIG]", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_RULES", + "type": "boolean", + "tags": [], + "label": "[FeatureName.FILTERING_RULES]", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES", "type": "Object", "tags": [], - "label": "projects", + "label": "[FeatureName.SYNC_RULES]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21523,21 +27815,133 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql", + "type": "Object", + "tags": [], + "label": "mssql", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -21551,7 +27955,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.display", "type": "string", "tags": [], "label": "display", @@ -21564,7 +27968,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21572,7 +27976,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.label", "type": "string", "tags": [], "label": "label", @@ -21583,7 +27987,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.options", "type": "Array", "tags": [], "label": "options", @@ -21597,7 +28001,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.order", "type": "number", "tags": [], "label": "order", @@ -21608,7 +28012,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.required", "type": "boolean", "tags": [], "label": "required", @@ -21622,7 +28026,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -21636,7 +28040,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -21647,7 +28051,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.type", "type": "string", "tags": [], "label": "type", @@ -21660,7 +28064,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21668,7 +28072,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -21682,7 +28086,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.validations", "type": "Array", "tags": [], "label": "validations", @@ -21696,7 +28100,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.projects.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.value", "type": "string", "tags": [], "label": "value", @@ -21709,10 +28113,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21720,7 +28124,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -21734,7 +28138,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -21748,7 +28152,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.display", "type": "string", "tags": [], "label": "display", @@ -21761,7 +28165,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21769,7 +28173,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.label", "type": "string", "tags": [], "label": "label", @@ -21780,7 +28184,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.options", "type": "Array", "tags": [], "label": "options", @@ -21794,7 +28198,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.order", "type": "number", "tags": [], "label": "order", @@ -21805,7 +28209,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.required", "type": "boolean", "tags": [], "label": "required", @@ -21819,7 +28223,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -21833,21 +28237,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.type", "type": "string", "tags": [], "label": "type", @@ -21860,7 +28261,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21868,7 +28269,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -21882,7 +28283,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.validations", "type": "Array", "tags": [], "label": "validations", @@ -21896,14 +28297,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.value", + "type": "number", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -21912,10 +28310,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21923,27 +28321,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -21951,7 +28346,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -21972,7 +28367,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -21983,7 +28378,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -21997,7 +28392,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -22008,7 +28403,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.required", "type": "boolean", "tags": [], "label": "required", @@ -22022,7 +28417,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -22036,21 +28431,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -22071,7 +28463,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -22085,7 +28477,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -22099,7 +28491,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -22112,10 +28504,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password", "type": "Object", "tags": [], - "label": "retry_count", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22123,8 +28515,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], @@ -22134,7 +28526,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -22148,7 +28540,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -22161,7 +28553,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22169,7 +28561,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -22180,7 +28572,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -22194,7 +28586,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -22205,13 +28597,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22219,13 +28611,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22233,21 +28625,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -22260,7 +28649,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22268,13 +28657,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22282,7 +28671,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -22296,8 +28685,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -22309,10 +28698,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database", "type": "Object", "tags": [], - "label": "concurrent_downloads", + "label": "database", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22320,8 +28709,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], @@ -22331,7 +28720,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -22345,7 +28734,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.display", "type": "string", "tags": [], "label": "display", @@ -22358,7 +28747,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22366,7 +28755,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.label", "type": "string", "tags": [], "label": "label", @@ -22377,7 +28766,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.options", "type": "Array", "tags": [], "label": "options", @@ -22391,7 +28780,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.order", "type": "number", "tags": [], "label": "order", @@ -22402,13 +28791,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22416,7 +28805,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -22430,21 +28819,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.type", "type": "string", "tags": [], "label": "type", @@ -22457,7 +28843,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22465,13 +28851,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22479,13 +28865,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "{ type: string; constraint: number; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22493,8 +28879,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.concurrent_downloads.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -22506,10 +28892,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "tables", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22517,27 +28903,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22545,7 +28928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.display", "type": "string", "tags": [], "label": "display", @@ -22558,7 +28941,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22566,7 +28949,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.label", "type": "string", "tags": [], "label": "label", @@ -22577,7 +28960,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.options", "type": "Array", "tags": [], "label": "options", @@ -22591,7 +28974,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.order", "type": "number", "tags": [], "label": "order", @@ -22602,7 +28985,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.required", "type": "boolean", "tags": [], "label": "required", @@ -22616,7 +28999,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -22630,7 +29013,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -22641,7 +29024,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.type", "type": "string", "tags": [], "label": "type", @@ -22654,7 +29037,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22662,7 +29045,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -22676,7 +29059,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.validations", "type": "Array", "tags": [], "label": "validations", @@ -22690,14 +29073,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_document_level_security.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -22706,10 +29086,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22717,7 +29097,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.default_value", "type": "boolean", "tags": [], "label": "default_value", @@ -22731,7 +29111,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -22745,7 +29125,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -22766,7 +29146,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -22777,7 +29157,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -22791,7 +29171,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -22802,7 +29182,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -22816,7 +29196,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -22830,7 +29210,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -22841,7 +29221,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -22862,13 +29242,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -22876,7 +29256,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -22890,7 +29270,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.configuration.use_text_extraction_service.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.value", "type": "boolean", "tags": [], "label": "value", @@ -22903,195 +29283,13 @@ "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.DOCUMENT_LEVEL_SECURITY", - "type": "Object", - "tags": [], - "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.jira.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb", - "type": "Object", - "tags": [], - "label": "mongodb", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "host", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23099,7 +29297,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.default_value", "type": "string", "tags": [], "label": "default_value", @@ -23110,13 +29308,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23124,7 +29322,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -23145,7 +29343,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -23156,7 +29354,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -23170,7 +29368,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -23181,7 +29379,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -23195,7 +29393,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -23209,7 +29407,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -23220,7 +29418,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -23241,7 +29439,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -23255,7 +29453,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -23269,7 +29467,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.host.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -23282,10 +29480,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema", "type": "Object", "tags": [], - "label": "user", + "label": "schema", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23293,7 +29491,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.default_value", "type": "string", "tags": [], "label": "default_value", @@ -23304,7 +29502,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -23318,7 +29516,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.display", "type": "string", "tags": [], "label": "display", @@ -23339,7 +29537,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.label", "type": "string", "tags": [], "label": "label", @@ -23350,7 +29548,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.options", "type": "Array", "tags": [], "label": "options", @@ -23364,7 +29562,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.order", "type": "number", "tags": [], "label": "order", @@ -23375,13 +29573,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23389,7 +29587,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -23403,7 +29601,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -23414,7 +29612,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.type", "type": "string", "tags": [], "label": "type", @@ -23435,7 +29633,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -23449,7 +29647,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.validations", "type": "Array", "tags": [], "label": "validations", @@ -23463,7 +29661,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.user.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.value", "type": "string", "tags": [], "label": "value", @@ -23476,10 +29674,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size", "type": "Object", "tags": [], - "label": "password", + "label": "fetch_size", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23487,8 +29685,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -23498,7 +29696,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -23512,7 +29710,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.display", "type": "string", "tags": [], "label": "display", @@ -23525,7 +29723,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23533,7 +29731,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.label", "type": "string", "tags": [], "label": "label", @@ -23544,7 +29742,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.options", "type": "Array", "tags": [], "label": "options", @@ -23558,7 +29756,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.order", "type": "number", "tags": [], "label": "order", @@ -23569,7 +29767,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.required", "type": "boolean", "tags": [], "label": "required", @@ -23583,13 +29781,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23597,7 +29795,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -23608,7 +29806,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.type", "type": "string", "tags": [], "label": "type", @@ -23621,7 +29819,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23629,13 +29827,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23643,7 +29841,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.validations", "type": "Array", "tags": [], "label": "validations", @@ -23657,8 +29855,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.password.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -23670,10 +29868,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count", "type": "Object", "tags": [], - "label": "database", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23681,8 +29879,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -23692,7 +29890,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -23706,7 +29904,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -23719,7 +29917,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23727,7 +29925,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -23738,7 +29936,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -23752,7 +29950,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -23763,13 +29961,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23777,7 +29975,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -23791,7 +29989,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -23802,7 +30000,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -23815,7 +30013,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23823,13 +30021,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23837,7 +30035,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -23851,8 +30049,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.database.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -23864,10 +30062,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host", "type": "Object", "tags": [], - "label": "collection", + "label": "validate_host", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23875,18 +30073,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -23900,7 +30101,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.display", "type": "string", "tags": [], "label": "display", @@ -23913,7 +30114,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -23921,7 +30122,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.label", "type": "string", "tags": [], "label": "label", @@ -23932,7 +30133,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.options", "type": "Array", "tags": [], "label": "options", @@ -23946,7 +30147,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.order", "type": "number", "tags": [], "label": "order", @@ -23957,7 +30158,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.required", "type": "boolean", "tags": [], "label": "required", @@ -23971,7 +30172,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -23985,7 +30186,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -23996,7 +30197,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.type", "type": "string", "tags": [], "label": "type", @@ -24009,7 +30210,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24017,7 +30218,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -24031,7 +30232,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.validations", "type": "Array", "tags": [], "label": "validations", @@ -24045,23 +30246,39 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.collection.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES", "type": "Object", "tags": [], - "label": "direct_connection", + "label": "[FeatureName.SYNC_RULES]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24069,21 +30286,133 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql", + "type": "Object", + "tags": [], + "label": "mysql", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -24097,7 +30426,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.display", "type": "string", "tags": [], "label": "display", @@ -24110,7 +30439,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24118,7 +30447,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.label", "type": "string", "tags": [], "label": "label", @@ -24129,7 +30458,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.options", "type": "Array", "tags": [], "label": "options", @@ -24143,7 +30472,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.order", "type": "number", "tags": [], "label": "order", @@ -24154,7 +30483,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.required", "type": "boolean", "tags": [], "label": "required", @@ -24168,7 +30497,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -24182,7 +30511,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -24193,7 +30522,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.type", "type": "string", "tags": [], "label": "type", @@ -24206,7 +30535,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24214,7 +30543,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -24228,7 +30557,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.validations", "type": "Array", "tags": [], "label": "validations", @@ -24242,14 +30571,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.direct_connection.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -24258,10 +30584,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24269,13 +30595,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24283,7 +30609,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -24297,7 +30623,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.display", "type": "string", "tags": [], "label": "display", @@ -24310,7 +30636,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24318,7 +30644,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.label", "type": "string", "tags": [], "label": "label", @@ -24329,7 +30655,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.options", "type": "Array", "tags": [], "label": "options", @@ -24343,7 +30669,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.order", "type": "number", "tags": [], "label": "order", @@ -24354,7 +30680,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.required", "type": "boolean", "tags": [], "label": "required", @@ -24368,7 +30694,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -24382,7 +30708,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -24393,7 +30719,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.type", "type": "string", "tags": [], "label": "type", @@ -24406,7 +30732,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24414,7 +30740,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -24428,7 +30754,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.validations", "type": "Array", "tags": [], "label": "validations", @@ -24442,14 +30768,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -24458,10 +30781,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "user", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24469,7 +30792,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.default_value", "type": "string", "tags": [], "label": "default_value", @@ -24480,13 +30803,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24494,7 +30817,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.display", "type": "string", "tags": [], "label": "display", @@ -24515,7 +30838,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.label", "type": "string", "tags": [], "label": "label", @@ -24526,7 +30849,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.options", "type": "Array", "tags": [], "label": "options", @@ -24540,7 +30863,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.order", "type": "number", "tags": [], "label": "order", @@ -24551,7 +30874,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.required", "type": "boolean", "tags": [], "label": "required", @@ -24565,7 +30888,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -24579,7 +30902,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -24590,7 +30913,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.type", "type": "string", "tags": [], "label": "type", @@ -24611,7 +30934,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -24625,7 +30948,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.validations", "type": "Array", "tags": [], "label": "validations", @@ -24639,7 +30962,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.value", "type": "string", "tags": [], "label": "value", @@ -24652,10 +30975,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password", "type": "Object", "tags": [], - "label": "tls_insecure", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24663,27 +30986,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24691,7 +31011,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -24704,7 +31024,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24712,7 +31032,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -24723,7 +31043,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -24737,7 +31057,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -24748,13 +31068,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24762,13 +31082,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -24776,7 +31096,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -24787,7 +31107,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -24798,220 +31118,61 @@ "scope": "common", "docId": "kibKbnSearchConnectorsPluginApi", "section": "def-common.FieldType", - "text": "FieldType" - }, - ".BOOLEAN" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.ui_restrictions", - "type": "Array", - "tags": [], - "label": "ui_restrictions", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.validations", - "type": "Array", - "tags": [], - "label": "validations", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.configuration.tls_insecure.value", - "type": "boolean", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_ADVANCED_CONFIG", - "type": "boolean", - "tags": [], - "label": "[FeatureName.FILTERING_ADVANCED_CONFIG]", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.FILTERING_RULES", - "type": "boolean", - "tags": [], - "label": "[FeatureName.FILTERING_RULES]", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "text": "FieldType" + }, + ".STRING" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.ui_restrictions", + "type": "Array", "tags": [], - "label": "advanced", + "label": "ui_restrictions", "description": [], + "signature": [ + "never[]" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] + "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic", - "type": "Object", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.validations", + "type": "Array", "tags": [], - "label": "basic", + "label": "validations", "description": [], + "signature": [ + "never[]" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mongodb.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql", - "type": "Object", - "tags": [], - "label": "mssql", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database", "type": "Object", "tags": [], - "label": "host", + "label": "database", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25019,7 +31180,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.default_value", "type": "string", "tags": [], "label": "default_value", @@ -25030,7 +31191,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -25044,7 +31205,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.display", "type": "string", "tags": [], "label": "display", @@ -25065,7 +31226,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.label", "type": "string", "tags": [], "label": "label", @@ -25076,7 +31237,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.options", "type": "Array", "tags": [], "label": "options", @@ -25090,7 +31251,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.order", "type": "number", "tags": [], "label": "order", @@ -25101,7 +31262,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.required", "type": "boolean", "tags": [], "label": "required", @@ -25115,7 +31276,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -25129,7 +31290,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -25140,7 +31301,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.type", "type": "string", "tags": [], "label": "type", @@ -25161,7 +31322,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -25175,7 +31336,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.validations", "type": "Array", "tags": [], "label": "validations", @@ -25189,7 +31350,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.host.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.value", "type": "string", "tags": [], "label": "value", @@ -25202,10 +31363,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables", "type": "Object", "tags": [], - "label": "port", + "label": "tables", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25213,21 +31374,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -25241,7 +31399,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.display", "type": "string", "tags": [], "label": "display", @@ -25254,7 +31412,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25262,7 +31420,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.label", "type": "string", "tags": [], "label": "label", @@ -25273,7 +31431,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.options", "type": "Array", "tags": [], "label": "options", @@ -25287,7 +31445,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.order", "type": "number", "tags": [], "label": "order", @@ -25298,7 +31456,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.required", "type": "boolean", "tags": [], "label": "required", @@ -25312,7 +31470,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -25326,7 +31484,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -25337,7 +31495,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.type", "type": "string", "tags": [], "label": "type", @@ -25350,7 +31508,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25358,7 +31516,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -25372,7 +31530,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.validations", "type": "Array", "tags": [], "label": "validations", @@ -25386,8 +31544,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.port.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -25399,10 +31557,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "username", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25410,18 +31568,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -25435,7 +31596,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -25448,7 +31609,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25456,7 +31617,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -25467,7 +31628,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -25481,7 +31642,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -25492,7 +31653,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -25506,7 +31667,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -25520,7 +31681,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -25531,7 +31692,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -25544,7 +31705,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25552,7 +31713,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -25566,7 +31727,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -25580,11 +31741,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.username.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -25593,10 +31757,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "password", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25604,7 +31768,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.default_value", "type": "string", "tags": [], "label": "default_value", @@ -25615,13 +31779,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25629,7 +31793,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -25650,7 +31814,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -25661,7 +31825,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -25675,7 +31839,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -25686,7 +31850,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -25700,13 +31864,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25714,7 +31878,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -25725,7 +31889,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -25746,7 +31910,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -25760,7 +31924,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -25774,7 +31938,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -25787,10 +31951,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size", "type": "Object", "tags": [], - "label": "database", + "label": "fetch_size", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25798,8 +31962,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -25809,7 +31973,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -25823,7 +31987,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.display", "type": "string", "tags": [], "label": "display", @@ -25836,7 +32000,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25844,7 +32008,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.label", "type": "string", "tags": [], "label": "label", @@ -25855,7 +32019,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.options", "type": "Array", "tags": [], "label": "options", @@ -25869,7 +32033,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.order", "type": "number", "tags": [], "label": "order", @@ -25880,13 +32044,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25894,7 +32058,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -25908,7 +32072,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -25919,7 +32083,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.type", "type": "string", "tags": [], "label": "type", @@ -25932,7 +32096,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25940,13 +32104,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25954,7 +32118,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.validations", "type": "Array", "tags": [], "label": "validations", @@ -25968,8 +32132,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.database.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -25981,10 +32145,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count", "type": "Object", "tags": [], - "label": "tables", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -25992,8 +32156,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -26003,7 +32167,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -26017,7 +32181,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -26030,7 +32194,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26038,7 +32202,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -26049,7 +32213,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -26063,7 +32227,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -26074,13 +32238,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26088,7 +32252,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -26102,7 +32266,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -26113,7 +32277,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -26126,7 +32290,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26134,13 +32298,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26148,7 +32312,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -26162,8 +32326,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.tables.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -26172,13 +32336,26 @@ "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "[FeatureName.SYNC_RULES]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26186,13 +32363,128 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive", + "type": "Object", + "tags": [], + "label": "network_drive", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username", + "type": "Object", + "tags": [], + "label": "username", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26200,7 +32492,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -26214,7 +32506,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -26227,7 +32519,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26235,7 +32527,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -26246,7 +32538,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -26260,7 +32552,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -26271,7 +32563,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.required", "type": "boolean", "tags": [], "label": "required", @@ -26285,7 +32577,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -26299,7 +32591,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -26310,7 +32602,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -26323,7 +32615,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26331,7 +32623,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -26345,7 +32637,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -26359,14 +32651,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -26375,10 +32664,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26386,24 +32675,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26411,7 +32703,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -26432,7 +32724,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -26443,7 +32735,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -26457,7 +32749,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -26468,7 +32760,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.required", "type": "boolean", "tags": [], "label": "required", @@ -26482,13 +32774,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26496,7 +32788,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -26507,7 +32799,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -26528,7 +32820,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -26542,7 +32834,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -26556,7 +32848,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -26569,10 +32861,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip", "type": "Object", "tags": [], - "label": "schema", + "label": "server_ip", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26580,18 +32872,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -26605,7 +32900,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.display", "type": "string", "tags": [], "label": "display", @@ -26626,7 +32921,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.label", "type": "string", "tags": [], "label": "label", @@ -26637,7 +32932,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.options", "type": "Array", "tags": [], "label": "options", @@ -26651,7 +32946,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.order", "type": "number", "tags": [], "label": "order", @@ -26662,7 +32957,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.required", "type": "boolean", "tags": [], "label": "required", @@ -26676,7 +32982,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -26690,7 +32996,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -26701,7 +33007,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.type", "type": "string", "tags": [], "label": "type", @@ -26722,7 +33028,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -26736,7 +33042,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.validations", "type": "Array", "tags": [], "label": "validations", @@ -26750,7 +33056,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.schema.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.value", "type": "string", "tags": [], "label": "value", @@ -26763,10 +33069,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port", "type": "Object", "tags": [], - "label": "fetch_size", + "label": "server_port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26774,18 +33080,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -26799,7 +33108,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.display", "type": "string", "tags": [], "label": "display", @@ -26820,7 +33129,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.label", "type": "string", "tags": [], "label": "label", @@ -26831,7 +33140,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.options", "type": "Array", "tags": [], "label": "options", @@ -26845,7 +33154,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.order", "type": "number", "tags": [], "label": "order", @@ -26856,13 +33165,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26870,7 +33179,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -26884,7 +33193,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -26895,7 +33204,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.type", "type": "string", "tags": [], "label": "type", @@ -26916,13 +33225,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26930,7 +33239,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.validations", "type": "Array", "tags": [], "label": "validations", @@ -26944,7 +33253,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.fetch_size.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.value", "type": "number", "tags": [], "label": "value", @@ -26957,10 +33266,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path", "type": "Object", "tags": [], - "label": "retry_count", + "label": "drive_path", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -26968,18 +33277,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -26993,7 +33305,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.display", "type": "string", "tags": [], "label": "display", @@ -27006,7 +33318,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27014,7 +33326,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.label", "type": "string", "tags": [], "label": "label", @@ -27025,7 +33337,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.options", "type": "Array", "tags": [], "label": "options", @@ -27039,7 +33351,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.order", "type": "number", "tags": [], "label": "order", @@ -27050,13 +33362,24 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27064,7 +33387,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -27078,7 +33401,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -27089,7 +33412,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.type", "type": "string", "tags": [], "label": "type", @@ -27102,7 +33425,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27110,13 +33433,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27124,7 +33447,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.validations", "type": "Array", "tags": [], "label": "validations", @@ -27138,8 +33461,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -27151,10 +33474,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "validate_host", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27162,13 +33485,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27176,7 +33499,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -27190,7 +33513,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -27211,7 +33534,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -27222,7 +33545,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -27236,7 +33559,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -27247,7 +33570,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", @@ -27261,7 +33584,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -27275,7 +33598,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -27286,7 +33609,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -27307,7 +33630,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -27321,7 +33644,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -27335,7 +33658,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.configuration.validate_host.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.value", "type": "boolean", "tags": [], "label": "value", @@ -27353,7 +33676,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features", "type": "Object", "tags": [], "label": "features", @@ -27364,7 +33687,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES", "type": "Object", "tags": [], "label": "[FeatureName.SYNC_RULES]", @@ -27375,7 +33698,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced", "type": "Object", "tags": [], "label": "advanced", @@ -27386,7 +33709,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.advanced.enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced.enabled", "type": "boolean", "tags": [], "label": "enabled", @@ -27402,7 +33725,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic", "type": "Object", "tags": [], "label": "basic", @@ -27413,7 +33736,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.features.FeatureName.SYNC_RULES.basic.enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic.enabled", "type": "boolean", "tags": [], "label": "enabled", @@ -27428,12 +33751,39 @@ ] } ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.name", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.name", "type": "string", "tags": [], "label": "name", @@ -27444,7 +33794,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mssql.serviceType", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.serviceType", "type": "string", "tags": [], "label": "serviceType", @@ -27457,10 +33807,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion", "type": "Object", "tags": [], - "label": "mysql", + "label": "notion", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27468,7 +33818,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration", "type": "Object", "tags": [], "label": "configuration", @@ -27479,10 +33829,10 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id", "type": "Object", "tags": [], - "label": "host", + "label": "tenant_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27490,18 +33840,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -27515,7 +33868,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.display", "type": "string", "tags": [], "label": "display", @@ -27536,7 +33889,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.label", "type": "string", "tags": [], "label": "label", @@ -27547,7 +33900,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.options", "type": "Array", "tags": [], "label": "options", @@ -27561,7 +33914,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.order", "type": "number", "tags": [], "label": "order", @@ -27572,7 +33925,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.required", "type": "boolean", "tags": [], "label": "required", @@ -27586,7 +33939,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -27600,18 +33953,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.type", "type": "string", "tags": [], "label": "type", @@ -27632,7 +33988,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -27646,7 +34002,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -27660,7 +34016,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.host.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.tenant_id.value", "type": "string", "tags": [], "label": "value", @@ -27673,10 +34029,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id", "type": "Object", "tags": [], - "label": "port", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27684,7 +34040,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -27698,201 +34054,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.depends_on", - "type": "Array", - "tags": [], - "label": "depends_on", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.display", - "type": "string", - "tags": [], - "label": "display", - "description": [], - "signature": [ - { - "pluginId": "@kbn/search-connectors", - "scope": "common", - "docId": "kibKbnSearchConnectorsPluginApi", - "section": "def-common.DisplayType", - "text": "DisplayType" - }, - ".NUMERIC" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.label", - "type": "string", - "tags": [], - "label": "label", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.options", - "type": "Array", - "tags": [], - "label": "options", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.order", - "type": "number", - "tags": [], - "label": "order", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.required", - "type": "boolean", - "tags": [], - "label": "required", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.sensitive", - "type": "boolean", - "tags": [], - "label": "sensitive", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.tooltip", - "type": "string", - "tags": [], - "label": "tooltip", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - { - "pluginId": "@kbn/search-connectors", - "scope": "common", - "docId": "kibKbnSearchConnectorsPluginApi", - "section": "def-common.FieldType", - "text": "FieldType" - }, - ".INTEGER" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.ui_restrictions", - "type": "Array", - "tags": [], - "label": "ui_restrictions", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.validations", - "type": "Array", - "tags": [], - "label": "validations", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.port.value", - "type": "string", - "tags": [], - "label": "value", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user", - "type": "Object", - "tags": [], - "label": "user", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.default_value", - "type": "string", - "tags": [], - "label": "default_value", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -27906,7 +34068,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -27927,7 +34089,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -27938,7 +34100,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -27952,7 +34114,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -27963,13 +34125,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -27977,7 +34139,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -27991,18 +34153,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -28023,7 +34188,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -28037,7 +34202,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -28051,7 +34216,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.user.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.client_id.value", "type": "string", "tags": [], "label": "value", @@ -28064,10 +34229,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value", "type": "Object", "tags": [], - "label": "password", + "label": "secret_value", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28075,18 +34240,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -28100,7 +34268,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.display", "type": "string", "tags": [], "label": "display", @@ -28121,7 +34289,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.label", "type": "string", "tags": [], "label": "label", @@ -28132,7 +34300,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.options", "type": "Array", "tags": [], "label": "options", @@ -28146,7 +34314,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.order", "type": "number", "tags": [], "label": "order", @@ -28157,13 +34325,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28171,7 +34339,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -28185,18 +34353,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.type", "type": "string", "tags": [], "label": "type", @@ -28217,7 +34388,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -28231,7 +34402,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.validations", "type": "Array", "tags": [], "label": "validations", @@ -28245,7 +34416,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.secret_value.value", "type": "string", "tags": [], "label": "value", @@ -28258,10 +34429,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username", "type": "Object", "tags": [], - "label": "database", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28269,18 +34440,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -28294,7 +34468,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -28315,7 +34489,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -28326,7 +34500,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -28340,7 +34514,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -28351,7 +34525,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.required", "type": "boolean", "tags": [], "label": "required", @@ -28365,7 +34539,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -28379,18 +34553,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -28411,7 +34588,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -28425,7 +34602,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -28439,7 +34616,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.database.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -28452,10 +34629,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password", "type": "Object", "tags": [], - "label": "tables", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28463,18 +34640,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -28488,7 +34668,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -28501,7 +34681,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28509,7 +34689,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -28520,7 +34700,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -28534,7 +34714,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -28545,7 +34725,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.required", "type": "boolean", "tags": [], "label": "required", @@ -28559,13 +34739,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28573,18 +34753,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -28597,7 +34780,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28605,7 +34788,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -28619,7 +34802,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -28633,7 +34816,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.tables.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -28643,13 +34826,73 @@ "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.notion.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive", + "type": "Object", + "tags": [], + "label": "onedrive", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28657,13 +34900,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28671,7 +34914,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -28685,7 +34928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -28698,7 +34941,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28706,7 +34949,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -28717,7 +34960,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -28731,7 +34974,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -28742,7 +34985,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", @@ -28756,7 +34999,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -28770,18 +35013,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -28794,7 +35040,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28802,7 +35048,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -28816,7 +35062,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -28830,14 +35076,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -28846,10 +35089,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "client_secret", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28857,24 +35100,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28882,7 +35128,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.display", "type": "string", "tags": [], "label": "display", @@ -28903,7 +35149,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.label", "type": "string", "tags": [], "label": "label", @@ -28914,7 +35160,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.options", "type": "Array", "tags": [], "label": "options", @@ -28928,7 +35174,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.order", "type": "number", "tags": [], "label": "order", @@ -28939,7 +35185,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.required", "type": "boolean", "tags": [], "label": "required", @@ -28953,13 +35199,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -28967,18 +35213,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.type", "type": "string", "tags": [], "label": "type", @@ -28999,7 +35248,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -29013,7 +35262,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.validations", "type": "Array", "tags": [], "label": "validations", @@ -29027,7 +35276,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.value", "type": "string", "tags": [], "label": "value", @@ -29040,10 +35289,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id", "type": "Object", "tags": [], - "label": "fetch_size", + "label": "tenant_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29051,18 +35300,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -29076,7 +35328,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.display", "type": "string", "tags": [], "label": "display", @@ -29089,7 +35341,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29097,7 +35349,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.label", "type": "string", "tags": [], "label": "label", @@ -29108,7 +35360,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.options", "type": "Array", "tags": [], "label": "options", @@ -29122,7 +35374,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.order", "type": "number", "tags": [], "label": "order", @@ -29133,13 +35385,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29147,7 +35399,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -29161,18 +35413,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.type", "type": "string", "tags": [], "label": "type", @@ -29185,7 +35440,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29193,13 +35448,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29207,7 +35462,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -29221,8 +35476,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.fetch_size.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -29234,7 +35489,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count", "type": "Object", "tags": [], "label": "retry_count", @@ -29245,7 +35500,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.default_value", "type": "number", "tags": [], "label": "default_value", @@ -29256,7 +35511,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -29270,7 +35525,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -29291,7 +35546,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -29302,7 +35557,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -29316,7 +35571,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -29327,7 +35582,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", @@ -29341,7 +35596,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -29355,18 +35610,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -29387,7 +35645,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -29401,7 +35659,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -29415,8 +35673,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -29425,141 +35683,13 @@ "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.mysql.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive", - "type": "Object", - "tags": [], - "label": "network_drive", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads", "type": "Object", "tags": [], - "label": "username", + "label": "concurrent_downloads", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29567,21 +35697,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -29595,7 +35722,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.display", "type": "string", "tags": [], "label": "display", @@ -29608,7 +35735,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29616,7 +35743,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.label", "type": "string", "tags": [], "label": "label", @@ -29627,7 +35754,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.options", "type": "Array", "tags": [], "label": "options", @@ -29641,7 +35768,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.order", "type": "number", "tags": [], "label": "order", @@ -29652,13 +35779,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29666,7 +35793,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -29680,18 +35807,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.type", "type": "string", "tags": [], "label": "type", @@ -29704,7 +35834,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29712,13 +35842,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29726,7 +35856,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.validations", "type": "Array", "tags": [], "label": "validations", @@ -29740,7 +35870,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.value", "type": "string", "tags": [], "label": "value", @@ -29753,10 +35883,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "password", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29764,7 +35894,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -29778,7 +35908,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -29792,7 +35922,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -29805,7 +35935,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29813,7 +35943,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -29824,7 +35954,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -29838,7 +35968,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -29849,7 +35979,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", @@ -29863,13 +35993,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29877,7 +36007,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -29888,7 +36018,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -29901,7 +36031,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29909,7 +36039,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -29923,7 +36053,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -29937,11 +36067,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.password.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -29950,10 +36083,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "server_ip", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -29961,7 +36094,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -29975,7 +36108,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -29989,7 +36122,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -30002,7 +36135,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30010,7 +36143,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -30021,7 +36154,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -30035,7 +36168,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -30046,18 +36179,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -30071,7 +36193,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -30085,7 +36207,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -30096,7 +36218,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -30109,7 +36231,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30117,13 +36239,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30131,7 +36253,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -30145,11 +36267,65 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_ip.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.DOCUMENT_LEVEL_SECURITY", + "type": "Object", + "tags": [], + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -30158,10 +36334,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.INCREMENTAL_SYNC", "type": "Object", "tags": [], - "label": "server_port", + "label": "[FeatureName.INCREMENTAL_SYNC]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30169,21 +36345,82 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", "tags": [], - "label": "default_value", + "label": "enabled", "description": [], "signature": [ - "null" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle", + "type": "Object", + "tags": [], + "label": "oracle", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -30197,7 +36434,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.display", "type": "string", "tags": [], "label": "display", @@ -30210,7 +36447,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30218,7 +36455,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.label", "type": "string", "tags": [], "label": "label", @@ -30229,7 +36466,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.options", "type": "Array", "tags": [], "label": "options", @@ -30243,7 +36480,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.order", "type": "number", "tags": [], "label": "order", @@ -30254,7 +36491,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.required", "type": "boolean", "tags": [], "label": "required", @@ -30268,7 +36505,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -30282,7 +36519,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -30293,7 +36530,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.type", "type": "string", "tags": [], "label": "type", @@ -30306,7 +36543,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30314,7 +36551,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -30328,7 +36565,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.validations", "type": "Array", "tags": [], "label": "validations", @@ -30342,8 +36579,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.server_port.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -30355,10 +36592,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port", "type": "Object", "tags": [], - "label": "drive_path", + "label": "port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30366,7 +36603,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -30380,7 +36617,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -30394,7 +36631,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.display", "type": "string", "tags": [], "label": "display", @@ -30407,7 +36644,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30415,7 +36652,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.label", "type": "string", "tags": [], "label": "label", @@ -30426,7 +36663,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.options", "type": "Array", "tags": [], "label": "options", @@ -30440,7 +36677,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.order", "type": "number", "tags": [], "label": "order", @@ -30451,18 +36688,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.placeholder", - "type": "string", - "tags": [], - "label": "placeholder", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.required", "type": "boolean", "tags": [], "label": "required", @@ -30476,7 +36702,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -30490,7 +36716,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -30501,7 +36727,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.type", "type": "string", "tags": [], "label": "type", @@ -30514,7 +36740,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30522,7 +36748,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -30536,7 +36762,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.validations", "type": "Array", "tags": [], "label": "validations", @@ -30550,7 +36776,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.drive_path.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.value", "type": "string", "tags": [], "label": "value", @@ -30563,10 +36789,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30574,21 +36800,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -30602,7 +36825,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -30615,7 +36838,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30623,7 +36846,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -30634,7 +36857,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -30648,7 +36871,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -30659,7 +36882,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.required", "type": "boolean", "tags": [], "label": "required", @@ -30673,7 +36896,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -30687,7 +36910,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -30698,7 +36921,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -30711,7 +36934,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30719,7 +36942,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -30727,201 +36950,43 @@ "signature": [ "never[]" ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.validations", - "type": "Array", - "tags": [], - "label": "validations", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.configuration.use_document_level_security.value", - "type": "boolean", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.network_drive.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive", - "type": "Object", - "tags": [], - "label": "onedrive", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password", "type": "Object", "tags": [], - "label": "client_id", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -30929,21 +36994,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -30957,7 +37019,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -30978,7 +37040,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -30989,7 +37051,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -31003,7 +37065,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -31014,7 +37076,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.required", "type": "boolean", "tags": [], "label": "required", @@ -31028,13 +37090,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31042,21 +37104,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -31077,7 +37136,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -31091,7 +37150,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -31105,7 +37164,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_id.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -31118,10 +37177,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database", "type": "Object", "tags": [], - "label": "client_secret", + "label": "database", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31129,21 +37188,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -31157,7 +37213,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.display", "type": "string", "tags": [], "label": "display", @@ -31178,7 +37234,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.label", "type": "string", "tags": [], "label": "label", @@ -31189,7 +37245,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.options", "type": "Array", "tags": [], "label": "options", @@ -31203,7 +37259,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.order", "type": "number", "tags": [], "label": "order", @@ -31214,7 +37270,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.required", "type": "boolean", "tags": [], "label": "required", @@ -31228,13 +37284,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31242,21 +37298,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.type", "type": "string", "tags": [], "label": "type", @@ -31277,7 +37330,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -31291,7 +37344,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.validations", "type": "Array", "tags": [], "label": "validations", @@ -31305,7 +37358,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.client_secret.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.value", "type": "string", "tags": [], "label": "value", @@ -31318,10 +37371,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables", "type": "Object", "tags": [], - "label": "tenant_id", + "label": "tables", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31329,21 +37382,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -31357,7 +37407,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.display", "type": "string", "tags": [], "label": "display", @@ -31370,7 +37420,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31378,7 +37428,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.label", "type": "string", "tags": [], "label": "label", @@ -31389,7 +37439,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.options", "type": "Array", "tags": [], "label": "options", @@ -31403,7 +37453,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.order", "type": "number", "tags": [], "label": "order", @@ -31414,7 +37464,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.required", "type": "boolean", "tags": [], "label": "required", @@ -31428,7 +37478,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -31442,21 +37492,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.type", "type": "string", "tags": [], "label": "type", @@ -31469,7 +37516,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31477,7 +37524,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -31491,7 +37538,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.validations", "type": "Array", "tags": [], "label": "validations", @@ -31505,7 +37552,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.tenant_id.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.value", "type": "string", "tags": [], "label": "value", @@ -31518,10 +37565,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size", "type": "Object", "tags": [], - "label": "retry_count", + "label": "fetch_size", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31529,7 +37576,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.default_value", "type": "number", "tags": [], "label": "default_value", @@ -31540,7 +37587,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -31554,7 +37601,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.display", "type": "string", "tags": [], "label": "display", @@ -31575,7 +37622,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.label", "type": "string", "tags": [], "label": "label", @@ -31586,7 +37633,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.options", "type": "Array", "tags": [], "label": "options", @@ -31600,7 +37647,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.order", "type": "number", "tags": [], "label": "order", @@ -31611,7 +37658,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.required", "type": "boolean", "tags": [], "label": "required", @@ -31625,7 +37672,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -31639,21 +37686,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.type", "type": "string", "tags": [], "label": "type", @@ -31674,7 +37718,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -31688,7 +37732,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.validations", "type": "Array", "tags": [], "label": "validations", @@ -31702,8 +37746,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.retry_count.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -31715,10 +37759,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count", "type": "Object", "tags": [], - "label": "concurrent_downloads", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31726,7 +37770,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.default_value", "type": "number", "tags": [], "label": "default_value", @@ -31737,7 +37781,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -31751,7 +37795,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -31772,7 +37816,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -31783,7 +37827,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -31797,7 +37841,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -31808,7 +37852,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", @@ -31822,7 +37866,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -31836,21 +37880,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -31871,7 +37912,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -31885,7 +37926,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -31899,8 +37940,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.concurrent_downloads.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -31912,10 +37953,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "oracle_protocol", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31923,21 +37964,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -31951,7 +37989,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.display", "type": "string", "tags": [], "label": "display", @@ -31964,7 +38002,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".DROPDOWN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31972,7 +38010,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.label", "type": "string", "tags": [], "label": "label", @@ -31983,13 +38021,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "never[]" + "{ label: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -31997,7 +38035,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.order", "type": "number", "tags": [], "label": "order", @@ -32008,7 +38046,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.required", "type": "boolean", "tags": [], "label": "required", @@ -32022,7 +38060,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -32036,7 +38074,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -32047,7 +38085,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.type", "type": "string", "tags": [], "label": "type", @@ -32060,7 +38098,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32068,13 +38106,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32082,7 +38120,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.validations", "type": "Array", "tags": [], "label": "validations", @@ -32096,14 +38134,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_document_level_security.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -32112,10 +38147,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "oracle_home", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32123,21 +38158,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -32151,7 +38183,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.display", "type": "string", "tags": [], "label": "display", @@ -32164,7 +38196,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32172,7 +38204,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.label", "type": "string", "tags": [], "label": "label", @@ -32183,7 +38215,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.options", "type": "Array", "tags": [], "label": "options", @@ -32197,7 +38229,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.order", "type": "number", "tags": [], "label": "order", @@ -32208,13 +38240,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32222,7 +38254,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -32236,7 +38268,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -32247,7 +38279,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.type", "type": "string", "tags": [], "label": "type", @@ -32260,7 +38292,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32268,7 +38300,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -32282,7 +38314,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.validations", "type": "Array", "tags": [], "label": "validations", @@ -32296,65 +38328,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.DOCUMENT_LEVEL_SECURITY", - "type": "Object", - "tags": [], - "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -32363,74 +38341,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.onedrive.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle", - "type": "Object", - "tags": [], - "label": "oracle", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path", "type": "Object", "tags": [], - "label": "host", + "label": "wallet_configuration_path", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32438,7 +38352,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.default_value", "type": "string", "tags": [], "label": "default_value", @@ -32449,7 +38363,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -32463,7 +38377,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.display", "type": "string", "tags": [], "label": "display", @@ -32484,7 +38398,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.label", "type": "string", "tags": [], "label": "label", @@ -32495,7 +38409,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.options", "type": "Array", "tags": [], "label": "options", @@ -32509,7 +38423,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.order", "type": "number", "tags": [], "label": "order", @@ -32520,13 +38434,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32534,7 +38448,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -32548,7 +38462,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -32559,7 +38473,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.type", "type": "string", "tags": [], "label": "type", @@ -32580,11 +38494,25 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], "signature": [ "never[]" ], @@ -32594,37 +38522,151 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.validations", - "type": "Array", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", "tags": [], - "label": "validations", + "label": "advanced", "description": [], - "signature": [ - "never[]" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.host.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.basic", + "type": "Object", "tags": [], - "label": "value", + "label": "basic", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook", + "type": "Object", + "tags": [], + "label": "outlook", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source", "type": "Object", "tags": [], - "label": "port", + "label": "data_source", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32632,7 +38674,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -32646,7 +38688,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -32660,7 +38702,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.display", "type": "string", "tags": [], "label": "display", @@ -32673,7 +38715,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".DROPDOWN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32681,7 +38723,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.label", "type": "string", "tags": [], "label": "label", @@ -32692,13 +38734,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "never[]" + "{ label: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32706,7 +38748,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.order", "type": "number", "tags": [], "label": "order", @@ -32717,7 +38759,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.required", "type": "boolean", "tags": [], "label": "required", @@ -32731,7 +38773,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -32745,18 +38787,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.type", "type": "string", "tags": [], "label": "type", @@ -32769,7 +38814,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32777,7 +38822,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -32791,7 +38836,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.validations", "type": "Array", "tags": [], "label": "validations", @@ -32805,7 +38850,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.port.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.value", "type": "string", "tags": [], "label": "value", @@ -32818,10 +38863,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id", "type": "Object", "tags": [], - "label": "username", + "label": "tenant_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32829,24 +38874,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -32854,7 +38902,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.display", "type": "string", "tags": [], "label": "display", @@ -32875,7 +38923,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.label", "type": "string", "tags": [], "label": "label", @@ -32886,7 +38934,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.options", "type": "Array", "tags": [], "label": "options", @@ -32900,7 +38948,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.order", "type": "number", "tags": [], "label": "order", @@ -32911,7 +38959,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.required", "type": "boolean", "tags": [], "label": "required", @@ -32925,7 +38973,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -32939,18 +38987,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.type", "type": "string", "tags": [], "label": "type", @@ -32971,7 +39022,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -32985,7 +39036,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -32999,7 +39050,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.value", "type": "string", "tags": [], "label": "value", @@ -33012,10 +39063,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id", "type": "Object", "tags": [], - "label": "password", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33023,24 +39074,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33048,7 +39102,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -33069,7 +39123,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -33080,7 +39134,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -33094,7 +39148,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -33105,7 +39159,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", @@ -33119,13 +39173,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33133,18 +39187,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -33165,7 +39222,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -33179,7 +39236,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -33193,7 +39250,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.value", "type": "string", "tags": [], "label": "value", @@ -33206,10 +39263,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret", "type": "Object", "tags": [], - "label": "database", + "label": "client_secret", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33217,24 +39274,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33242,7 +39302,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.display", "type": "string", "tags": [], "label": "display", @@ -33263,7 +39323,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.label", "type": "string", "tags": [], "label": "label", @@ -33274,7 +39334,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.options", "type": "Array", "tags": [], "label": "options", @@ -33288,7 +39348,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.order", "type": "number", "tags": [], "label": "order", @@ -33299,7 +39359,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.required", "type": "boolean", "tags": [], "label": "required", @@ -33313,13 +39373,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33327,18 +39387,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.type", "type": "string", "tags": [], "label": "type", @@ -33359,7 +39422,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -33373,7 +39436,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.validations", "type": "Array", "tags": [], "label": "validations", @@ -33387,7 +39450,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.database.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.value", "type": "string", "tags": [], "label": "value", @@ -33400,10 +39463,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server", "type": "Object", "tags": [], - "label": "tables", + "label": "exchange_server", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33411,24 +39474,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33436,7 +39502,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.display", "type": "string", "tags": [], "label": "display", @@ -33449,7 +39515,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33457,7 +39523,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.label", "type": "string", "tags": [], "label": "label", @@ -33468,7 +39534,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.options", "type": "Array", "tags": [], "label": "options", @@ -33482,7 +39548,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.order", "type": "number", "tags": [], "label": "order", @@ -33493,7 +39559,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.required", "type": "boolean", "tags": [], "label": "required", @@ -33507,7 +39573,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -33521,7 +39587,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -33532,7 +39598,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.type", "type": "string", "tags": [], "label": "type", @@ -33545,7 +39611,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33553,7 +39619,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -33567,7 +39633,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.validations", "type": "Array", "tags": [], "label": "validations", @@ -33581,7 +39647,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.tables.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.value", "type": "string", "tags": [], "label": "value", @@ -33594,10 +39660,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server", "type": "Object", "tags": [], - "label": "fetch_size", + "label": "active_directory_server", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33605,24 +39671,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33630,7 +39699,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.display", "type": "string", "tags": [], "label": "display", @@ -33643,7 +39712,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33651,7 +39720,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.label", "type": "string", "tags": [], "label": "label", @@ -33662,7 +39731,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.options", "type": "Array", "tags": [], "label": "options", @@ -33676,7 +39745,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.order", "type": "number", "tags": [], "label": "order", @@ -33687,13 +39756,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33701,7 +39770,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -33715,7 +39784,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -33726,7 +39795,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.type", "type": "string", "tags": [], "label": "type", @@ -33739,7 +39808,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33747,13 +39816,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33761,7 +39830,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.validations", "type": "Array", "tags": [], "label": "validations", @@ -33775,8 +39844,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.fetch_size.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -33788,10 +39857,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username", "type": "Object", "tags": [], - "label": "retry_count", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33799,24 +39868,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33824,7 +39896,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -33837,7 +39909,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33845,7 +39917,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -33856,7 +39928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -33870,7 +39942,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -33881,13 +39953,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33895,7 +39967,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -33909,18 +39981,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -33933,7 +40008,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33941,13 +40016,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33955,7 +40030,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -33969,8 +40044,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -33982,10 +40057,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password", "type": "Object", "tags": [], - "label": "oracle_protocol", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -33993,24 +40068,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34018,7 +40096,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -34031,7 +40109,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".DROPDOWN" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34039,7 +40117,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -34050,13 +40128,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "{ label: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34064,7 +40142,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -34075,7 +40153,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.required", "type": "boolean", "tags": [], "label": "required", @@ -34089,13 +40167,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34103,18 +40181,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -34135,13 +40216,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34149,7 +40230,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -34163,7 +40244,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_protocol.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -34176,10 +40257,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain", "type": "Object", "tags": [], - "label": "oracle_home", + "label": "domain", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34187,24 +40268,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34212,7 +40296,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.display", "type": "string", "tags": [], "label": "display", @@ -34233,7 +40317,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.label", "type": "string", "tags": [], "label": "label", @@ -34244,7 +40328,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.options", "type": "Array", "tags": [], "label": "options", @@ -34258,7 +40342,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.order", "type": "number", "tags": [], "label": "order", @@ -34269,13 +40353,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34283,7 +40367,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -34297,7 +40381,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -34308,7 +40392,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.type", "type": "string", "tags": [], "label": "type", @@ -34329,13 +40413,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34343,7 +40427,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.validations", "type": "Array", "tags": [], "label": "validations", @@ -34357,7 +40441,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.oracle_home.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.value", "type": "string", "tags": [], "label": "value", @@ -34370,10 +40454,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "wallet_configuration_path", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34381,24 +40465,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34406,7 +40493,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -34419,7 +40506,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34427,7 +40514,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -34438,7 +40525,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -34452,7 +40539,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -34463,13 +40550,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34477,7 +40564,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -34491,18 +40578,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -34515,7 +40605,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34523,13 +40613,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34537,7 +40627,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -34551,151 +40641,26 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.configuration.wallet_configuration_path.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.oracle.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook", - "type": "Object", - "tags": [], - "label": "outlook", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "data_source", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34703,7 +40668,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -34717,13 +40682,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "({ field: string; value: string; } | { field: string; value: true; })[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34731,7 +40696,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -34744,7 +40709,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".DROPDOWN" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34752,7 +40717,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -34763,13 +40728,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "{ label: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34777,7 +40742,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -34788,7 +40753,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -34802,7 +40767,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -34816,7 +40781,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -34830,7 +40795,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -34851,7 +40816,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -34865,7 +40830,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -34879,7 +40844,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.data_source.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -34892,10 +40857,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "tenant_id", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34903,7 +40868,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -34917,13 +40882,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34931,7 +40896,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -34944,7 +40909,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -34952,7 +40917,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -34963,7 +40928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -34977,7 +40942,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -34988,7 +40953,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -35002,7 +40967,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -35016,21 +40981,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -35043,7 +41005,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35051,13 +41013,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35065,7 +41027,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -35079,23 +41041,106 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.tenant_id.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.INCREMENTAL_SYNC", "type": "Object", "tags": [], - "label": "client_id", + "label": "[FeatureName.INCREMENTAL_SYNC]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35103,27 +41148,99 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", "tags": [], - "label": "default_value", + "label": "enabled", "description": [], "signature": [ - "null" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql", + "type": "Object", + "tags": [], + "label": "postgresql", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host", + "type": "Object", + "tags": [], + "label": "host", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.default_value", + "type": "string", + "tags": [], + "label": "default_value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35131,7 +41248,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.display", "type": "string", "tags": [], "label": "display", @@ -35152,7 +41269,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.label", "type": "string", "tags": [], "label": "label", @@ -35163,7 +41280,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.options", "type": "Array", "tags": [], "label": "options", @@ -35177,7 +41294,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.order", "type": "number", "tags": [], "label": "order", @@ -35188,7 +41305,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.required", "type": "boolean", "tags": [], "label": "required", @@ -35202,7 +41319,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -35216,21 +41333,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.type", "type": "string", "tags": [], "label": "type", @@ -35251,7 +41365,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -35265,7 +41379,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.validations", "type": "Array", "tags": [], "label": "validations", @@ -35279,7 +41393,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_id.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.value", "type": "string", "tags": [], "label": "value", @@ -35292,10 +41406,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port", "type": "Object", "tags": [], - "label": "client_secret", + "label": "port", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35303,7 +41417,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -35317,13 +41431,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35331,7 +41445,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.display", "type": "string", "tags": [], "label": "display", @@ -35344,7 +41458,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35352,7 +41466,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.label", "type": "string", "tags": [], "label": "label", @@ -35363,7 +41477,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.options", "type": "Array", "tags": [], "label": "options", @@ -35377,7 +41491,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.order", "type": "number", "tags": [], "label": "order", @@ -35388,7 +41502,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.required", "type": "boolean", "tags": [], "label": "required", @@ -35402,13 +41516,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35416,21 +41530,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.type", "type": "string", "tags": [], "label": "type", @@ -35443,7 +41554,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35451,7 +41562,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -35465,7 +41576,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.validations", "type": "Array", "tags": [], "label": "validations", @@ -35479,8 +41590,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.client_secret.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -35492,10 +41603,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username", "type": "Object", "tags": [], - "label": "exchange_server", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35503,27 +41614,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35531,7 +41639,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -35552,7 +41660,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -35563,7 +41671,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -35577,7 +41685,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -35588,7 +41696,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.required", "type": "boolean", "tags": [], "label": "required", @@ -35602,7 +41710,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -35616,7 +41724,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -35627,7 +41735,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -35648,7 +41756,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -35662,7 +41770,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -35676,7 +41784,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.exchange_server.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -35689,10 +41797,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password", "type": "Object", "tags": [], - "label": "active_directory_server", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35700,27 +41808,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35728,7 +41833,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -35749,7 +41854,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -35760,7 +41865,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -35774,7 +41879,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -35785,7 +41890,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.required", "type": "boolean", "tags": [], "label": "required", @@ -35799,13 +41904,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35813,7 +41918,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -35824,7 +41929,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -35845,7 +41950,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -35859,7 +41964,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -35873,7 +41978,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.active_directory_server.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -35886,10 +41991,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database", "type": "Object", "tags": [], - "label": "username", + "label": "database", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35897,27 +42002,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -35925,7 +42027,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.display", "type": "string", "tags": [], "label": "display", @@ -35946,7 +42048,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.label", "type": "string", "tags": [], "label": "label", @@ -35957,7 +42059,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.options", "type": "Array", "tags": [], "label": "options", @@ -35971,7 +42073,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.order", "type": "number", "tags": [], "label": "order", @@ -35982,7 +42084,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.required", "type": "boolean", "tags": [], "label": "required", @@ -35996,7 +42098,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -36010,21 +42112,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.type", "type": "string", "tags": [], "label": "type", @@ -36045,7 +42144,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -36059,7 +42158,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.validations", "type": "Array", "tags": [], "label": "validations", @@ -36073,7 +42172,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.value", "type": "string", "tags": [], "label": "value", @@ -36086,10 +42185,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema", "type": "Object", "tags": [], - "label": "password", + "label": "schema", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36097,27 +42196,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36125,7 +42221,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.display", "type": "string", "tags": [], "label": "display", @@ -36146,7 +42242,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.label", "type": "string", "tags": [], "label": "label", @@ -36157,7 +42253,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.options", "type": "Array", "tags": [], "label": "options", @@ -36171,7 +42267,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.order", "type": "number", "tags": [], "label": "order", @@ -36182,7 +42278,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.required", "type": "boolean", "tags": [], "label": "required", @@ -36196,13 +42292,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36210,21 +42306,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.type", "type": "string", "tags": [], "label": "type", @@ -36245,7 +42338,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -36259,7 +42352,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.validations", "type": "Array", "tags": [], "label": "validations", @@ -36273,7 +42366,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.value", "type": "string", "tags": [], "label": "value", @@ -36286,10 +42379,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables", "type": "Object", "tags": [], - "label": "domain", + "label": "tables", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36297,27 +42390,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36325,7 +42415,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.display", "type": "string", "tags": [], "label": "display", @@ -36338,7 +42428,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36346,7 +42436,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.label", "type": "string", "tags": [], "label": "label", @@ -36357,7 +42447,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.options", "type": "Array", "tags": [], "label": "options", @@ -36371,7 +42461,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.order", "type": "number", "tags": [], "label": "order", @@ -36382,7 +42472,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.required", "type": "boolean", "tags": [], "label": "required", @@ -36396,7 +42486,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -36410,7 +42500,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -36421,7 +42511,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.type", "type": "string", "tags": [], "label": "type", @@ -36434,7 +42524,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36442,7 +42532,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -36456,7 +42546,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.validations", "type": "Array", "tags": [], "label": "validations", @@ -36470,7 +42560,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.domain.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.value", "type": "string", "tags": [], "label": "value", @@ -36483,7 +42573,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled", "type": "Object", "tags": [], "label": "ssl_enabled", @@ -36494,13 +42584,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36508,13 +42598,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: string; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36522,7 +42612,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -36543,7 +42633,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -36554,7 +42644,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -36568,7 +42658,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -36579,7 +42669,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", @@ -36593,7 +42683,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -36607,21 +42697,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -36642,7 +42729,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -36656,7 +42743,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -36670,7 +42757,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_enabled.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.value", "type": "boolean", "tags": [], "label": "value", @@ -36686,7 +42773,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca", "type": "Object", "tags": [], "label": "ssl_ca", @@ -36697,27 +42784,24 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.default_value", + "type": "string", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "({ field: string; value: string; } | { field: string; value: true; })[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36725,7 +42809,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -36746,7 +42830,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -36757,7 +42841,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -36771,7 +42855,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -36782,7 +42866,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -36796,7 +42880,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -36810,21 +42894,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -36845,7 +42926,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -36859,7 +42940,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -36873,7 +42954,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.value", "type": "string", "tags": [], "label": "value", @@ -36886,10 +42967,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "fetch_size", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36897,21 +42978,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -36925,7 +43003,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.display", "type": "string", "tags": [], "label": "display", @@ -36938,7 +43016,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36946,7 +43024,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.label", "type": "string", "tags": [], "label": "label", @@ -36957,7 +43035,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.options", "type": "Array", "tags": [], "label": "options", @@ -36971,7 +43049,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.order", "type": "number", "tags": [], "label": "order", @@ -36982,13 +43060,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -36996,7 +43074,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -37010,7 +43088,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -37021,7 +43099,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.type", "type": "string", "tags": [], "label": "type", @@ -37034,217 +43112,59 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.ui_restrictions", - "type": "Array", - "tags": [], - "label": "ui_restrictions", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.validations", - "type": "Array", - "tags": [], - "label": "validations", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.configuration.use_text_extraction_service.value", - "type": "boolean", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "false" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] }, { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.outlook.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql", - "type": "Object", - "tags": [], - "label": "postgresql", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count", "type": "Object", "tags": [], - "label": "host", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37252,8 +43172,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -37263,7 +43183,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -37277,7 +43197,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -37290,7 +43210,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37298,7 +43218,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -37309,7 +43229,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -37323,7 +43243,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -37334,13 +43254,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37348,7 +43268,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -37362,7 +43282,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -37373,7 +43293,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -37386,7 +43306,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37394,13 +43314,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37408,7 +43328,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -37422,8 +43342,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.host.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -37432,13 +43352,26 @@ "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES", "type": "Object", "tags": [], - "label": "port", + "label": "[FeatureName.SYNC_RULES]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37446,7 +43379,122 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3", + "type": "Object", + "tags": [], + "label": "s3", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets", + "type": "Object", + "tags": [], + "label": "buckets", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -37460,7 +43508,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -37474,7 +43522,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.display", "type": "string", "tags": [], "label": "display", @@ -37487,7 +43535,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37495,7 +43543,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.label", "type": "string", "tags": [], "label": "label", @@ -37506,7 +43554,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.options", "type": "Array", "tags": [], "label": "options", @@ -37520,7 +43568,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.order", "type": "number", "tags": [], "label": "order", @@ -37531,7 +43579,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.required", "type": "boolean", "tags": [], "label": "required", @@ -37545,7 +43593,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -37559,7 +43607,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -37570,7 +43618,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.type", "type": "string", "tags": [], "label": "type", @@ -37583,7 +43631,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37591,7 +43639,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -37605,7 +43653,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.validations", "type": "Array", "tags": [], "label": "validations", @@ -37619,8 +43667,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.port.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -37632,10 +43680,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id", "type": "Object", "tags": [], - "label": "username", + "label": "aws_access_key_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37643,18 +43691,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -37668,7 +43719,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.display", "type": "string", "tags": [], "label": "display", @@ -37689,7 +43740,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.label", "type": "string", "tags": [], "label": "label", @@ -37700,7 +43751,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.options", "type": "Array", "tags": [], "label": "options", @@ -37714,7 +43765,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.order", "type": "number", "tags": [], "label": "order", @@ -37725,7 +43776,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.required", "type": "boolean", "tags": [], "label": "required", @@ -37739,7 +43790,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -37753,18 +43804,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.type", "type": "string", "tags": [], "label": "type", @@ -37785,7 +43839,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -37799,7 +43853,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -37813,7 +43867,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.value", "type": "string", "tags": [], "label": "value", @@ -37826,10 +43880,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key", "type": "Object", "tags": [], - "label": "password", + "label": "aws_secret_access_key", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -37837,18 +43891,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -37862,7 +43919,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.display", "type": "string", "tags": [], "label": "display", @@ -37883,7 +43940,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.label", "type": "string", "tags": [], "label": "label", @@ -37894,7 +43951,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.options", "type": "Array", "tags": [], "label": "options", @@ -37908,7 +43965,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.order", "type": "number", "tags": [], "label": "order", @@ -37919,7 +43976,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.required", "type": "boolean", "tags": [], "label": "required", @@ -37933,7 +43990,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -37947,18 +44004,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.type", "type": "string", "tags": [], "label": "type", @@ -37979,7 +44039,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -37993,7 +44053,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.validations", "type": "Array", "tags": [], "label": "validations", @@ -38007,7 +44067,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.value", "type": "string", "tags": [], "label": "value", @@ -38020,10 +44080,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout", "type": "Object", "tags": [], - "label": "database", + "label": "read_timeout", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38031,8 +44091,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -38042,7 +44102,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -38056,7 +44116,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.display", "type": "string", "tags": [], "label": "display", @@ -38069,7 +44129,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38077,7 +44137,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.label", "type": "string", "tags": [], "label": "label", @@ -38088,7 +44148,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.options", "type": "Array", "tags": [], "label": "options", @@ -38102,7 +44162,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.order", "type": "number", "tags": [], "label": "order", @@ -38113,13 +44173,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38127,7 +44187,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -38141,18 +44201,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.type", "type": "string", "tags": [], "label": "type", @@ -38165,7 +44228,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38173,13 +44236,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38187,7 +44250,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.validations", "type": "Array", "tags": [], "label": "validations", @@ -38201,7 +44264,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.database.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.value", "type": "string", "tags": [], "label": "value", @@ -38214,10 +44277,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout", "type": "Object", "tags": [], - "label": "schema", + "label": "connect_timeout", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38225,8 +44288,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -38236,7 +44299,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -38250,7 +44313,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.display", "type": "string", "tags": [], "label": "display", @@ -38263,7 +44326,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38271,7 +44334,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.label", "type": "string", "tags": [], "label": "label", @@ -38282,7 +44345,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.options", "type": "Array", "tags": [], "label": "options", @@ -38296,7 +44359,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.order", "type": "number", "tags": [], "label": "order", @@ -38307,13 +44370,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38321,7 +44384,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -38335,18 +44398,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.type", "type": "string", "tags": [], "label": "type", @@ -38359,7 +44425,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38367,13 +44433,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38381,7 +44447,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.validations", "type": "Array", "tags": [], "label": "validations", @@ -38395,7 +44461,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.schema.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.value", "type": "string", "tags": [], "label": "value", @@ -38408,10 +44474,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts", "type": "Object", "tags": [], - "label": "tables", + "label": "max_attempts", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38419,8 +44485,8 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], @@ -38430,7 +44496,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -38444,7 +44510,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.display", "type": "string", "tags": [], "label": "display", @@ -38457,7 +44523,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38465,7 +44531,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.label", "type": "string", "tags": [], "label": "label", @@ -38476,7 +44542,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.options", "type": "Array", "tags": [], "label": "options", @@ -38490,7 +44556,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.order", "type": "number", "tags": [], "label": "order", @@ -38501,13 +44567,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38515,7 +44581,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -38529,18 +44595,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.type", "type": "string", "tags": [], "label": "type", @@ -38553,7 +44622,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38561,13 +44630,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38575,7 +44644,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.validations", "type": "Array", "tags": [], "label": "validations", @@ -38589,7 +44658,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.tables.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.value", "type": "string", "tags": [], "label": "value", @@ -38602,10 +44671,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "page_size", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38613,21 +44682,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -38641,7 +44707,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.display", "type": "string", "tags": [], "label": "display", @@ -38654,7 +44720,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38662,7 +44728,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.label", "type": "string", "tags": [], "label": "label", @@ -38673,7 +44739,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.options", "type": "Array", "tags": [], "label": "options", @@ -38687,7 +44753,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.order", "type": "number", "tags": [], "label": "order", @@ -38698,13 +44764,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38712,7 +44778,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -38726,18 +44792,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.type", "type": "string", "tags": [], "label": "type", @@ -38750,7 +44819,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38758,13 +44827,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38772,7 +44841,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.validations", "type": "Array", "tags": [], "label": "validations", @@ -38786,14 +44855,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -38802,10 +44868,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38813,24 +44879,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.default_value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38838,7 +44907,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -38851,7 +44920,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38859,7 +44928,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -38870,7 +44939,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -38884,7 +44953,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -38895,7 +44964,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -38909,7 +44978,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -38923,7 +44992,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -38934,7 +45003,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -38947,7 +45016,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38955,13 +45024,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -38969,7 +45038,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -38983,23 +45052,86 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.ssl_ca.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce", + "type": "Object", + "tags": [], + "label": "salesforce", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.features.FeatureName.INCREMENTAL_SYNC", "type": "Object", "tags": [], - "label": "fetch_size", + "label": "[FeatureName.INCREMENTAL_SYNC]", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39007,18 +45139,61 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain", + "type": "Object", + "tags": [], + "label": "domain", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -39032,7 +45207,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.display", "type": "string", "tags": [], "label": "display", @@ -39045,7 +45220,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39053,7 +45228,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.label", "type": "string", "tags": [], "label": "label", @@ -39064,7 +45239,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.options", "type": "Array", "tags": [], "label": "options", @@ -39078,7 +45253,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.order", "type": "number", "tags": [], "label": "order", @@ -39089,13 +45264,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39103,7 +45278,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -39117,7 +45292,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -39128,7 +45303,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.type", "type": "string", "tags": [], "label": "type", @@ -39141,7 +45316,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39149,13 +45324,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39163,7 +45338,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.validations", "type": "Array", "tags": [], "label": "validations", @@ -39177,8 +45352,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.fetch_size.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -39190,10 +45365,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id", "type": "Object", "tags": [], - "label": "retry_count", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39201,18 +45376,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -39226,7 +45404,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -39239,7 +45417,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39247,7 +45425,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -39258,7 +45436,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -39272,7 +45450,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -39283,13 +45461,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39297,13 +45475,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39311,7 +45489,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -39322,7 +45500,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -39335,7 +45513,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39343,13 +45521,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39357,7 +45535,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -39371,8 +45549,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.value", + "type": "string", "tags": [], "label": "value", "description": [], @@ -39381,141 +45559,13 @@ "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "false" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.postgresql.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3", - "type": "Object", - "tags": [], - "label": "s3", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret", "type": "Object", "tags": [], - "label": "buckets", + "label": "client_secret", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39523,7 +45573,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -39537,7 +45587,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -39551,7 +45601,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.display", "type": "string", "tags": [], "label": "display", @@ -39564,7 +45614,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39572,7 +45622,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.label", "type": "string", "tags": [], "label": "label", @@ -39583,7 +45633,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.options", "type": "Array", "tags": [], "label": "options", @@ -39597,7 +45647,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.order", "type": "number", "tags": [], "label": "order", @@ -39608,7 +45658,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.required", "type": "boolean", "tags": [], "label": "required", @@ -39622,13 +45672,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39636,7 +45686,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -39647,7 +45697,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.type", "type": "string", "tags": [], "label": "type", @@ -39660,7 +45710,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39668,7 +45718,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -39682,7 +45732,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.validations", "type": "Array", "tags": [], "label": "validations", @@ -39696,7 +45746,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.buckets.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.value", "type": "string", "tags": [], "label": "value", @@ -39709,10 +45759,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "aws_access_key_id", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39720,7 +45770,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -39734,7 +45784,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -39748,7 +45798,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -39761,7 +45811,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39769,7 +45819,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -39780,7 +45830,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -39794,7 +45844,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -39805,7 +45855,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -39819,7 +45869,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -39833,21 +45883,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -39860,7 +45907,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39868,13 +45915,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39882,7 +45929,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -39896,23 +45943,74 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_access_key_id.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow", + "type": "Object", + "tags": [], + "label": "servicenow", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url", "type": "Object", "tags": [], - "label": "aws_secret_access_key", + "label": "url", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -39920,7 +46018,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -39934,7 +46032,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -39948,7 +46046,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.display", "type": "string", "tags": [], "label": "display", @@ -39969,7 +46067,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.label", "type": "string", "tags": [], "label": "label", @@ -39980,7 +46078,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.options", "type": "Array", "tags": [], "label": "options", @@ -39994,7 +46092,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.order", "type": "number", "tags": [], "label": "order", @@ -40005,7 +46103,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.required", "type": "boolean", "tags": [], "label": "required", @@ -40019,13 +46117,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40033,7 +46131,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -40047,7 +46145,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.type", "type": "string", "tags": [], "label": "type", @@ -40068,7 +46166,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -40082,7 +46180,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.validations", "type": "Array", "tags": [], "label": "validations", @@ -40096,7 +46194,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.aws_secret_access_key.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.value", "type": "string", "tags": [], "label": "value", @@ -40109,10 +46207,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username", "type": "Object", "tags": [], - "label": "read_timeout", + "label": "username", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40120,18 +46218,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -40145,7 +46246,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.display", "type": "string", "tags": [], "label": "display", @@ -40158,7 +46259,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40166,7 +46267,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.label", "type": "string", "tags": [], "label": "label", @@ -40177,7 +46278,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.options", "type": "Array", "tags": [], "label": "options", @@ -40191,7 +46292,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.order", "type": "number", "tags": [], "label": "order", @@ -40202,13 +46303,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40216,7 +46317,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -40230,7 +46331,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -40244,7 +46345,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.type", "type": "string", "tags": [], "label": "type", @@ -40257,7 +46358,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40265,13 +46366,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40279,7 +46380,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.validations", "type": "Array", "tags": [], "label": "validations", @@ -40293,7 +46394,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.read_timeout.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.value", "type": "string", "tags": [], "label": "value", @@ -40306,10 +46407,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password", "type": "Object", "tags": [], - "label": "connect_timeout", + "label": "password", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40317,18 +46418,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -40342,7 +46446,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.display", "type": "string", "tags": [], "label": "display", @@ -40355,7 +46459,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40363,7 +46467,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.label", "type": "string", "tags": [], "label": "label", @@ -40374,7 +46478,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.options", "type": "Array", "tags": [], "label": "options", @@ -40388,7 +46492,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.order", "type": "number", "tags": [], "label": "order", @@ -40399,13 +46503,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40413,13 +46517,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40427,7 +46531,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -40441,7 +46545,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.type", "type": "string", "tags": [], "label": "type", @@ -40454,7 +46558,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40462,13 +46566,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40476,7 +46580,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.validations", "type": "Array", "tags": [], "label": "validations", @@ -40490,7 +46594,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.connect_timeout.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.value", "type": "string", "tags": [], "label": "value", @@ -40503,10 +46607,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services", "type": "Object", "tags": [], - "label": "max_attempts", + "label": "services", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40514,18 +46618,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -40539,7 +46646,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.display", "type": "string", "tags": [], "label": "display", @@ -40552,7 +46670,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40560,18 +46678,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.label", - "type": "string", - "tags": [], - "label": "label", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.options", "type": "Array", "tags": [], "label": "options", @@ -40585,7 +46692,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.order", "type": "number", "tags": [], "label": "order", @@ -40596,13 +46703,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40610,7 +46717,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -40624,21 +46731,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.type", "type": "string", "tags": [], "label": "type", @@ -40651,7 +46755,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40659,13 +46763,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40673,7 +46777,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.validations", "type": "Array", "tags": [], "label": "validations", @@ -40687,7 +46791,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.max_attempts.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.value", "type": "string", "tags": [], "label": "value", @@ -40700,10 +46804,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count", "type": "Object", "tags": [], - "label": "page_size", + "label": "retry_count", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40711,7 +46815,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.default_value", "type": "number", "tags": [], "label": "default_value", @@ -40722,7 +46826,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -40736,7 +46840,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.display", "type": "string", "tags": [], "label": "display", @@ -40757,7 +46861,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.label", "type": "string", "tags": [], "label": "label", @@ -40768,7 +46872,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.options", "type": "Array", "tags": [], "label": "options", @@ -40782,7 +46886,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.order", "type": "number", "tags": [], "label": "order", @@ -40793,7 +46897,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.required", "type": "boolean", "tags": [], "label": "required", @@ -40807,7 +46911,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -40821,7 +46925,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -40835,7 +46939,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.type", "type": "string", "tags": [], "label": "type", @@ -40856,7 +46960,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -40870,7 +46974,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.validations", "type": "Array", "tags": [], "label": "validations", @@ -40884,8 +46988,8 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.page_size.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.value", + "type": "number", "tags": [], "label": "value", "description": [], @@ -40897,10 +47001,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "concurrent_downloads", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40908,21 +47012,18 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.default_value", + "type": "number", "tags": [], "label": "default_value", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -40936,7 +47037,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.display", "type": "string", "tags": [], "label": "display", @@ -40949,7 +47050,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -40957,7 +47058,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.label", "type": "string", "tags": [], "label": "label", @@ -40968,7 +47069,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.options", "type": "Array", "tags": [], "label": "options", @@ -40982,7 +47083,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.order", "type": "number", "tags": [], "label": "order", @@ -40993,13 +47094,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41007,7 +47108,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -41021,18 +47122,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.type", "type": "string", "tags": [], "label": "type", @@ -41045,7 +47149,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41053,7 +47157,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -41067,7 +47171,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.validations", "type": "Array", "tags": [], "label": "validations", @@ -41081,86 +47185,23 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.value", + "type": "number", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.s3.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce", - "type": "Object", - "tags": [], - "label": "salesforce", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.features.FeatureName.INCREMENTAL_SYNC", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41168,53 +47209,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.features.FeatureName.INCREMENTAL_SYNC.enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.default_value", "type": "boolean", "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain", - "type": "Object", - "tags": [], - "label": "domain", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.default_value", - "type": "Uncategorized", - "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41222,7 +47223,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -41236,7 +47237,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -41249,7 +47250,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41257,7 +47258,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -41268,7 +47269,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -41282,7 +47283,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -41293,7 +47294,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -41307,7 +47308,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -41321,7 +47322,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -41332,7 +47333,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -41345,7 +47346,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41353,13 +47354,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41367,7 +47368,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -41381,11 +47382,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.domain.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -41394,10 +47398,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "client_id", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41405,7 +47409,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -41419,7 +47423,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -41433,7 +47437,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -41446,7 +47450,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41454,7 +47458,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -41465,7 +47469,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -41479,7 +47483,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -41490,7 +47494,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", @@ -41504,13 +47508,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41518,7 +47522,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -41529,7 +47533,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -41542,7 +47546,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41550,51 +47554,209 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.validations", "type": "Array", "tags": [], - "label": "ui_restrictions", + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", "description": [], - "signature": [ - "never[]" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.validations", - "type": "Array", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.basic", + "type": "Object", "tags": [], - "label": "validations", + "label": "basic", "description": [], - "signature": [ - "never[]" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, - "trackAdoption": false - }, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_id.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", "tags": [], - "label": "value", + "label": "enabled", "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online", + "type": "Object", + "tags": [], + "label": "sharepoint_online", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id", "type": "Object", "tags": [], - "label": "client_secret", + "label": "tenant_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41602,7 +47764,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -41616,7 +47778,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -41630,7 +47792,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.display", "type": "string", "tags": [], "label": "display", @@ -41651,7 +47813,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.label", "type": "string", "tags": [], "label": "label", @@ -41662,7 +47824,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.options", "type": "Array", "tags": [], "label": "options", @@ -41676,7 +47838,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.order", "type": "number", "tags": [], "label": "order", @@ -41687,7 +47849,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.required", "type": "boolean", "tags": [], "label": "required", @@ -41701,13 +47863,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41715,7 +47877,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -41726,7 +47888,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.type", "type": "string", "tags": [], "label": "type", @@ -41747,7 +47909,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -41761,7 +47923,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -41775,7 +47937,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.client_secret.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.value", "type": "string", "tags": [], "label": "value", @@ -41788,10 +47950,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "tenant_name", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41799,7 +47961,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -41813,7 +47975,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -41827,7 +47989,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.display", "type": "string", "tags": [], "label": "display", @@ -41840,7 +48002,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41848,7 +48010,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.label", "type": "string", "tags": [], "label": "label", @@ -41859,7 +48021,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.options", "type": "Array", "tags": [], "label": "options", @@ -41873,7 +48035,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.order", "type": "number", "tags": [], "label": "order", @@ -41884,7 +48046,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.required", "type": "boolean", "tags": [], "label": "required", @@ -41898,7 +48060,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -41912,7 +48074,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -41923,7 +48085,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.type", "type": "string", "tags": [], "label": "type", @@ -41936,7 +48098,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41944,13 +48106,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -41958,7 +48120,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.validations", "type": "Array", "tags": [], "label": "validations", @@ -41972,74 +48134,23 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow", - "type": "Object", - "tags": [], - "label": "servicenow", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id", "type": "Object", "tags": [], - "label": "url", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42047,7 +48158,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -42061,7 +48172,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -42075,7 +48186,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -42096,7 +48207,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -42107,7 +48218,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -42121,7 +48232,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -42132,7 +48243,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", @@ -42146,7 +48257,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -42160,21 +48271,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -42195,7 +48303,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -42209,7 +48317,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -42223,7 +48331,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.url.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.value", "type": "string", "tags": [], "label": "value", @@ -42236,10 +48344,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value", "type": "Object", "tags": [], - "label": "username", + "label": "secret_value", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42247,7 +48355,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -42261,7 +48369,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -42275,7 +48383,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.display", "type": "string", "tags": [], "label": "display", @@ -42296,7 +48404,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.label", "type": "string", "tags": [], "label": "label", @@ -42307,7 +48415,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.options", "type": "Array", "tags": [], "label": "options", @@ -42321,7 +48429,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.order", "type": "number", "tags": [], "label": "order", @@ -42332,7 +48440,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.required", "type": "boolean", "tags": [], "label": "required", @@ -42346,13 +48454,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42360,21 +48468,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.type", "type": "string", "tags": [], "label": "type", @@ -42395,7 +48500,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -42409,7 +48514,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.validations", "type": "Array", "tags": [], "label": "validations", @@ -42423,7 +48528,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.username.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.value", "type": "string", "tags": [], "label": "value", @@ -42436,10 +48541,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections", "type": "Object", "tags": [], - "label": "password", + "label": "site_collections", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42447,7 +48552,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -42461,7 +48566,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -42475,7 +48580,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.display", "type": "string", "tags": [], "label": "display", @@ -42488,7 +48593,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42496,7 +48601,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.label", "type": "string", "tags": [], "label": "label", @@ -42507,7 +48612,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.options", "type": "Array", "tags": [], "label": "options", @@ -42521,7 +48626,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.order", "type": "number", "tags": [], "label": "order", @@ -42532,7 +48637,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.required", "type": "boolean", "tags": [], "label": "required", @@ -42546,13 +48651,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42560,21 +48665,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.type", "type": "string", "tags": [], "label": "type", @@ -42587,7 +48689,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42595,7 +48697,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -42609,7 +48711,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.validations", "type": "Array", "tags": [], "label": "validations", @@ -42623,7 +48725,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.password.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.value", "type": "string", "tags": [], "label": "value", @@ -42636,10 +48738,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "services", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42647,13 +48749,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42661,7 +48763,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -42675,18 +48777,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.label", - "type": "string", - "tags": [], - "label": "label", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -42699,7 +48790,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42707,7 +48798,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -42721,7 +48823,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -42732,7 +48834,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", @@ -42746,7 +48848,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -42760,7 +48862,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -42771,7 +48873,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -42784,7 +48886,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42792,13 +48894,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42806,7 +48908,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -42820,11 +48922,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.services.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -42833,10 +48938,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security", "type": "Object", "tags": [], - "label": "retry_count", + "label": "use_document_level_security", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42844,18 +48949,21 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -42869,7 +48977,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.display", "type": "string", "tags": [], "label": "display", @@ -42882,7 +48990,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42890,7 +48998,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.label", "type": "string", "tags": [], "label": "label", @@ -42901,7 +49009,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.options", "type": "Array", "tags": [], "label": "options", @@ -42915,7 +49023,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.order", "type": "number", "tags": [], "label": "order", @@ -42926,13 +49034,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42940,7 +49048,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -42954,21 +49062,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.type", "type": "string", "tags": [], "label": "type", @@ -42981,7 +49086,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -42989,13 +49094,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43003,7 +49108,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.validations", "type": "Array", "tags": [], "label": "validations", @@ -43017,11 +49122,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -43030,10 +49138,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions", "type": "Object", "tags": [], - "label": "concurrent_downloads", + "label": "fetch_drive_item_permissions", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43041,24 +49149,27 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.default_value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43066,7 +49177,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.display", "type": "string", "tags": [], "label": "display", @@ -43079,7 +49190,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43087,7 +49198,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.label", "type": "string", "tags": [], "label": "label", @@ -43098,7 +49209,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.options", "type": "Array", "tags": [], "label": "options", @@ -43112,7 +49223,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.order", "type": "number", "tags": [], "label": "order", @@ -43123,13 +49234,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43137,7 +49248,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -43151,21 +49262,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.type", "type": "string", "tags": [], "label": "type", @@ -43178,7 +49286,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43186,13 +49294,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43200,7 +49308,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.validations", "type": "Array", "tags": [], "label": "validations", @@ -43214,11 +49322,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.concurrent_downloads.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -43227,10 +49338,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "fetch_unique_page_permissions", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43238,13 +49349,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.default_value", "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43252,13 +49363,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43266,7 +49377,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.display", "type": "string", "tags": [], "label": "display", @@ -43287,7 +49398,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.label", "type": "string", "tags": [], "label": "label", @@ -43298,7 +49409,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.options", "type": "Array", "tags": [], "label": "options", @@ -43312,7 +49423,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.order", "type": "number", "tags": [], "label": "order", @@ -43323,7 +49434,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.required", "type": "boolean", "tags": [], "label": "required", @@ -43337,7 +49448,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -43351,7 +49462,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -43362,7 +49473,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.type", "type": "string", "tags": [], "label": "type", @@ -43383,13 +49494,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43397,7 +49508,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.validations", "type": "Array", "tags": [], "label": "validations", @@ -43411,13 +49522,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_text_extraction_service.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.value", "type": "boolean", "tags": [], "label": "value", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43427,10 +49538,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "fetch_unique_list_permissions", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43438,13 +49549,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43452,13 +49563,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43466,7 +49577,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.display", "type": "string", "tags": [], "label": "display", @@ -43487,7 +49598,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.label", "type": "string", "tags": [], "label": "label", @@ -43498,7 +49609,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.options", "type": "Array", "tags": [], "label": "options", @@ -43512,7 +49623,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.order", "type": "number", "tags": [], "label": "order", @@ -43523,7 +49634,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.required", "type": "boolean", "tags": [], "label": "required", @@ -43537,7 +49648,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -43551,7 +49662,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -43562,7 +49673,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.type", "type": "string", "tags": [], "label": "type", @@ -43583,7 +49694,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -43597,7 +49708,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.validations", "type": "Array", "tags": [], "label": "validations", @@ -43611,106 +49722,26 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.configuration.use_document_level_security.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.value", "type": "boolean", "tags": [], "label": "value", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features", - "type": "Object", - "tags": [], - "label": "features", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.INCREMENTAL_SYNC", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions", "type": "Object", "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", + "label": "fetch_unique_list_item_permissions", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43718,88 +49749,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.features.FeatureName.INCREMENTAL_SYNC.enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.default_value", "type": "boolean", "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.servicenow.serviceType", - "type": "string", - "tags": [], - "label": "serviceType", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online", - "type": "Object", - "tags": [], - "label": "sharepoint_online", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration", - "type": "Object", - "tags": [], - "label": "configuration", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id", - "type": "Object", - "tags": [], - "label": "tenant_id", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.default_value", - "type": "Uncategorized", - "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43807,13 +49763,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43821,7 +49777,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.display", "type": "string", "tags": [], "label": "display", @@ -43834,7 +49790,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43842,7 +49798,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.label", "type": "string", "tags": [], "label": "label", @@ -43853,7 +49809,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.options", "type": "Array", "tags": [], "label": "options", @@ -43867,7 +49823,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.order", "type": "number", "tags": [], "label": "order", @@ -43878,7 +49834,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.required", "type": "boolean", "tags": [], "label": "required", @@ -43892,7 +49848,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -43906,7 +49862,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -43917,7 +49873,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.type", "type": "string", "tags": [], "label": "type", @@ -43930,7 +49886,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43938,7 +49894,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -43952,7 +49908,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.validations", "type": "Array", "tags": [], "label": "validations", @@ -43966,11 +49922,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_id.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -43979,10 +49938,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites", "type": "Object", "tags": [], - "label": "tenant_name", + "label": "enumerate_all_sites", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -43990,13 +49949,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44004,7 +49963,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -44018,7 +49977,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.display", "type": "string", "tags": [], "label": "display", @@ -44031,7 +49990,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44039,7 +49998,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.label", "type": "string", "tags": [], "label": "label", @@ -44050,7 +50009,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.options", "type": "Array", "tags": [], "label": "options", @@ -44064,7 +50023,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.order", "type": "number", "tags": [], "label": "order", @@ -44075,13 +50034,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44089,7 +50048,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -44103,7 +50062,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -44114,7 +50073,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.type", "type": "string", "tags": [], "label": "type", @@ -44127,7 +50086,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44135,7 +50094,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -44149,7 +50108,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.validations", "type": "Array", "tags": [], "label": "validations", @@ -44163,11 +50122,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.tenant_name.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -44176,10 +50138,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites", "type": "Object", "tags": [], - "label": "client_id", + "label": "fetch_subsites", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44187,13 +50149,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.default_value", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.default_value", + "type": "boolean", "tags": [], "label": "default_value", "description": [], "signature": [ - "null" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44201,13 +50163,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: false; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44215,7 +50177,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.display", "type": "string", "tags": [], "label": "display", @@ -44228,7 +50190,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44236,7 +50198,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.label", "type": "string", "tags": [], "label": "label", @@ -44247,7 +50209,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.options", "type": "Array", "tags": [], "label": "options", @@ -44261,7 +50223,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.order", "type": "number", "tags": [], "label": "order", @@ -44272,13 +50234,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44286,7 +50248,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -44300,7 +50262,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -44311,7 +50273,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.type", "type": "string", "tags": [], "label": "type", @@ -44324,7 +50286,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44332,7 +50294,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -44346,7 +50308,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.validations", "type": "Array", "tags": [], "label": "validations", @@ -44360,23 +50322,208 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.client_id.value", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES", + "type": "Object", + "tags": [], + "label": "[FeatureName.SYNC_RULES]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.advanced", + "type": "Object", + "tags": [], + "label": "advanced", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.advanced.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.basic", + "type": "Object", + "tags": [], + "label": "basic", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.basic.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.DOCUMENT_LEVEL_SECURITY", + "type": "Object", + "tags": [], + "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.INCREMENTAL_SYNC", + "type": "Object", + "tags": [], + "label": "[FeatureName.INCREMENTAL_SYNC]", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.INCREMENTAL_SYNC.enabled", + "type": "boolean", "tags": [], - "label": "value", + "label": "enabled", "description": [], + "signature": [ + "true" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack", + "type": "Object", + "tags": [], + "label": "slack", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token", "type": "Object", "tags": [], - "label": "secret_value", + "label": "token", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44384,7 +50531,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -44398,7 +50545,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -44412,7 +50559,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.display", "type": "string", "tags": [], "label": "display", @@ -44433,7 +50580,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.label", "type": "string", "tags": [], "label": "label", @@ -44444,7 +50591,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.options", "type": "Array", "tags": [], "label": "options", @@ -44458,7 +50605,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.order", "type": "number", "tags": [], "label": "order", @@ -44469,7 +50616,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.required", "type": "boolean", "tags": [], "label": "required", @@ -44483,7 +50630,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -44497,7 +50644,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -44508,7 +50655,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.type", "type": "string", "tags": [], "label": "type", @@ -44529,7 +50676,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -44543,7 +50690,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.validations", "type": "Array", "tags": [], "label": "validations", @@ -44557,7 +50704,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.secret_value.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.token.value", "type": "string", "tags": [], "label": "value", @@ -44570,10 +50717,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days", "type": "Object", "tags": [], - "label": "site_collections", + "label": "fetch_last_n_days", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44581,7 +50728,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -44595,7 +50742,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -44609,7 +50756,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.display", "type": "string", "tags": [], "label": "display", @@ -44622,7 +50769,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44630,7 +50777,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.label", "type": "string", "tags": [], "label": "label", @@ -44641,7 +50788,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.options", "type": "Array", "tags": [], "label": "options", @@ -44655,7 +50802,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.order", "type": "number", "tags": [], "label": "order", @@ -44666,7 +50813,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.required", "type": "boolean", "tags": [], "label": "required", @@ -44680,7 +50827,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -44694,7 +50841,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -44705,7 +50852,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.type", "type": "string", "tags": [], "label": "type", @@ -44718,7 +50865,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44726,7 +50873,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -44740,7 +50887,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.validations", "type": "Array", "tags": [], "label": "validations", @@ -44754,7 +50901,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.site_collections.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.fetch_last_n_days.value", "type": "string", "tags": [], "label": "value", @@ -44767,10 +50914,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "auto_join_channels", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44778,13 +50925,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44792,7 +50939,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -44806,7 +50953,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.display", "type": "string", "tags": [], "label": "display", @@ -44827,7 +50974,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.label", "type": "string", "tags": [], "label": "label", @@ -44838,7 +50985,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.options", "type": "Array", "tags": [], "label": "options", @@ -44852,7 +50999,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.order", "type": "number", "tags": [], "label": "order", @@ -44863,7 +51010,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.required", "type": "boolean", "tags": [], "label": "required", @@ -44877,7 +51024,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -44891,7 +51038,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -44902,7 +51049,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.type", "type": "string", "tags": [], "label": "type", @@ -44923,13 +51070,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44937,7 +51084,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.validations", "type": "Array", "tags": [], "label": "validations", @@ -44951,7 +51098,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_text_extraction_service.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.auto_join_channels.value", "type": "boolean", "tags": [], "label": "value", @@ -44967,10 +51114,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users", "type": "Object", "tags": [], - "label": "use_document_level_security", + "label": "sync_users", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44978,13 +51125,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -44992,7 +51139,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -45006,7 +51153,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.display", "type": "string", "tags": [], "label": "display", @@ -45027,7 +51174,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.label", "type": "string", "tags": [], "label": "label", @@ -45038,7 +51185,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.options", "type": "Array", "tags": [], "label": "options", @@ -45052,7 +51199,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.order", "type": "number", "tags": [], "label": "order", @@ -45063,7 +51210,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.required", "type": "boolean", "tags": [], "label": "required", @@ -45077,7 +51224,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -45091,7 +51238,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -45102,7 +51249,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.type", "type": "string", "tags": [], "label": "type", @@ -45123,7 +51270,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -45137,7 +51284,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.validations", "type": "Array", "tags": [], "label": "validations", @@ -45151,26 +51298,86 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.use_document_level_security.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.configuration.sync_users.value", "type": "boolean", "tags": [], "label": "value", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false } ] - }, + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.slack.serviceType", + "type": "string", + "tags": [], + "label": "serviceType", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom", + "type": "Object", + "tags": [], + "label": "zoom", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration", + "type": "Object", + "tags": [], + "label": "configuration", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id", "type": "Object", "tags": [], - "label": "fetch_drive_item_permissions", + "label": "account_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45178,13 +51385,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "true" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45192,13 +51399,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45206,7 +51413,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.display", "type": "string", "tags": [], "label": "display", @@ -45219,7 +51426,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45227,7 +51434,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.label", "type": "string", "tags": [], "label": "label", @@ -45238,7 +51445,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.options", "type": "Array", "tags": [], "label": "options", @@ -45252,7 +51459,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.order", "type": "number", "tags": [], "label": "order", @@ -45263,7 +51470,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.required", "type": "boolean", "tags": [], "label": "required", @@ -45277,7 +51484,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -45291,18 +51498,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.type", "type": "string", "tags": [], "label": "type", @@ -45315,7 +51525,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45323,7 +51533,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -45337,7 +51547,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -45351,14 +51561,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_drive_item_permissions.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.account_id.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -45367,10 +51574,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id", "type": "Object", "tags": [], - "label": "fetch_unique_page_permissions", + "label": "client_id", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45378,13 +51585,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "true" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45392,13 +51599,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45406,7 +51613,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.display", "type": "string", "tags": [], "label": "display", @@ -45419,7 +51626,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45427,7 +51634,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.label", "type": "string", "tags": [], "label": "label", @@ -45438,7 +51645,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.options", "type": "Array", "tags": [], "label": "options", @@ -45452,7 +51659,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.order", "type": "number", "tags": [], "label": "order", @@ -45463,7 +51670,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.required", "type": "boolean", "tags": [], "label": "required", @@ -45477,7 +51684,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -45491,18 +51698,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.type", "type": "string", "tags": [], "label": "type", @@ -45515,7 +51725,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45523,7 +51733,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -45537,7 +51747,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.validations", "type": "Array", "tags": [], "label": "validations", @@ -45551,14 +51761,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_page_permissions.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_id.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -45567,10 +51774,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret", "type": "Object", "tags": [], - "label": "fetch_unique_list_permissions", + "label": "client_secret", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45578,13 +51785,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "true" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45592,13 +51799,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45606,7 +51813,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.display", "type": "string", "tags": [], "label": "display", @@ -45619,7 +51826,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45627,7 +51834,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.label", "type": "string", "tags": [], "label": "label", @@ -45638,7 +51845,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.options", "type": "Array", "tags": [], "label": "options", @@ -45652,7 +51859,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.order", "type": "number", "tags": [], "label": "order", @@ -45663,7 +51870,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.required", "type": "boolean", "tags": [], "label": "required", @@ -45677,13 +51884,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.sensitive", "type": "boolean", "tags": [], "label": "sensitive", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45691,18 +51898,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.type", "type": "string", "tags": [], "label": "type", @@ -45715,7 +51925,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45723,7 +51933,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -45737,7 +51947,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.validations", "type": "Array", "tags": [], "label": "validations", @@ -45751,14 +51961,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_permissions.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.client_secret.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -45767,10 +51974,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details", "type": "Object", "tags": [], - "label": "fetch_unique_list_item_permissions", + "label": "fetch_past_meeting_details", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45778,13 +51985,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "true" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45792,13 +51999,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45806,7 +52013,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.display", "type": "string", "tags": [], "label": "display", @@ -45827,7 +52034,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.label", "type": "string", "tags": [], "label": "label", @@ -45838,7 +52045,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.options", "type": "Array", "tags": [], "label": "options", @@ -45852,7 +52059,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.order", "type": "number", "tags": [], "label": "order", @@ -45863,7 +52070,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.required", "type": "boolean", "tags": [], "label": "required", @@ -45877,7 +52084,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -45891,7 +52098,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -45902,7 +52109,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.type", "type": "string", "tags": [], "label": "type", @@ -45923,7 +52130,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -45937,7 +52144,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.validations", "type": "Array", "tags": [], "label": "validations", @@ -45951,13 +52158,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_unique_list_item_permissions.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.fetch_past_meeting_details.value", "type": "boolean", "tags": [], "label": "value", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45967,10 +52174,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age", "type": "Object", "tags": [], - "label": "enumerate_all_sites", + "label": "recording_age", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45978,13 +52185,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "true" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -45992,7 +52199,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -46006,7 +52213,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.display", "type": "string", "tags": [], "label": "display", @@ -46019,7 +52226,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".NUMERIC" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46027,7 +52234,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.label", "type": "string", "tags": [], "label": "label", @@ -46038,7 +52245,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.options", "type": "Array", "tags": [], "label": "options", @@ -46052,7 +52259,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.order", "type": "number", "tags": [], "label": "order", @@ -46063,13 +52270,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46077,7 +52284,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -46091,7 +52298,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -46102,7 +52309,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.type", "type": "string", "tags": [], "label": "type", @@ -46115,7 +52322,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".INTEGER" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46123,7 +52330,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -46137,13 +52344,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.validations", "type": "Array", "tags": [], "label": "validations", "description": [], "signature": [ - "never[]" + "{ type: string; constraint: number; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46151,14 +52358,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.enumerate_all_sites.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.recording_age.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "true" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -46167,10 +52371,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service", "type": "Object", "tags": [], - "label": "fetch_subsites", + "label": "use_text_extraction_service", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46178,13 +52382,13 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.default_value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.default_value", + "type": "Uncategorized", "tags": [], "label": "default_value", "description": [], "signature": [ - "false" + "null" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46192,13 +52396,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: false; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46206,7 +52410,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.display", "type": "string", "tags": [], "label": "display", @@ -46227,7 +52431,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.label", "type": "string", "tags": [], "label": "label", @@ -46238,7 +52442,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.options", "type": "Array", "tags": [], "label": "options", @@ -46252,7 +52456,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.order", "type": "number", "tags": [], "label": "order", @@ -46263,13 +52467,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46277,7 +52481,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -46291,7 +52495,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -46302,7 +52506,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.type", "type": "string", "tags": [], "label": "type", @@ -46323,13 +52527,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "never[]" + "string[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46337,7 +52541,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.validations", "type": "Array", "tags": [], "label": "validations", @@ -46351,13 +52555,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.configuration.fetch_subsites.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.configuration.use_text_extraction_service.value", "type": "boolean", "tags": [], "label": "value", "description": [], "signature": [ - "true" + "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -46369,7 +52573,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.features", "type": "Object", "tags": [], "label": "features", @@ -46377,133 +52581,11 @@ "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES", - "type": "Object", - "tags": [], - "label": "[FeatureName.SYNC_RULES]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.advanced", - "type": "Object", - "tags": [], - "label": "advanced", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.advanced.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.basic", - "type": "Object", - "tags": [], - "label": "basic", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.SYNC_RULES.basic.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.DOCUMENT_LEVEL_SECURITY", - "type": "Object", - "tags": [], - "label": "[FeatureName.DOCUMENT_LEVEL_SECURITY]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.DOCUMENT_LEVEL_SECURITY.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.INCREMENTAL_SYNC", - "type": "Object", - "tags": [], - "label": "[FeatureName.INCREMENTAL_SYNC]", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.features.FeatureName.INCREMENTAL_SYNC.enabled", - "type": "boolean", - "tags": [], - "label": "enabled", - "description": [], - "signature": [ - "true" - ], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ] + "children": [] }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.name", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.name", "type": "string", "tags": [], "label": "name", @@ -46514,7 +52596,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.sharepoint_online.serviceType", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.zoom.serviceType", "type": "string", "tags": [], "label": "serviceType", diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 76aee667c55be..662d26a1824e4 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/te | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3216 | 0 | 3216 | 0 | +| 3647 | 0 | 3647 | 0 | ## Common diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx index 5df18e329fd48..17b5526f676cf 100644 --- a/api_docs/kbn_search_errors.mdx +++ b/api_docs/kbn_search_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors title: "@kbn/search-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-errors plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors'] --- import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json'; diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx index ed05ce5a48b6b..fba9ad02c46ba 100644 --- a/api_docs/kbn_search_index_documents.mdx +++ b/api_docs/kbn_search_index_documents.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents title: "@kbn/search-index-documents" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-index-documents plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents'] --- import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json'; diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index 247a2701da252..f32b2a2560917 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx index a54edb0b37db8..e42b8502dc824 100644 --- a/api_docs/kbn_security_hardening.mdx +++ b/api_docs/kbn_security_hardening.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening title: "@kbn/security-hardening" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-hardening plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening'] --- import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_common.devdocs.json b/api_docs/kbn_security_plugin_types_common.devdocs.json index ccad352a0b18e..2c5961c78c515 100644 --- a/api_docs/kbn_security_plugin_types_common.devdocs.json +++ b/api_docs/kbn_security_plugin_types_common.devdocs.json @@ -994,15 +994,15 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfile", "text": "UserProfile" }, "<D>" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -1015,7 +1015,7 @@ "description": [ "\nUnique ID for of the user profile." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1028,7 +1028,7 @@ "description": [ "\nIndicates whether user profile is enabled or not." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1043,14 +1043,14 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfo", "text": "UserProfileUserInfo" } ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1066,7 +1066,7 @@ "signature": [ "{ [P in keyof D]?: D[P] | undefined; }" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -1082,7 +1082,7 @@ "description": [ "\nBasic user information returned in user profile." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -1095,7 +1095,7 @@ "description": [ "\nUsername of the user." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1111,7 +1111,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1127,7 +1127,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -1145,22 +1145,22 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfoWithSecurity", "text": "UserProfileUserInfoWithSecurity" }, " extends ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfo", "text": "UserProfileUserInfo" } ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -1176,7 +1176,7 @@ "signature": [ "readonly string[]" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1189,7 +1189,7 @@ "description": [ "\nName of the Elasticsearch security realm that was used to authenticate user." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1205,7 +1205,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -1223,23 +1223,23 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileWithSecurity", "text": "UserProfileWithSecurity" }, "<D, L> extends ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfile", "text": "UserProfile" }, "<D>" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -1254,14 +1254,14 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfoWithSecurity", "text": "UserProfileUserInfoWithSecurity" } ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -1277,7 +1277,7 @@ "signature": [ "L" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -1358,7 +1358,7 @@ "signature": [ "{ [x: string]: unknown; }" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -1375,7 +1375,7 @@ "signature": [ "{ [x: string]: string; }" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx index f6150a52db994..22ff4c0bce946 100644 --- a/api_docs/kbn_security_plugin_types_common.mdx +++ b/api_docs/kbn_security_plugin_types_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common title: "@kbn/security-plugin-types-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-common plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common'] --- import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_public.devdocs.json b/api_docs/kbn_security_plugin_types_public.devdocs.json index 7b1340e3d43d9..b09fb5fe59ed4 100644 --- a/api_docs/kbn_security_plugin_types_public.devdocs.json +++ b/api_docs/kbn_security_plugin_types_public.devdocs.json @@ -103,31 +103,31 @@ "description": [], "signature": [ { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.GetUserProfileResponse", + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.GetUserProfileResponse", "text": "GetUserProfileResponse" }, "<D> extends ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileWithSecurity", "text": "UserProfileWithSecurity" }, "<D, ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileLabels", "text": "UserProfileLabels" }, ">" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -142,9 +142,9 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfoWithSecurity", "text": "UserProfileUserInfoWithSecurity" }, @@ -158,7 +158,7 @@ }, ", \"authentication_provider\">" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -416,20 +416,46 @@ { "parentPluginId": "@kbn/security-plugin-types-public", "id": "def-public.SecurityPluginStart.userProfiles", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "userProfiles", "description": [ "\nA set of methods to work with Kibana user profiles." ], "signature": [ + "Omit<", { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.UserProfileAPIClient", - "text": "UserProfileAPIClient" - } + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + ", \"getUserProfile$\"> & { userProfile$: ", + "Observable", + "<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + " | null>; } & { readonly userProfile$: ", + "Observable", + "<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + " | null>; readonly userProfileLoaded$: ", + "Observable", + "<boolean>; readonly enabled$: ", + "Observable", + "<boolean>; }" ], "path": "x-pack/packages/security/plugin_types_public/src/plugin.ts", "deprecated": false, @@ -532,381 +558,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient", - "type": "Interface", - "tags": [], - "label": "UserProfileAPIClient", - "description": [], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.userProfile$", - "type": "Object", - "tags": [], - "label": "userProfile$", - "description": [], - "signature": [ - "Observable", - "<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - " | null>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.userProfileLoaded$", - "type": "Object", - "tags": [], - "label": "userProfileLoaded$", - "description": [ - "\nIndicates if the user profile data has been loaded from the server.\nUseful to distinguish between the case when the user profile data is `null` because the HTTP\nrequest has not finished or because there is no user profile data for the current user." - ], - "signature": [ - "Observable", - "<boolean>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.enabled$", - "type": "Object", - "tags": [], - "label": "enabled$", - "description": [ - "Flag to indicate if the current user has a user profile. Anonymous users don't have user profiles." - ], - "signature": [ - "Observable", - "<boolean>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.getCurrent", - "type": "Function", - "tags": [], - "label": "getCurrent", - "description": [ - "\nRetrieves the user profile of the current user. If the profile isn't available, e.g. for the anonymous users or\nusers authenticated via authenticating proxies, the `null` value is returned." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(params?: ", - { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" - }, - " | undefined) => Promise<", - { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.GetUserProfileResponse", - "text": "GetUserProfileResponse" - }, - "<D>>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.getCurrent.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Get current user profile operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" - }, - " | undefined" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.bulkGet", - "type": "Function", - "tags": [], - "label": "bulkGet", - "description": [ - "\nRetrieves multiple user profiles by their identifiers." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(params: ", - { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" - }, - "<D>[]>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.bulkGet.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Bulk get operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" - } - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.suggest", - "type": "Function", - "tags": [], - "label": "suggest", - "description": [ - "\nSuggests multiple user profiles by search criteria.\n\nNote: This endpoint is not provided out-of-the-box by the platform. You need to expose your own\nversion within your app. An example of how to do this can be found in:\n`examples/user_profile_examples/server/plugin.ts`\n" - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(path: string, params: ", - { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.UserProfileSuggestParams", - "text": "UserProfileSuggestParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" - }, - "<D>[]>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.suggest.$1", - "type": "string", - "tags": [], - "label": "path", - "description": [ - "Path to your app's suggest endpoint." - ], - "signature": [ - "string" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.suggest.$2", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Suggest operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-public", - "scope": "public", - "docId": "kibKbnSecurityPluginTypesPublicPluginApi", - "section": "def-public.UserProfileSuggestParams", - "text": "UserProfileSuggestParams" - } - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.update", - "type": "Function", - "tags": [], - "label": "update", - "description": [ - "\nUpdates user profile data of the current user." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(data: D) => Promise<void>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.update.$1", - "type": "Uncategorized", - "tags": [], - "label": "data", - "description": [ - "Application data to be written (merged with existing data)." - ], - "signature": [ - "D" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.partialUpdate", - "type": "Function", - "tags": [], - "label": "partialUpdate", - "description": [ - "\nPartially updates user profile data of the current user, merging the previous data with the provided data." - ], - "signature": [ - "<D extends Partial<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">>(data: D) => Promise<void>" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-public", - "id": "def-public.UserProfileAPIClient.partialUpdate.$1", - "type": "Uncategorized", - "tags": [], - "label": "data", - "description": [ - "Application data to be merged with existing data." - ], - "signature": [ - "D" - ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/security-plugin-types-public", "id": "def-public.UserProfileBulkGetParams", @@ -916,7 +567,7 @@ "description": [ "\nParameters for the bulk get API." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -932,7 +583,7 @@ "signature": [ "Set<string>" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -948,7 +599,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -964,7 +615,7 @@ "description": [ "\nParameters for the get user profile for the current user API." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -977,7 +628,7 @@ "description": [ "\nBy default, get API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -993,7 +644,7 @@ "description": [ "\nParameters for the suggest API." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -1006,7 +657,7 @@ "description": [ "\nQuery string used to match name-related fields in user profiles. The following fields are treated as\nname-related: username, full_name and email." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -1022,7 +673,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -1038,7 +689,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -1093,6 +744,53 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-plugin-types-public", + "id": "def-public.UserProfileAPIClient", + "type": "Type", + "tags": [], + "label": "UserProfileAPIClient", + "description": [], + "signature": [ + "Omit<", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, + ", \"getUserProfile$\"> & { userProfile$: ", + "Observable", + "<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + " | null>; } & { readonly userProfile$: ", + "Observable", + "<", + { + "pluginId": "@kbn/core-user-profile-common", + "scope": "common", + "docId": "kibKbnCoreUserProfileCommonPluginApi", + "section": "def-common.UserProfileData", + "text": "UserProfileData" + }, + " | null>; readonly userProfileLoaded$: ", + "Observable", + "<boolean>; readonly enabled$: ", + "Observable", + "<boolean>; }" + ], + "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx index 6d5116c8ca3be..99bec495c1a13 100644 --- a/api_docs/kbn_security_plugin_types_public.mdx +++ b/api_docs/kbn_security_plugin_types_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public title: "@kbn/security-plugin-types-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-public plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public'] --- import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 53 | 0 | 15 | 0 | +| 39 | 0 | 14 | 0 | ## Client diff --git a/api_docs/kbn_security_plugin_types_server.devdocs.json b/api_docs/kbn_security_plugin_types_server.devdocs.json index 421027dcb7379..9c61266324f1b 100644 --- a/api_docs/kbn_security_plugin_types_server.devdocs.json +++ b/api_docs/kbn_security_plugin_types_server.devdocs.json @@ -3114,11 +3114,11 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileServiceStart", - "text": "UserProfileServiceStart" + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" } ], "path": "x-pack/packages/security/plugin_types_server/src/plugin.ts", @@ -3238,7 +3238,7 @@ "description": [ "\nParameters for the bulk get API." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3254,7 +3254,7 @@ "signature": [ "Set<string>" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -3270,7 +3270,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -3286,7 +3286,7 @@ "description": [ "\nParameters for the get user profile for the current user API." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3309,7 +3309,7 @@ }, "<unknown, unknown, unknown, any>" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -3325,7 +3325,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -3341,7 +3341,7 @@ "description": [ "\nThe set of privileges that users associated with the suggested user profile should have for a specified space id." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3354,7 +3354,7 @@ "description": [ "\nThe id of the Kibana Space." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -3370,235 +3370,13 @@ "signature": [ "{ kibana: string[]; }" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/security-plugin-types-server", - "id": "def-server.UserProfileServiceStart", - "type": "Interface", - "tags": [], - "label": "UserProfileServiceStart", - "description": [ - "\nA set of methods to work with Kibana user profiles." - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-server", - "id": "def-server.UserProfileServiceStart.getCurrent", - "type": "Function", - "tags": [], - "label": "getCurrent", - "description": [ - "\nRetrieves a user profile for the current user extracted from the specified request. If the profile isn't available,\ne.g. for the anonymous users or users authenticated via authenticating proxies, the `null` value is returned." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ", L extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileLabels", - "text": "UserProfileLabels" - }, - ">(params: ", - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileWithSecurity", - "text": "UserProfileWithSecurity" - }, - "<D, L> | null>" - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-server", - "id": "def-server.UserProfileServiceStart.getCurrent.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Get current user profile operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" - } - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/security-plugin-types-server", - "id": "def-server.UserProfileServiceStart.bulkGet", - "type": "Function", - "tags": [], - "label": "bulkGet", - "description": [ - "\nRetrieves multiple user profiles by their identifiers." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(params: ", - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" - }, - "<D>[]>" - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-server", - "id": "def-server.UserProfileServiceStart.bulkGet.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Bulk get operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" - } - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/security-plugin-types-server", - "id": "def-server.UserProfileServiceStart.suggest", - "type": "Function", - "tags": [], - "label": "suggest", - "description": [ - "\nSuggests multiple user profiles by search criteria." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(params: ", - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileSuggestParams", - "text": "UserProfileSuggestParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" - }, - "<D>[]>" - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/security-plugin-types-server", - "id": "def-server.UserProfileServiceStart.suggest.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Suggest operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileSuggestParams", - "text": "UserProfileSuggestParams" - } - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/security-plugin-types-server", "id": "def-server.UserProfileSuggestParams", @@ -3608,7 +3386,7 @@ "description": [ "\nParameters for the suggest API." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -3624,7 +3402,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -3640,7 +3418,7 @@ "signature": [ "{ uids: string[]; } | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -3656,7 +3434,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -3672,7 +3450,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -3687,15 +3465,15 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileRequiredPrivileges", + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileRequiredPrivileges", "text": "UserProfileRequiredPrivileges" }, " | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -4167,6 +3945,29 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/security-plugin-types-server", + "id": "def-server.UserProfileServiceStart", + "type": "Type", + "tags": [], + "label": "UserProfileServiceStart", + "description": [ + "\nStart contract for Core's userProfile service.\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/user-profile/core-user-profile-server/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [ diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx index 57d7eb854e1e6..e4b0016cdb1de 100644 --- a/api_docs/kbn_security_plugin_types_server.mdx +++ b/api_docs/kbn_security_plugin_types_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server title: "@kbn/security-plugin-types-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-server plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server'] --- import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 213 | 0 | 114 | 0 | +| 207 | 0 | 114 | 0 | ## Server diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index b4470435eddb0..7907ed4e5c8ae 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index 0d7d6c7a15dc0..f2745254c8c79 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation'] --- import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index c1fd7387f206f..cb85f78f77e93 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index dd8ae9c32f66f..f9532b7f463fc 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index e747b6bf2b90d..6e9bcd74bbb7f 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 1f6b4617741f5..98cefc21ef42d 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table'] --- import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 0f5e3283f7019..929121448bc25 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index c59edda61a904..30d53bc40c51b 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index a3cc7636e63ea..014bd6f7389da 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 68e8880b1e09e..fa3add30e9c6a 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 81094f9434a20..0059f8b9f187c 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index c9519ebe11738..42aae9ae0d03e 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index 3809da24ae101..ee407c859c493 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index d13b1ad3476f2..9a57954542d5d 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 3ca421334edd1..3286ef0999088 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index b1a5a5b1839e8..ec51e61907880 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index babfe00912cf2..0d761565d3b23 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 468847a493614..76b407766005c 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index 2ffff79453547..75913f4251e78 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index 7d1f1f4f36264..9f102c3bb43d4 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 2310a9fa2a4ee..bcc9b6d62f7c7 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index 47535eabd4070..079f231990b9e 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 4fa2bb77089f1..77db574b8c04c 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index f492dd5ef3d84..575dae4fffe27 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index 9de480cdff020..118dc95c6a614 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings'] --- import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx index ecff937d5b558..ba25ad464da81 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings'] --- import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx index 5e632b81d7f3b..d2ec1ac28b344 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher'] --- import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json'; diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx index 3ce4a5549dbe6..5b481f285dbba 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings'] --- import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx index a781effb8d010..cfb54c4886af2 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings'] --- import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json'; diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx index 9661db2a52079..d23e1a51d106b 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config'] --- import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 2d8f9fcd23373..6bf85f17d8c43 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 1bd8db5759791..d208fda28c60e 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index acbd1b83db795..97419aafd3037 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 0e21aa851fa47..09f4e5e60d636 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index 398108101438b..9321e212d58e0 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 7696e073285ce..a7bc58f081cff 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index 4be49cb7dd672..6ef3091b6e845 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx index 8c4918b591f83..8594b87c12780 100644 --- a/api_docs/kbn_shared_ux_error_boundary.mdx +++ b/api_docs/kbn_shared_ux_error_boundary.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary title: "@kbn/shared-ux-error-boundary" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-error-boundary plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary'] --- import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 39f0f6876308f..b12da7e3f74a4 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 66e49d756c6f2..f5e8157cb4aec 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index 4e9a3f17fbb3e..44fdb295a3f56 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index 81d58b66a4b03..fa468d841a973 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 020d14bb2ca08..2fbedf68abe0b 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 825d923c74a00..a7c7e65369104 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 11ab8dc6a23c4..ff417cae77bc2 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 0e4c79987e9a9..a31926256a0bb 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index 6492ed4a30d9e..ee305495d1fe4 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 237b5ab2dba99..db572114423f2 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index 1cd5a7ff986d0..c4de4aabeb184 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index 3ad934d65e8d9..6338fa321eafb 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 570a8dda68163..f08c0911f0333 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index bb3a476cf39c1..1dafe7a264f93 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 8ea7c4aa3c88c..e86e5f5a253e6 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index e3f6dbca49bbf..0728d9c9e5b20 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index a545dcae9143f..996aaf18b7c35 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index ebc4fd1a8a29b..0c2ed3c88863a 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 1cb40772ebbd8..d2c8c9425044d 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index d74d06b37a12d..a510f93e43917 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index 22f433c30cb2c..db0ec2159f17c 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index 9098a5be60723..a8623d1092ba5 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index d389de7231bfe..f4f07869bd869 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 1606123f72d64..9dcf0aaa5980f 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index 594a990141f77..91e8e685ba4bd 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index bc2656033df21..5b507bf02e103 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index d517d414df9e2..0a43ee3dbad13 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index 6f26619f9cde5..6962a0bab5664 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index a16cfb6614548..9ab7f940fd568 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index 92b5a6df17c9f..efe77d79593b9 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx index 81b13a095708c..22b24b6364734 100644 --- a/api_docs/kbn_shared_ux_tabbed_modal.mdx +++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal title: "@kbn/shared-ux-tabbed-modal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-tabbed-modal plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal'] --- import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 75941d38b8873..57a409cb4996e 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 0550bae39a231..f4c49ed52c990 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_solution_nav_es.mdx b/api_docs/kbn_solution_nav_es.mdx index 20f9186826419..949e861ac8301 100644 --- a/api_docs/kbn_solution_nav_es.mdx +++ b/api_docs/kbn_solution_nav_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-es title: "@kbn/solution-nav-es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/solution-nav-es plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-es'] --- import kbnSolutionNavEsObj from './kbn_solution_nav_es.devdocs.json'; diff --git a/api_docs/kbn_solution_nav_oblt.mdx b/api_docs/kbn_solution_nav_oblt.mdx index 9e558c3c946ae..758df52ccbce8 100644 --- a/api_docs/kbn_solution_nav_oblt.mdx +++ b/api_docs/kbn_solution_nav_oblt.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-oblt title: "@kbn/solution-nav-oblt" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/solution-nav-oblt plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-oblt'] --- import kbnSolutionNavObltObj from './kbn_solution_nav_oblt.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 3f8573d9b8e8e..c7c913c8be48d 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx index d9436afb04105..b5250afee3e8c 100644 --- a/api_docs/kbn_sort_predicates.mdx +++ b/api_docs/kbn_sort_predicates.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates title: "@kbn/sort-predicates" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-predicates plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates'] --- import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 538923164fc12..20c092393bcea 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index bc958d4b721a0..b99029e2c0b79 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index a268072eb487d..388b9c3356827 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 23e6322ee8515..b49139bb526e5 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 58498e19f2b43..00ed72523a478 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx index 0907c06b17776..2dcd94fa9948e 100644 --- a/api_docs/kbn_test_eui_helpers.mdx +++ b/api_docs/kbn_test_eui_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers title: "@kbn/test-eui-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-eui-helpers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers'] --- import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 3cd1925d40ed4..eeee3f8eca854 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index dc7ecd0eeeeef..f85f0c390d603 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index 2247924a4a4ea..36ac117fd13f0 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx index 24fd45c53588c..8f04fc154b875 100644 --- a/api_docs/kbn_timerange.mdx +++ b/api_docs/kbn_timerange.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange title: "@kbn/timerange" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/timerange plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange'] --- import kbnTimerangeObj from './kbn_timerange.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index f1958ab975ba9..63b835e4d9dd8 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx index 5cc34cd80c44a..4ff38920c4df3 100644 --- a/api_docs/kbn_triggers_actions_ui_types.mdx +++ b/api_docs/kbn_triggers_actions_ui_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types title: "@kbn/triggers-actions-ui-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/triggers-actions-ui-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types'] --- import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index e9c71b024b783..0a2f027c17c4b 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 8d3e4a6016ffe..bb98c468a7409 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 698447797bf8c..10e249f587e0e 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 78c8a8bb5d26b..055c2371dcc03 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 836503275d2ec..aa018c4bdbafa 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 49c4b0c1e5329..bfd32bd8a087c 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json'; diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index 903c9387e0e3b..1b3875e6b3d2e 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 16a70fbd21b8f..cf332689a83ca 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx index 05f0be93f7401..c4d469547dc56 100644 --- a/api_docs/kbn_unsaved_changes_badge.mdx +++ b/api_docs/kbn_unsaved_changes_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge title: "@kbn/unsaved-changes-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unsaved-changes-badge plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index fe863c054b850..9042db5f58e02 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise'] --- import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 2dc526f31abd5..4a05c38557d5d 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index cb9059f84c52b..72e1a5ee10b79 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index e81eedce31954..91e31c7ee8e69 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index d00a83c8440f8..c6ad527f2368f 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index 9c72d1d9b89c9..476cdbc6e11db 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx index f86381940589b..d58daa018cd5e 100644 --- a/api_docs/kbn_visualization_utils.mdx +++ b/api_docs/kbn_visualization_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils title: "@kbn/visualization-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils'] --- import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index f30e200ac5380..8eb8ac0c7f58c 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index c6504033681b2..8b5b348844357 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index b60cb5e8ce0d2..1d2e418352c4a 100644 --- a/api_docs/kbn_zod_helpers.mdx +++ b/api_docs/kbn_zod_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers title: "@kbn/zod-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/zod-helpers plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers'] --- import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index aebc47458cc62..880aa0c973fa4 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json index 6bcda4f0f9194..2129ced1ded60 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -4032,6 +4032,14 @@ "section": "def-common.SecurityServiceStart", "text": "SecurityServiceStart" }, + " | undefined; userProfile?: ", + { + "pluginId": "@kbn/core-user-profile-browser", + "scope": "common", + "docId": "kibKbnCoreUserProfileBrowserPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + }, " | undefined; }" ], "path": "src/plugins/kibana_react/public/context/types.ts", diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 54484886475a1..a00e09f4289ab 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index f4c35ef29e1e2..6ac1e978a14af 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 9f83470f9e626..cbcfcde7259bb 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index bca03b7837fa4..e2bbb7b7423ee 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 5299a9d1710a4..a669d29f39e93 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index aba69fa13ceaf..1bfda840a0f49 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 306f78f53cd55..19342410a1eb2 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/links.mdx b/api_docs/links.mdx index fdb50f2ccc2b7..c6c6757fc65ab 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 610e4108261bf..11e8033cb3d59 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx index b080aea2a43bc..dfa4c282d10dd 100644 --- a/api_docs/logs_explorer.mdx +++ b/api_docs/logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer title: "logsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logsExplorer plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer'] --- import logsExplorerObj from './logs_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index f7d4d3600a9d5..4590cd09c34dd 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 85dd5712ae962..22bc1ac9bcea9 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 546e6b97cd3b0..5c80fff41c359 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index ec6443dcad528..307f719cdb63a 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index 478140ca221c0..6fb6cfd454ec7 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index aa8b3e3de703c..1772729f2396a 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index 6ca8e7352b9b4..0aac3445eacc9 100644 --- a/api_docs/mock_idp_plugin.mdx +++ b/api_docs/mock_idp_plugin.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin title: "mockIdpPlugin" image: https://source.unsplash.com/400x175/?github description: API docs for the mockIdpPlugin plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin'] --- import mockIdpPluginObj from './mock_idp_plugin.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 08b65d4c15e60..da6b7123da837 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 03e013bcfc34d..d372da7b71546 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index af46c6ef1d1aa..722cf08837d86 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 9aef4e1126466..77251421701eb 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx index 84a9dc5e2ddc3..356bffc89bbe2 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage'] --- import noDataPageObj from './no_data_page.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index be2446528425c..ccdad0f5ee73d 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 06cdfdff0bd8d..93574115a561c 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant.devdocs.json b/api_docs/observability_a_i_assistant.devdocs.json index 4b837e5a53bbb..8692b854dd2d0 100644 --- a/api_docs/observability_a_i_assistant.devdocs.json +++ b/api_docs/observability_a_i_assistant.devdocs.json @@ -528,61 +528,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "observabilityAIAssistant", - "id": "def-public.getAssistantSystemMessage", - "type": "Function", - "tags": [], - "label": "getAssistantSystemMessage", - "description": [], - "signature": [ - "({\n contexts,\n}: { contexts: ", - "ContextDefinition", - "[]; }) => ", - { - "pluginId": "observabilityAIAssistant", - "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" - } - ], - "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/service/get_assistant_system_message.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "observabilityAIAssistant", - "id": "def-public.getAssistantSystemMessage.$1", - "type": "Object", - "tags": [], - "label": "{\n contexts,\n}", - "description": [], - "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/service/get_assistant_system_message.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "observabilityAIAssistant", - "id": "def-public.getAssistantSystemMessage.$1.contexts", - "type": "Array", - "tags": [], - "label": "contexts", - "description": [], - "signature": [ - "ContextDefinition", - "[]" - ], - "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/service/get_assistant_system_message.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "observabilityAIAssistant", "id": "def-public.isSupportedConnectorType", @@ -1453,24 +1398,6 @@ ], "returnComment": [] }, - { - "parentPluginId": "observabilityAIAssistant", - "id": "def-public.ObservabilityAIAssistantChatService.getContexts", - "type": "Function", - "tags": [], - "label": "getContexts", - "description": [], - "signature": [ - "() => ", - "ContextDefinition", - "[]" - ], - "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, { "parentPluginId": "observabilityAIAssistant", "id": "def-public.ObservabilityAIAssistantChatService.getFunctions", @@ -1569,6 +1496,29 @@ ], "returnComment": [] }, + { + "parentPluginId": "observabilityAIAssistant", + "id": "def-public.ObservabilityAIAssistantChatService.getSystemMessage", + "type": "Function", + "tags": [], + "label": "getSystemMessage", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "observabilityAIAssistant", + "scope": "common", + "docId": "kibObservabilityAIAssistantPluginApi", + "section": "def-common.Message", + "text": "Message" + } + ], + "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "observabilityAIAssistant", "id": "def-public.ObservabilityAIAssistantChatService.hasRenderFunction", @@ -1996,9 +1946,7 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "<any>[]; contextDefinitions: ", - "ContextDefinition", - "[]; }>; } & ", + "<any>[]; systemMessage: string; }>; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", @@ -2614,9 +2562,7 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "<any>[]; contextDefinitions: ", - "ContextDefinition", - "[]; }>; } & ", + "<any>[]; systemMessage: string; }>; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", @@ -3820,9 +3766,7 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "<any>[]; contextDefinitions: ", - "ContextDefinition", - "[]; }>; } & ", + "<any>[]; systemMessage: string; }>; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", @@ -4556,9 +4500,7 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "<any>[]; contextDefinitions: ", - "ContextDefinition", - "[]; }>; } & ", + "<any>[]; systemMessage: string; }>; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", @@ -5898,9 +5840,7 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "<any>[]; contextDefinitions: ", - "ContextDefinition", - "[]; }>; } & ", + "<any>[]; systemMessage: string; }>; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", @@ -6979,20 +6919,6 @@ "path": "x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/types.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "observabilityAIAssistant", - "id": "def-common.FunctionDefinition.contexts", - "type": "Array", - "tags": [], - "label": "contexts", - "description": [], - "signature": [ - "string[]" - ], - "path": "x-pack/plugins/observability_solution/observability_ai_assistant/common/functions/types.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index ab4dc9d7ad1d6..f1b4eb753094b 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 253 | 1 | 251 | 25 | +| 249 | 1 | 247 | 24 | ## Client diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx index 4ab0e3b388c6a..1efe55c72cf3d 100644 --- a/api_docs/observability_a_i_assistant_app.mdx +++ b/api_docs/observability_a_i_assistant_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistantApp title: "observabilityAIAssistantApp" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistantApp plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistantApp'] --- import observabilityAIAssistantAppObj from './observability_a_i_assistant_app.devdocs.json'; diff --git a/api_docs/observability_ai_assistant_management.mdx b/api_docs/observability_ai_assistant_management.mdx index 057c5222d61a8..9efa5cbb2c3d6 100644 --- a/api_docs/observability_ai_assistant_management.mdx +++ b/api_docs/observability_ai_assistant_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAiAssistantManagement title: "observabilityAiAssistantManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAiAssistantManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAiAssistantManagement'] --- import observabilityAiAssistantManagementObj from './observability_ai_assistant_management.devdocs.json'; diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx index 2c8f4f2ccd889..84f5771e92d27 100644 --- a/api_docs/observability_logs_explorer.mdx +++ b/api_docs/observability_logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer title: "observabilityLogsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogsExplorer plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer'] --- import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index 52a0c702278d0..ec2a847de6505 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index ac5c6fc965ba0..b49a3b3f2e76c 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 8d4ebf8f35261..e9458f7dbb0dc 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index 4ba9b1cc4af1f..8baba23da6f74 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab'] --- import painlessLabObj from './painless_lab.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index ba20360721af3..f6461387e5e45 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a <br /> public API | Number of teams | |--------------|----------|------------------------| -| 783 | 672 | 42 | +| 790 | 679 | 42 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 47427 | 240 | 36084 | 1851 | +| 47972 | 240 | 36580 | 1850 | ## Plugin Directory @@ -48,7 +48,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | cloudFullStory | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers FullStory as a shipper for telemetry. | 0 | 0 | 0 | 0 | | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | <DocLink id="kibCloudSecurityPosturePluginApi" text="cloudSecurityPosture"/> | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 14 | 0 | 2 | 2 | -| <DocLink id="kibConsolePluginApi" text="console"/> | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 40 | 0 | 30 | 0 | +| <DocLink id="kibConsolePluginApi" text="console"/> | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 38 | 0 | 30 | 0 | | <DocLink id="kibContentManagementPluginApi" text="contentManagement"/> | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 149 | 0 | 125 | 6 | | <DocLink id="kibControlsPluginApi" text="controls"/> | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 340 | 0 | 332 | 20 | | crossClusterReplication | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 0 | 0 | 0 | 0 | @@ -68,7 +68,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibDiscoverEnhancedPluginApi" text="discoverEnhanced"/> | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 35 | 0 | 33 | 2 | | <DocLink id="kibEcsDataQualityDashboardPluginApi" text="ecsDataQualityDashboard"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | APIs used to assess the quality of data in Elasticsearch indexes | 2 | 0 | 0 | 0 | | <DocLink id="kibElasticAssistantPluginApi" text="elasticAssistant"/> | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | Server APIs for the Elastic AI Assistant | 45 | 0 | 31 | 0 | -| <DocLink id="kibEmbeddablePluginApi" text="embeddable"/> | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 560 | 1 | 454 | 8 | +| <DocLink id="kibEmbeddablePluginApi" text="embeddable"/> | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 575 | 1 | 468 | 8 | | <DocLink id="kibEmbeddableEnhancedPluginApi" text="embeddableEnhanced"/> | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Extends embeddable plugin with more functionality | 19 | 0 | 19 | 2 | | <DocLink id="kibEncryptedSavedObjectsPluginApi" text="encryptedSavedObjects"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides encryption and decryption utilities for saved objects containing sensitive information. | 53 | 0 | 46 | 1 | | <DocLink id="kibEnterpriseSearchPluginApi" text="enterpriseSearch"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Adds dashboards for discovering and managing Enterprise Search products. | 5 | 0 | 5 | 0 | @@ -140,7 +140,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibNoDataPagePluginApi" text="noDataPage"/> | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 3 | 0 | | <DocLink id="kibNotificationsPluginApi" text="notifications"/> | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | | <DocLink id="kibObservabilityPluginApi" text="observability"/> | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 678 | 2 | 669 | 13 | -| <DocLink id="kibObservabilityAIAssistantPluginApi" text="observabilityAIAssistant"/> | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 253 | 1 | 251 | 25 | +| <DocLink id="kibObservabilityAIAssistantPluginApi" text="observabilityAIAssistant"/> | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 249 | 1 | 247 | 24 | | <DocLink id="kibObservabilityAIAssistantAppPluginApi" text="observabilityAIAssistantApp"/> | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 | | <DocLink id="kibObservabilityAiAssistantManagementPluginApi" text="observabilityAiAssistantManagement"/> | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 | | <DocLink id="kibObservabilityLogsExplorerPluginApi" text="observabilityLogsExplorer"/> | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin exposes and registers observability log consumption features. | 21 | 0 | 21 | 1 | @@ -169,7 +169,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibSearchNotebooksPluginApi" text="searchNotebooks"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Plugin to provide access to and rendering of python notebooks for use in the persistent developer console. | 6 | 0 | 6 | 0 | | <DocLink id="kibSearchPlaygroundPluginApi" text="searchPlayground"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 15 | 0 | 9 | 1 | | searchprofiler | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 0 | 0 | 0 | 0 | -| <DocLink id="kibSecurityPluginApi" text="security"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 410 | 0 | 200 | 2 | +| <DocLink id="kibSecurityPluginApi" text="security"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 404 | 0 | 200 | 2 | | <DocLink id="kibSecuritySolutionPluginApi" text="securitySolution"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 190 | 0 | 120 | 36 | | <DocLink id="kibSecuritySolutionEssPluginApi" text="securitySolutionEss"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | ESS customizations for Security Solution. | 6 | 0 | 6 | 0 | | <DocLink id="kibSecuritySolutionServerlessPluginApi" text="securitySolutionServerless"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Serverless customizations for security. | 7 | 0 | 7 | 0 | @@ -253,7 +253,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnCalculateAutoPluginApi" text="@kbn/calculate-auto"/> | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 10 | 0 | 10 | 0 | | <DocLink id="kibKbnCalculateWidthFromCharCountPluginApi" text="@kbn/calculate-width-from-char-count"/> | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 7 | 0 | 7 | 1 | | <DocLink id="kibKbnCasesComponentsPluginApi" text="@kbn/cases-components"/> | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 19 | 0 | 16 | 0 | -| <DocLink id="kibKbnCellActionsPluginApi" text="@kbn/cell-actions"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 62 | 1 | 44 | 3 | +| <DocLink id="kibKbnCellActionsPluginApi" text="@kbn/cell-actions"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 64 | 1 | 46 | 3 | | <DocLink id="kibKbnChartExpressionsCommonPluginApi" text="@kbn/chart-expressions-common"/> | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 23 | 0 | 19 | 0 | | <DocLink id="kibKbnChartIconsPluginApi" text="@kbn/chart-icons"/> | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 84 | 0 | 84 | 0 | | <DocLink id="kibKbnCiStatsCorePluginApi" text="@kbn/ci-stats-core"/> | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 7 | 0 | 2 | 0 | @@ -336,7 +336,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnCoreHttpBrowserMocksPluginApi" text="@kbn/core-http-browser-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 16 | 0 | | <DocLink id="kibKbnCoreHttpCommonPluginApi" text="@kbn/core-http-common"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 4 | 0 | | <DocLink id="kibKbnCoreHttpContextServerMocksPluginApi" text="@kbn/core-http-context-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 10 | 1 | 10 | 0 | -| <DocLink id="kibKbnCoreHttpRequestHandlerContextServerPluginApi" text="@kbn/core-http-request-handler-context-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 15 | 0 | 12 | 0 | +| <DocLink id="kibKbnCoreHttpRequestHandlerContextServerPluginApi" text="@kbn/core-http-request-handler-context-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 16 | 0 | 13 | 0 | | <DocLink id="kibKbnCoreHttpResourcesServerPluginApi" text="@kbn/core-http-resources-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 22 | 0 | 7 | 0 | | <DocLink id="kibKbnCoreHttpResourcesServerInternalPluginApi" text="@kbn/core-http-resources-server-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 3 | | <DocLink id="kibKbnCoreHttpResourcesServerMocksPluginApi" text="@kbn/core-http-resources-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | @@ -347,15 +347,15 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnCoreHttpServerMocksPluginApi" text="@kbn/core-http-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 44 | 0 | 43 | 0 | | <DocLink id="kibKbnCoreI18nBrowserPluginApi" text="@kbn/core-i18n-browser"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 2 | 0 | | <DocLink id="kibKbnCoreI18nBrowserMocksPluginApi" text="@kbn/core-i18n-browser-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | -| <DocLink id="kibKbnCoreI18nServerPluginApi" text="@kbn/core-i18n-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 1 | 0 | -| <DocLink id="kibKbnCoreI18nServerInternalPluginApi" text="@kbn/core-i18n-server-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 2 | -| <DocLink id="kibKbnCoreI18nServerMocksPluginApi" text="@kbn/core-i18n-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | +| <DocLink id="kibKbnCoreI18nServerPluginApi" text="@kbn/core-i18n-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 1 | 0 | +| <DocLink id="kibKbnCoreI18nServerInternalPluginApi" text="@kbn/core-i18n-server-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 10 | 0 | 10 | 2 | +| <DocLink id="kibKbnCoreI18nServerMocksPluginApi" text="@kbn/core-i18n-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | | <DocLink id="kibKbnCoreInjectedMetadataBrowserMocksPluginApi" text="@kbn/core-injected-metadata-browser-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | | <DocLink id="kibKbnCoreIntegrationsBrowserInternalPluginApi" text="@kbn/core-integrations-browser-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 2 | 0 | | <DocLink id="kibKbnCoreIntegrationsBrowserMocksPluginApi" text="@kbn/core-integrations-browser-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | -| <DocLink id="kibKbnCoreLifecycleBrowserPluginApi" text="@kbn/core-lifecycle-browser"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 34 | 0 | 0 | 0 | +| <DocLink id="kibKbnCoreLifecycleBrowserPluginApi" text="@kbn/core-lifecycle-browser"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 36 | 0 | 0 | 0 | | <DocLink id="kibKbnCoreLifecycleBrowserMocksPluginApi" text="@kbn/core-lifecycle-browser-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | -| <DocLink id="kibKbnCoreLifecycleServerPluginApi" text="@kbn/core-lifecycle-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 38 | 0 | 0 | 0 | +| <DocLink id="kibKbnCoreLifecycleServerPluginApi" text="@kbn/core-lifecycle-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 40 | 0 | 0 | 0 | | <DocLink id="kibKbnCoreLifecycleServerMocksPluginApi" text="@kbn/core-lifecycle-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 0 | | <DocLink id="kibKbnCoreLoggingBrowserMocksPluginApi" text="@kbn/core-logging-browser-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | | <DocLink id="kibKbnCoreLoggingCommonInternalPluginApi" text="@kbn/core-logging-common-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 38 | 0 | 31 | 0 | @@ -436,6 +436,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnCoreUsageDataServerPluginApi" text="@kbn/core-usage-data-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 155 | 0 | 144 | 0 | | <DocLink id="kibKbnCoreUsageDataServerInternalPluginApi" text="@kbn/core-usage-data-server-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 2 | | <DocLink id="kibKbnCoreUsageDataServerMocksPluginApi" text="@kbn/core-usage-data-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | +| <DocLink id="kibKbnCoreUserProfileBrowserPluginApi" text="@kbn/core-user-profile-browser"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 29 | 0 | 4 | 0 | +| <DocLink id="kibKbnCoreUserProfileBrowserInternalPluginApi" text="@kbn/core-user-profile-browser-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 0 | +| <DocLink id="kibKbnCoreUserProfileBrowserMocksPluginApi" text="@kbn/core-user-profile-browser-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | +| <DocLink id="kibKbnCoreUserProfileCommonPluginApi" text="@kbn/core-user-profile-common"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 18 | 0 | 0 | 0 | +| <DocLink id="kibKbnCoreUserProfileServerPluginApi" text="@kbn/core-user-profile-server"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 31 | 0 | 6 | 0 | +| <DocLink id="kibKbnCoreUserProfileServerInternalPluginApi" text="@kbn/core-user-profile-server-internal"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 15 | 0 | 15 | 0 | +| <DocLink id="kibKbnCoreUserProfileServerMocksPluginApi" text="@kbn/core-user-profile-server-mocks"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | | <DocLink id="kibKbnCoreUserSettingsServerPluginApi" text="@kbn/core-user-settings-server"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 6 | 0 | 6 | 0 | | <DocLink id="kibKbnCoreUserSettingsServerInternalPluginApi" text="@kbn/core-user-settings-server-internal"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 4 | 0 | 4 | 1 | | <DocLink id="kibKbnCoreUserSettingsServerMocksPluginApi" text="@kbn/core-user-settings-server-mocks"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 3 | 0 | 3 | 0 | @@ -454,7 +461,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnDeeplinksFleetPluginApi" text="@kbn/deeplinks-fleet"/> | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 3 | 0 | 3 | 0 | | <DocLink id="kibKbnDeeplinksManagementPluginApi" text="@kbn/deeplinks-management"/> | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 | | <DocLink id="kibKbnDeeplinksMlPluginApi" text="@kbn/deeplinks-ml"/> | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 3 | 0 | 3 | 0 | -| <DocLink id="kibKbnDeeplinksObservabilityPluginApi" text="@kbn/deeplinks-observability"/> | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 43 | 0 | 32 | 0 | +| <DocLink id="kibKbnDeeplinksObservabilityPluginApi" text="@kbn/deeplinks-observability"/> | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 44 | 0 | 32 | 0 | | <DocLink id="kibKbnDeeplinksSearchPluginApi" text="@kbn/deeplinks-search"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 16 | 0 | 16 | 0 | | <DocLink id="kibKbnDeeplinksSecurityPluginApi" text="@kbn/deeplinks-security"/> | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 5 | 0 | 5 | 0 | | <DocLink id="kibKbnDeeplinksSharedPluginApi" text="@kbn/deeplinks-shared"/> | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | @@ -473,7 +480,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnEbtToolsPluginApi" text="@kbn/ebt-tools"/> | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 27 | 0 | 19 | 0 | | <DocLink id="kibKbnEcsDataQualityDashboardPluginApi" text="@kbn/ecs-data-quality-dashboard"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 13 | 0 | 5 | 0 | | <DocLink id="kibKbnElasticAgentUtilsPluginApi" text="@kbn/elastic-agent-utils"/> | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 35 | 0 | 34 | 0 | -| <DocLink id="kibKbnElasticAssistantPluginApi" text="@kbn/elastic-assistant"/> | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 168 | 0 | 142 | 9 | +| <DocLink id="kibKbnElasticAssistantPluginApi" text="@kbn/elastic-assistant"/> | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 173 | 0 | 146 | 9 | | <DocLink id="kibKbnElasticAssistantCommonPluginApi" text="@kbn/elastic-assistant-common"/> | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 232 | 0 | 217 | 2 | | <DocLink id="kibKbnEsPluginApi" text="@kbn/es"/> | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 52 | 0 | 37 | 7 | | <DocLink id="kibKbnEsArchiverPluginApi" text="@kbn/es-archiver"/> | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 32 | 0 | 19 | 1 | @@ -612,14 +619,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnRuleDataUtilsPluginApi" text="@kbn/rule-data-utils"/> | [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 124 | 0 | 121 | 0 | | <DocLink id="kibKbnSavedObjectsSettingsPluginApi" text="@kbn/saved-objects-settings"/> | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | | <DocLink id="kibKbnSearchApiPanelsPluginApi" text="@kbn/search-api-panels"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 81 | 0 | 81 | 0 | -| <DocLink id="kibKbnSearchConnectorsPluginApi" text="@kbn/search-connectors"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 3216 | 0 | 3216 | 0 | +| <DocLink id="kibKbnSearchConnectorsPluginApi" text="@kbn/search-connectors"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 3647 | 0 | 3647 | 0 | | <DocLink id="kibKbnSearchErrorsPluginApi" text="@kbn/search-errors"/> | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 18 | 1 | 17 | 1 | | <DocLink id="kibKbnSearchIndexDocumentsPluginApi" text="@kbn/search-index-documents"/> | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 25 | 0 | 25 | 0 | | <DocLink id="kibKbnSearchResponseWarningsPluginApi" text="@kbn/search-response-warnings"/> | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 18 | 1 | | <DocLink id="kibKbnSecurityHardeningPluginApi" text="@kbn/security-hardening"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 7 | 0 | 7 | 0 | | <DocLink id="kibKbnSecurityPluginTypesCommonPluginApi" text="@kbn/security-plugin-types-common"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 83 | 0 | 36 | 0 | -| <DocLink id="kibKbnSecurityPluginTypesPublicPluginApi" text="@kbn/security-plugin-types-public"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 53 | 0 | 15 | 0 | -| <DocLink id="kibKbnSecurityPluginTypesServerPluginApi" text="@kbn/security-plugin-types-server"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 213 | 0 | 114 | 0 | +| <DocLink id="kibKbnSecurityPluginTypesPublicPluginApi" text="@kbn/security-plugin-types-public"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 39 | 0 | 14 | 0 | +| <DocLink id="kibKbnSecurityPluginTypesServerPluginApi" text="@kbn/security-plugin-types-server"/> | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 207 | 0 | 114 | 0 | | <DocLink id="kibKbnSecuritySolutionFeaturesPluginApi" text="@kbn/security-solution-features"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 14 | 0 | 14 | 6 | | <DocLink id="kibKbnSecuritySolutionNavigationPluginApi" text="@kbn/security-solution-navigation"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 54 | 0 | 49 | 0 | | <DocLink id="kibKbnSecuritySolutionSideNavPluginApi" text="@kbn/security-solution-side-nav"/> | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 29 | 0 | 23 | 0 | diff --git a/api_docs/presentation_panel.devdocs.json b/api_docs/presentation_panel.devdocs.json index d06b28a79955e..4b73956c37eea 100644 --- a/api_docs/presentation_panel.devdocs.json +++ b/api_docs/presentation_panel.devdocs.json @@ -33,15 +33,19 @@ "DefaultPresentationPanelApi", " = ", "DefaultPresentationPanelApi", - ", PropsType extends {} = {}>(props: ", + ", PropsType extends {} = {}>(props: Omit<", + "PresentationPanelInternalProps", + "<ApiType, PropsType>, \"Component\"> & { Component: ", { - "pluginId": "presentationPanel", - "scope": "public", - "docId": "kibPresentationPanelPluginApi", - "section": "def-public.PresentationPanelProps", - "text": "PresentationPanelProps" + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.MaybePromise", + "text": "MaybePromise" }, - "<ApiType, PropsType>) => JSX.Element" + "<", + "PanelCompatibleComponent", + "<ApiType, PropsType> | null>; } & { hidePanelChrome?: boolean | undefined; }) => JSX.Element" ], "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx", "deprecated": false, @@ -55,14 +59,19 @@ "label": "props", "description": [], "signature": [ + "Omit<", + "PresentationPanelInternalProps", + "<ApiType, PropsType>, \"Component\"> & { Component: ", { - "pluginId": "presentationPanel", - "scope": "public", - "docId": "kibPresentationPanelPluginApi", - "section": "def-public.PresentationPanelProps", - "text": "PresentationPanelProps" + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.MaybePromise", + "text": "MaybePromise" }, - "<ApiType, PropsType>" + "<", + "PanelCompatibleComponent", + "<ApiType, PropsType> | null>; } & { hidePanelChrome?: boolean | undefined; }" ], "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx", "deprecated": false, diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx index e99ee946fdae1..2d4f0ce97028f 100644 --- a/api_docs/presentation_panel.mdx +++ b/api_docs/presentation_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel title: "presentationPanel" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationPanel plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel'] --- import presentationPanelObj from './presentation_panel.devdocs.json'; diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index e907544ef2d2c..350efe202dc1e 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index ba21dbf7d65c9..32a937da36efc 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx index 1c623f816637c..f18b65eb3f139 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess'] --- import profilingDataAccessObj from './profiling_data_access.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index bd595ffcc5cfd..9b66a0a902fe6 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index bbfcbfed6b5df..4039eaf374bec 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 40f78d24a8e3a..c8a3d5bf83de9 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 84e1e4a0efb9c..84279f90caa97 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 6f69d632cdbe6..240b129d49061 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 5c608fb37bf75..f63c4d0830398 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index f831d1c3ba4c3..cb0a71a16832a 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index 0f19dc555d805..6bc1664e08ca6 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 9d65e49015861..9abd81d521943 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 7982c2fb6264c..e20b11c581980 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index ada34b7a9a651..51db951b86900 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 1ac4cb4c375ad..477b2474ffe25 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 292ada3f776b5..49bd6c36efc7b 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx index b37a360a7b4b3..8b6455cd8ecc6 100644 --- a/api_docs/search_connectors.mdx +++ b/api_docs/search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchConnectors title: "searchConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the searchConnectors plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors'] --- import searchConnectorsObj from './search_connectors.devdocs.json'; diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx index aa482f475883d..412ce5747540a 100644 --- a/api_docs/search_notebooks.mdx +++ b/api_docs/search_notebooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchNotebooks title: "searchNotebooks" image: https://source.unsplash.com/400x175/?github description: API docs for the searchNotebooks plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks'] --- import searchNotebooksObj from './search_notebooks.devdocs.json'; diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx index e2ddd029a7e6c..e77ff5eff30c6 100644 --- a/api_docs/search_playground.mdx +++ b/api_docs/search_playground.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchPlayground title: "searchPlayground" image: https://source.unsplash.com/400x175/?github description: API docs for the searchPlayground plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground'] --- import searchPlaygroundObj from './search_playground.devdocs.json'; diff --git a/api_docs/security.devdocs.json b/api_docs/security.devdocs.json index f1f066c68bcc3..8701dd84dad95 100644 --- a/api_docs/security.devdocs.json +++ b/api_docs/security.devdocs.json @@ -876,7 +876,7 @@ "description": [ "\nParameters for the bulk get API." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -892,7 +892,7 @@ "signature": [ "Set<string>" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -908,7 +908,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -924,7 +924,7 @@ "description": [ "\nParameters for the get user profile for the current user API." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -937,7 +937,7 @@ "description": [ "\nBy default, get API returns user information, but does not return any user data. The optional \"dataPath\"\nparameter can be used to return personal data for this user (within `kibana` namespace only)." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -953,7 +953,7 @@ "description": [ "\nParameters for the suggest API." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -966,7 +966,7 @@ "description": [ "\nQuery string used to match name-related fields in user profiles. The following fields are treated as\nname-related: username, full_name and email." ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -982,7 +982,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -998,7 +998,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_public/src/user_profile/user_profile_api_client.ts", + "path": "packages/core/user-profile/core-user-profile-browser/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -4416,7 +4416,7 @@ "description": [ "\nParameters for the bulk get API." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4432,7 +4432,7 @@ "signature": [ "Set<string>" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -4448,7 +4448,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -4464,7 +4464,7 @@ "description": [ "\nParameters for the get user profile for the current user API." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4487,7 +4487,7 @@ }, "<unknown, unknown, unknown, any>" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -4503,7 +4503,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -4519,7 +4519,7 @@ "description": [ "\nThe set of privileges that users associated with the suggested user profile should have for a specified space id." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4532,7 +4532,7 @@ "description": [ "\nThe id of the Kibana Space." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -4548,235 +4548,13 @@ "signature": [ "{ kibana: string[]; }" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } ], "initialIsOpen": false }, - { - "parentPluginId": "security", - "id": "def-server.UserProfileServiceStart", - "type": "Interface", - "tags": [], - "label": "UserProfileServiceStart", - "description": [ - "\nA set of methods to work with Kibana user profiles." - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "security", - "id": "def-server.UserProfileServiceStart.getCurrent", - "type": "Function", - "tags": [], - "label": "getCurrent", - "description": [ - "\nRetrieves a user profile for the current user extracted from the specified request. If the profile isn't available,\ne.g. for the anonymous users or users authenticated via authenticating proxies, the `null` value is returned." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ", L extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileLabels", - "text": "UserProfileLabels" - }, - ">(params: ", - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileWithSecurity", - "text": "UserProfileWithSecurity" - }, - "<D, L> | null>" - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "security", - "id": "def-server.UserProfileServiceStart.getCurrent.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Get current user profile operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" - } - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "security", - "id": "def-server.UserProfileServiceStart.bulkGet", - "type": "Function", - "tags": [], - "label": "bulkGet", - "description": [ - "\nRetrieves multiple user profiles by their identifiers." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(params: ", - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" - }, - "<D>[]>" - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "security", - "id": "def-server.UserProfileServiceStart.bulkGet.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Bulk get operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" - } - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "security", - "id": "def-server.UserProfileServiceStart.suggest", - "type": "Function", - "tags": [], - "label": "suggest", - "description": [ - "\nSuggests multiple user profiles by search criteria." - ], - "signature": [ - "<D extends ", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfileData", - "text": "UserProfileData" - }, - ">(params: ", - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileSuggestParams", - "text": "UserProfileSuggestParams" - }, - ") => Promise<", - { - "pluginId": "@kbn/security-plugin-types-common", - "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" - }, - "<D>[]>" - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "security", - "id": "def-server.UserProfileServiceStart.suggest.$1", - "type": "Object", - "tags": [], - "label": "params", - "description": [ - "Suggest operation parameters." - ], - "signature": [ - { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileSuggestParams", - "text": "UserProfileSuggestParams" - } - ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, { "parentPluginId": "security", "id": "def-server.UserProfileSuggestParams", @@ -4786,7 +4564,7 @@ "description": [ "\nParameters for the suggest API." ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4802,7 +4580,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -4818,7 +4596,7 @@ "signature": [ "{ uids: string[]; } | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -4834,7 +4612,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -4850,7 +4628,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false }, @@ -4865,15 +4643,15 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileRequiredPrivileges", + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileRequiredPrivileges", "text": "UserProfileRequiredPrivileges" }, " | undefined" ], - "path": "x-pack/packages/security/plugin_types_server/src/user_profile/user_profile_service.ts", + "path": "packages/core/user-profile/core-user-profile-server/src/service.ts", "deprecated": false, "trackAdoption": false } @@ -5379,6 +5157,29 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "security", + "id": "def-server.UserProfileServiceStart", + "type": "Type", + "tags": [], + "label": "UserProfileServiceStart", + "description": [ + "\nStart contract for Core's userProfile service.\n" + ], + "signature": [ + { + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" + } + ], + "path": "packages/core/user-profile/core-user-profile-server/src/contracts.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [], @@ -5630,11 +5431,11 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-server", - "scope": "server", - "docId": "kibKbnSecurityPluginTypesServerPluginApi", - "section": "def-server.UserProfileServiceStart", - "text": "UserProfileServiceStart" + "pluginId": "@kbn/core-user-profile-server", + "scope": "common", + "docId": "kibKbnCoreUserProfileServerPluginApi", + "section": "def-common.UserProfileService", + "text": "UserProfileService" } ], "path": "x-pack/packages/security/plugin_types_server/src/plugin.ts", @@ -6147,17 +5948,17 @@ }, "<D> extends ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileWithSecurity", "text": "UserProfileWithSecurity" }, "<D, ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileLabels", "text": "UserProfileLabels" }, @@ -6178,9 +5979,9 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfoWithSecurity", "text": "UserProfileUserInfoWithSecurity" }, @@ -7296,15 +7097,15 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfile", "text": "UserProfile" }, "<D>" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -7317,7 +7118,7 @@ "description": [ "\nUnique ID for of the user profile." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7330,7 +7131,7 @@ "description": [ "\nIndicates whether user profile is enabled or not." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7345,14 +7146,14 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfo", "text": "UserProfileUserInfo" } ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7368,7 +7169,7 @@ "signature": [ "{ [P in keyof D]?: D[P] | undefined; }" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -7384,7 +7185,7 @@ "description": [ "\nBasic user information returned in user profile." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -7397,7 +7198,7 @@ "description": [ "\nUsername of the user." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7413,7 +7214,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7429,7 +7230,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -7447,22 +7248,22 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfoWithSecurity", "text": "UserProfileUserInfoWithSecurity" }, " extends ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfo", "text": "UserProfileUserInfo" } ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -7478,7 +7279,7 @@ "signature": [ "readonly string[]" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7491,7 +7292,7 @@ "description": [ "\nName of the Elasticsearch security realm that was used to authenticate user." ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7507,7 +7308,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -7525,23 +7326,23 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileWithSecurity", "text": "UserProfileWithSecurity" }, "<D, L> extends ", { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfile", "text": "UserProfile" }, "<D>" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -7556,14 +7357,14 @@ ], "signature": [ { - "pluginId": "@kbn/security-plugin-types-common", + "pluginId": "@kbn/core-user-profile-common", "scope": "common", - "docId": "kibKbnSecurityPluginTypesCommonPluginApi", + "docId": "kibKbnCoreUserProfileCommonPluginApi", "section": "def-common.UserProfileUserInfoWithSecurity", "text": "UserProfileUserInfoWithSecurity" } ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false }, @@ -7579,7 +7380,7 @@ "signature": [ "L" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false } @@ -7722,7 +7523,7 @@ "signature": [ "{ [x: string]: unknown; }" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -7739,7 +7540,7 @@ "signature": [ "{ [x: string]: string; }" ], - "path": "x-pack/packages/security/plugin_types_common/src/user_profile/user_profile.ts", + "path": "packages/core/user-profile/core-user-profile-common/src/user_profile.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 4f0d5fd4388d3..5ad2f5d92e615 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 410 | 0 | 200 | 2 | +| 404 | 0 | 200 | 2 | ## Client diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 08c4470a54fea..70dadff0acc0d 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index 061742e193ded..e67450a646f1f 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss'] --- import securitySolutionEssObj from './security_solution_ess.devdocs.json'; diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx index f1753ca1300f7..6d8bc6d9b996a 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 7c2f658239003..fae98bb36b959 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.devdocs.json'; diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 654b23d3903ba..62df428dcb71b 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability'] --- import serverlessObservabilityObj from './serverless_observability.devdocs.json'; diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx index 3d6d2518ba545..77697c21cfc23 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch'] --- import serverlessSearchObj from './serverless_search.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index f138a283dbdd7..1101b1859ca36 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 8fa0e1986e4d8..957966d763f0f 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx index 1bde8b80968c0..aa59c59cd6212 100644 --- a/api_docs/slo.mdx +++ b/api_docs/slo.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/slo title: "slo" image: https://source.unsplash.com/400x175/?github description: API docs for the slo plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo'] --- import sloObj from './slo.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 6d8845b386af3..780d8f912ed51 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index 2d560031b8fee..ecb31fa9cc5b7 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index 2e34b1aaec17a..2859ba23e5bf4 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index ac9c5ce210674..85ec8c0cc92af 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 9f2244b89eaf4..0fc06f663982c 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 1c8662db8adb9..85a24008f79d1 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index a527034afef62..daf439d6a7c90 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index b7dbada2f98f8..7ec2cd68ac108 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index 36bd881cdde33..0a313525d1e98 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index 8da665e2fab5f..1b92916ee746a 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index edb2ccb6a752c..8eee4aadc928f 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.devdocs.json b/api_docs/timelines.devdocs.json index f243129f0709b..ee51489687f18 100644 --- a/api_docs/timelines.devdocs.json +++ b/api_docs/timelines.devdocs.json @@ -4717,7 +4717,7 @@ "section": "def-common.Direction", "text": "Direction" }, - "; esTypes?: string[] | undefined; type?: string | undefined; }[]; language: \"eql\"; fieldRequested: string[]; params?: any; id?: string | undefined; timerange?: { interval: string; from: string; to: string; } | undefined; defaultIndex?: string[] | undefined; runtimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; indexType?: string | undefined; entityType?: \"events\" | \"sessions\" | undefined; filterStatus?: \"open\" | \"closed\" | \"acknowledged\" | undefined; pagination?: Zod.objectInputType<{ activePage: Zod.ZodNumber; cursorStart: Zod.ZodOptional<Zod.ZodNumber>; querySize: Zod.ZodNumber; }, Zod.ZodTypeAny, \"passthrough\"> | undefined; filterQuery?: string | Record<string, any> | { range: Record<string, { format: string; gte: number; lte: number; }>; } | { query_string: { query: string; analyze_wildcard: boolean; }; } | { match: Record<string, { query: string; operator: string; zero_terms_query: string; }>; } | { term: Record<string, string>; } | { bool: { filter: {}[]; must: {}[]; must_not: {}[]; should: {}[]; }; } | undefined; eventCategoryField?: string | undefined; tiebreakerField?: string | undefined; timestampField?: string | undefined; size?: number | undefined; runTimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; }" + "; esTypes?: string[] | undefined; type?: string | undefined; }[]; language: \"eql\"; fieldRequested: string[]; params?: any; id?: string | undefined; timerange?: { interval: string; from: string; to: string; } | undefined; defaultIndex?: string[] | undefined; runtimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; indexType?: string | undefined; entityType?: \"events\" | \"sessions\" | undefined; filterStatus?: \"open\" | \"closed\" | \"acknowledged\" | undefined; pagination?: Zod.objectInputType<{ activePage: Zod.ZodNumber; cursorStart: Zod.ZodOptional<Zod.ZodNumber>; querySize: Zod.ZodNumber; }, Zod.ZodTypeAny, \"passthrough\"> | undefined; filterQuery?: string | Record<string, any> | { range: Record<string, { format: string; gte: number; lte: number; }>; } | { query_string: { query: string; analyze_wildcard: boolean; }; } | { match: Record<string, { query: string; operator: string; zero_terms_query: string; }>; } | { term: Record<string, string>; } | { bool: { filter: {}[]; should: {}[]; must: {}[]; must_not: {}[]; }; } | undefined; eventCategoryField?: string | undefined; tiebreakerField?: string | undefined; timestampField?: string | undefined; size?: number | undefined; runTimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; }" ], "path": "x-pack/plugins/timelines/common/api/search_strategy/timeline/eql.ts", "deprecated": false, @@ -4771,7 +4771,7 @@ "section": "def-common.TimelineEventsQueries", "text": "TimelineEventsQueries" }, - ".details; eventId: string; params?: any; id?: string | undefined; timerange?: { interval: string; from: string; to: string; } | undefined; defaultIndex?: string[] | undefined; filterQuery?: string | Record<string, any> | { range: Record<string, { format: string; gte: number; lte: number; }>; } | { query_string: { query: string; analyze_wildcard: boolean; }; } | { match: Record<string, { query: string; operator: string; zero_terms_query: string; }>; } | { term: Record<string, string>; } | { bool: { filter: {}[]; must: {}[]; must_not: {}[]; should: {}[]; }; } | undefined; indexType?: string | undefined; entityType?: \"events\" | \"sessions\" | undefined; filterStatus?: \"open\" | \"closed\" | \"acknowledged\" | undefined; pagination?: Zod.objectInputType<{ activePage: Zod.ZodNumber; cursorStart: Zod.ZodOptional<Zod.ZodNumber>; querySize: Zod.ZodNumber; }, Zod.ZodTypeAny, \"passthrough\"> | undefined; authFilter?: {} | undefined; runtimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; }" + ".details; eventId: string; params?: any; id?: string | undefined; timerange?: { interval: string; from: string; to: string; } | undefined; defaultIndex?: string[] | undefined; filterQuery?: string | Record<string, any> | { range: Record<string, { format: string; gte: number; lte: number; }>; } | { query_string: { query: string; analyze_wildcard: boolean; }; } | { match: Record<string, { query: string; operator: string; zero_terms_query: string; }>; } | { term: Record<string, string>; } | { bool: { filter: {}[]; should: {}[]; must: {}[]; must_not: {}[]; }; } | undefined; indexType?: string | undefined; entityType?: \"events\" | \"sessions\" | undefined; filterStatus?: \"open\" | \"closed\" | \"acknowledged\" | undefined; pagination?: Zod.objectInputType<{ activePage: Zod.ZodNumber; cursorStart: Zod.ZodOptional<Zod.ZodNumber>; querySize: Zod.ZodNumber; }, Zod.ZodTypeAny, \"passthrough\"> | undefined; authFilter?: {} | undefined; runtimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; }" ], "path": "x-pack/plugins/timelines/common/api/search_strategy/timeline/events_details.ts", "deprecated": false, @@ -4825,7 +4825,7 @@ "section": "def-common.TimelineEventsQueries", "text": "TimelineEventsQueries" }, - ".kpi; params?: any; id?: string | undefined; timerange?: { interval: string; from: string; to: string; } | undefined; defaultIndex?: string[] | undefined; runtimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; filterQuery?: string | Record<string, any> | { range: Record<string, { format: string; gte: number; lte: number; }>; } | { query_string: { query: string; analyze_wildcard: boolean; }; } | { match: Record<string, { query: string; operator: string; zero_terms_query: string; }>; } | { term: Record<string, string>; } | { bool: { filter: {}[]; must: {}[]; must_not: {}[]; should: {}[]; }; } | undefined; indexType?: string | undefined; entityType?: \"events\" | \"sessions\" | undefined; filterStatus?: \"open\" | \"closed\" | \"acknowledged\" | undefined; }" + ".kpi; params?: any; id?: string | undefined; timerange?: { interval: string; from: string; to: string; } | undefined; defaultIndex?: string[] | undefined; runtimeMappings?: Record<string, { type: \"boolean\" | \"geo_point\" | \"ip\" | \"keyword\" | \"date\" | \"long\" | \"double\" | \"lookup\"; script?: string | { source: string; } | { params: Record<string, any>; id: string; } | undefined; fetch_fields?: string[] | undefined; format?: string | undefined; input_field?: string | undefined; target_field?: string | undefined; target_index?: string | undefined; }> | undefined; filterQuery?: string | Record<string, any> | { range: Record<string, { format: string; gte: number; lte: number; }>; } | { query_string: { query: string; analyze_wildcard: boolean; }; } | { match: Record<string, { query: string; operator: string; zero_terms_query: string; }>; } | { term: Record<string, string>; } | { bool: { filter: {}[]; should: {}[]; must: {}[]; must_not: {}[]; }; } | undefined; indexType?: string | undefined; entityType?: \"events\" | \"sessions\" | undefined; filterStatus?: \"open\" | \"closed\" | \"acknowledged\" | undefined; }" ], "path": "x-pack/plugins/timelines/common/api/search_strategy/timeline/kpi.ts", "deprecated": false, diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 20b5ee70fc0f9..a861b561cebf8 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 8cd0e82168679..e0514375fc88a 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index be1ab03249546..3d1e657cbafec 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index d32e6b85bc089..304b720083fbc 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 507f3a13a40f9..bf59c940bef54 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx index e13592db995f1..47f2ecd11572b 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index 12e282b63b639..a01484a4e4ba0 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index c8040b51e819e..266e19a6050f2 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index e9863492dcab2..9ffe1e2608b15 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index fd740fbc46b9d..f890875bf6cbb 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime'] --- import uptimeObj from './uptime.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 3ff967b9b9761..2c34cca5ac254 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index a3e26e9788d26..c25ad0a19b499 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 019cbb76bfe78..cac0851535dd8 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 715cd40f9871c..73af6e2544451 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index b3c72708227c6..48e611533a092 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index f544db74a3b14..964fb5e8e421b 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index c6bd7dc9df1af..09f1339fbc3fe 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index d8907d1c8fae7..91c668cd5f152 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 91ba8f336060f..ed7485e8e2945 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index 37d613a330bc1..a1b4e24760fbc 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index fa826b2aba4f4..c440bc9a5d448 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index f60dc022cff08..fb806b88e3a67 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index 1241ee6d1465a..12f6a28b38f83 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 27d359281b6ae..4c75e553f4525 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2024-04-24 +date: 2024-04-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 4dcc3c985f05d3088d5566e78f52f835f962b029 Mon Sep 17 00:00:00 2001 From: Gloria Hornero <gloria.hornero@elastic.co> Date: Thu, 25 Apr 2024 07:43:12 +0200 Subject: [PATCH 181/183] [Security Solution] Skips failing test in MKI environment (#181611) ## Summary In this PR we are skipping a test that is failing in the [periodic pipeline](https://buildkite.com/elastic/kibana-serverless-security-solution-quality-gate-entity-analytics/builds/31#018f0fd0-abae-4e8d-8caf-8f791f1e763c). Note that this test is going to continue being executed as part of the PR serverless check using the stateless ELS. --- .../dashboards/entity_analytics/new_risk_score.cy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/dashboards/entity_analytics/new_risk_score.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/dashboards/entity_analytics/new_risk_score.cy.ts index 75cea0b4af36a..894248f9ff716 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/dashboards/entity_analytics/new_risk_score.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/dashboards/entity_analytics/new_risk_score.cy.ts @@ -79,7 +79,7 @@ describe('Entity Analytics Dashboard', { tags: ['@ess', '@serverless'] }, () => }); // https://github.com/elastic/kibana/issues/179687 - describe('When risk engine is enabled', () => { + describe('When risk engine is enabled', { tags: ['@skipInServerlessMKI'] }, () => { beforeEach(() => { login(); mockRiskEngineEnabled(); From b3f7c5cf0d60d774cd60d105c747571583ffc523 Mon Sep 17 00:00:00 2001 From: Janki Salvi <117571355+js-jankisalvi@users.noreply.github.com> Date: Thu, 25 Apr 2024 08:40:58 +0200 Subject: [PATCH 182/183] [Cases] Update IBM resilient connector to use sub action framework (#180561) ## Summary Fixes https://github.com/elastic/response-ops-team/issues/186 This PR updates IBM resilient connector to use CaseConnector of sub action framework. ### Steps to verify Expectation: IBM connector should work as before in all below scenarios: - Create an IBM resilient connector - Test the connector - Create an alert and use this connector as action - Use this connector in Cases ### Flaky test runner https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5667 ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [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 - [x] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../connector_types.test.ts.snap | 943 +++++++----------- .../mocks/connector_types.ts | 2 +- .../server/connector_types/index.ts | 6 +- .../connector_types/resilient/api.test.ts | 214 ---- .../server/connector_types/resilient/api.ts | 85 -- .../connector_types/resilient/constants.ts | 14 + .../server/connector_types/resilient/index.ts | 165 +-- .../server/connector_types/resilient/mocks.ts | 383 +------ .../resilient/resilient.test.ts | 587 +++++++++++ .../connector_types/resilient/resilient.ts | 331 ++++++ .../connector_types/resilient/schema.ts | 87 +- .../connector_types/resilient/service.test.ts | 714 ------------- .../connector_types/resilient/service.ts | 364 ------- .../connector_types/resilient/translations.ts | 11 + .../server/connector_types/resilient/types.ts | 143 +-- .../connector_types/resilient/utils.test.ts | 106 ++ .../server/connector_types/resilient/utils.ts | 75 ++ .../connector_types/resilient/validators.ts | 37 - .../stack_connectors/server/plugin.test.ts | 20 +- .../plugins/stack_connectors/server/types.ts | 2 - .../actions/connector_types/resilient.ts | 5 +- .../server/resilient_simulation.ts | 50 + .../actions/connector_types/resilient.ts | 185 ++-- 23 files changed, 1803 insertions(+), 2726 deletions(-) delete mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/api.test.ts delete mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/api.ts create mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/constants.ts create mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.test.ts create mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.ts delete mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/service.test.ts delete mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/service.ts create mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.test.ts create mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.ts delete mode 100644 x-pack/plugins/stack_connectors/server/connector_types/resilient/validators.ts diff --git a/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap b/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap index ffe337fdcde4d..e16eb6d24a12e 100644 --- a/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap +++ b/x-pack/plugins/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap @@ -6077,111 +6077,72 @@ Object { "presence": "optional", }, "keys": Object { - "apiUrl": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ - Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - "orgId": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ - Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, - }, - "type": "object", -} -`; - -exports[`Connector type config checks detect connector type changes for: .resilient 2`] = ` -Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", - }, - "keys": Object { - "apiKeyId": Object { + "comments": Object { "flags": Object { + "default": null, "error": [Function], + "presence": "optional", }, - "rules": Array [ + "matches": Array [ Object { - "args": Object { - "method": [Function], + "schema": Object { + "flags": Object { + "error": [Function], + }, + "items": Array [ + Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + }, + "keys": Object { + "comment": Object { + "flags": Object { + "error": [Function], + }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], + }, + "name": "custom", + }, + ], + "type": "string", + }, + "commentId": Object { + "flags": Object { + "error": [Function], + }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], + }, + "name": "custom", + }, + ], + "type": "string", + }, + }, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", + }, + ], + "type": "array", }, - "name": "custom", }, - ], - "type": "string", - }, - "apiKeySecret": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, - }, - "type": "object", -} -`; - -exports[`Connector type config checks detect connector type changes for: .resilient 3`] = ` -Object { - "flags": Object { - "error": [Function], - }, - "matches": Array [ - Object { - "schema": Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", - }, - "keys": Object { - "subAction": Object { + "schema": Object { "allow": Array [ - "getFields", + null, ], "flags": Object { "error": [Function], @@ -6189,61 +6150,28 @@ Object { }, "type": "any", }, - "subActionParams": Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", - }, - "keys": Object {}, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, - }, - "type": "object", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, }, - "type": "object", - }, + ], + "type": "alternatives", }, - Object { - "schema": Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", + "incident": Object { + "flags": Object { + "default": Object { + "special": "deep", }, - "keys": Object { - "subAction": Object { - "allow": Array [ - "getIncident", - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", + "error": [Function], + "presence": "optional", + }, + "keys": Object { + "description": Object { + "flags": Object { + "default": null, + "error": [Function], + "presence": "optional", }, - "subActionParams": Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", - }, - "keys": Object { - "externalId": Object { + "matches": Array [ + Object { + "schema": Object { "flags": Object { "error": [Function], }, @@ -6258,458 +6186,361 @@ Object { "type": "string", }, }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, + Object { + "schema": Object { + "allow": Array [ + null, + ], + "flags": Object { + "error": [Function], + "only": true, + }, + "type": "any", }, }, - "type": "object", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, + ], + "type": "alternatives", }, - "type": "object", - }, - }, - Object { - "schema": Object { - "flags": Object { - "default": Object { - "special": "deep", + "externalId": Object { + "flags": Object { + "default": null, + "error": [Function], + "presence": "optional", }, - "error": [Function], - "presence": "optional", - }, - "keys": Object { - "subAction": Object { - "allow": Array [ - "handshake", - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", - }, - "subActionParams": Object { - "flags": Object { - "default": Object { - "special": "deep", + "matches": Array [ + Object { + "schema": Object { + "flags": Object { + "error": [Function], + }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], + }, + "name": "custom", + }, + ], + "type": "string", }, - "error": [Function], - "presence": "optional", }, - "keys": Object {}, - "preferences": Object { - "stripUnknown": Object { - "objects": false, + Object { + "schema": Object { + "allow": Array [ + null, + ], + "flags": Object { + "error": [Function], + "only": true, + }, + "type": "any", }, }, - "type": "object", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, - }, - "type": "object", - }, - }, - Object { - "schema": Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", + ], + "type": "alternatives", }, - "keys": Object { - "subAction": Object { - "allow": Array [ - "pushToService", - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", + "incidentTypes": Object { + "flags": Object { + "default": null, + "error": [Function], + "presence": "optional", }, - "subActionParams": Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", - }, - "keys": Object { - "comments": Object { + "matches": Array [ + Object { + "schema": Object { "flags": Object { - "default": null, "error": [Function], - "presence": "optional", }, - "matches": Array [ - Object { - "schema": Object { - "flags": Object { - "error": [Function], - }, - "items": Array [ - Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", - }, - "keys": Object { - "comment": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ - Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - "commentId": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ - Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, - }, - "type": "object", - }, - ], - "type": "array", - }, - }, + "items": Array [ Object { - "schema": Object { - "allow": Array [ - null, - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", + "flags": Object { + "error": [Function], + "presence": "optional", }, + "type": "number", }, ], - "type": "alternatives", + "type": "array", }, - "incident": Object { + }, + Object { + "schema": Object { + "allow": Array [ + null, + ], "flags": Object { - "default": Object { - "special": "deep", - }, "error": [Function], - "presence": "optional", + "only": true, }, - "keys": Object { - "description": Object { - "flags": Object { - "default": null, - "error": [Function], - "presence": "optional", - }, - "matches": Array [ - Object { - "schema": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ - Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - }, - Object { - "schema": Object { - "allow": Array [ - null, - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", - }, - }, - ], - "type": "alternatives", - }, - "externalId": Object { - "flags": Object { - "default": null, - "error": [Function], - "presence": "optional", - }, - "matches": Array [ - Object { - "schema": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ - Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - }, - Object { - "schema": Object { - "allow": Array [ - null, - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", - }, - }, - ], - "type": "alternatives", - }, - "incidentTypes": Object { - "flags": Object { - "default": null, - "error": [Function], - "presence": "optional", - }, - "matches": Array [ - Object { - "schema": Object { - "flags": Object { - "error": [Function], - }, - "items": Array [ - Object { - "flags": Object { - "error": [Function], - "presence": "optional", - }, - "type": "number", - }, - ], - "type": "array", - }, - }, - Object { - "schema": Object { - "allow": Array [ - null, - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", - }, - }, - ], - "type": "alternatives", - }, - "name": Object { - "flags": Object { - "error": [Function], - }, - "rules": Array [ - Object { - "args": Object { - "method": [Function], - }, - "name": "custom", - }, - ], - "type": "string", - }, - "severityCode": Object { - "flags": Object { - "default": null, - "error": [Function], - "presence": "optional", - }, - "matches": Array [ - Object { - "schema": Object { - "flags": Object { - "error": [Function], - }, - "type": "number", - }, - }, - Object { - "schema": Object { - "allow": Array [ - null, - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", - }, - }, - ], - "type": "alternatives", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, - }, - "type": "object", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, + "type": "any", }, }, - "type": "object", - }, - }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, + ], + "type": "alternatives", }, - "type": "object", - }, - }, - Object { - "schema": Object { - "flags": Object { - "default": Object { - "special": "deep", + "name": Object { + "flags": Object { + "error": [Function], }, - "error": [Function], - "presence": "optional", - }, - "keys": Object { - "subAction": Object { - "allow": Array [ - "incidentTypes", - ], - "flags": Object { - "error": [Function], - "only": true, + "rules": Array [ + Object { + "args": Object { + "method": [Function], + }, + "name": "custom", }, - "type": "any", + ], + "type": "string", + }, + "severityCode": Object { + "flags": Object { + "default": null, + "error": [Function], + "presence": "optional", }, - "subActionParams": Object { - "flags": Object { - "default": Object { - "special": "deep", + "matches": Array [ + Object { + "schema": Object { + "flags": Object { + "error": [Function], + }, + "type": "number", }, - "error": [Function], - "presence": "optional", }, - "keys": Object {}, - "preferences": Object { - "stripUnknown": Object { - "objects": false, + Object { + "schema": Object { + "allow": Array [ + null, + ], + "flags": Object { + "error": [Function], + "only": true, + }, + "type": "any", }, }, - "type": "object", - }, + ], + "type": "alternatives", }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, + }, + "preferences": Object { + "stripUnknown": Object { + "objects": false, }, - "type": "object", }, + "type": "object", }, - Object { - "schema": Object { - "flags": Object { - "default": Object { - "special": "deep", + }, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", +} +`; + +exports[`Connector type config checks detect connector type changes for: .resilient 2`] = ` +Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + }, + "keys": Object {}, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", +} +`; + +exports[`Connector type config checks detect connector type changes for: .resilient 3`] = ` +Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + }, + "keys": Object {}, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", +} +`; + +exports[`Connector type config checks detect connector type changes for: .resilient 4`] = ` +Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + }, + "keys": Object {}, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", +} +`; + +exports[`Connector type config checks detect connector type changes for: .resilient 5`] = ` +Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + }, + "keys": Object { + "apiUrl": Object { + "flags": Object { + "error": [Function], + }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], }, - "error": [Function], - "presence": "optional", + "name": "custom", }, - "keys": Object { - "subAction": Object { - "allow": Array [ - "severity", - ], - "flags": Object { - "error": [Function], - "only": true, - }, - "type": "any", + ], + "type": "string", + }, + "orgId": Object { + "flags": Object { + "error": [Function], + }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], }, - "subActionParams": Object { - "flags": Object { - "default": Object { - "special": "deep", - }, - "error": [Function], - "presence": "optional", - }, - "keys": Object {}, - "preferences": Object { - "stripUnknown": Object { - "objects": false, - }, - }, - "type": "object", + "name": "custom", + }, + ], + "type": "string", + }, + }, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", +} +`; + +exports[`Connector type config checks detect connector type changes for: .resilient 6`] = ` +Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + }, + "keys": Object { + "apiKeyId": Object { + "flags": Object { + "error": [Function], + }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], }, + "name": "custom", }, - "preferences": Object { - "stripUnknown": Object { - "objects": false, + ], + "type": "string", + }, + "apiKeySecret": Object { + "flags": Object { + "error": [Function], + }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], }, + "name": "custom", }, - "type": "object", + ], + "type": "string", + }, + }, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", +} +`; + +exports[`Connector type config checks detect connector type changes for: .resilient 7`] = ` +Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + }, + "keys": Object { + "subAction": Object { + "flags": Object { + "error": [Function], }, + "rules": Array [ + Object { + "args": Object { + "method": [Function], + }, + "name": "custom", + }, + ], + "type": "string", }, - ], - "type": "alternatives", + "subActionParams": Object { + "flags": Object { + "default": Object { + "special": "deep", + }, + "error": [Function], + "presence": "optional", + "unknown": true, + }, + "keys": Object {}, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", + }, + }, + "preferences": Object { + "stripUnknown": Object { + "objects": false, + }, + }, + "type": "object", } `; diff --git a/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts b/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts index 2886aa1babcef..d90756d1bb594 100644 --- a/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts +++ b/x-pack/plugins/actions/server/integration_tests/mocks/connector_types.ts @@ -20,7 +20,6 @@ export const connectorTypes: string[] = [ '.servicenow-sir', '.servicenow-itom', '.jira', - '.resilient', '.teams', '.torq', '.opsgenie', @@ -28,6 +27,7 @@ export const connectorTypes: string[] = [ '.gen-ai', '.bedrock', '.d3security', + '.resilient', '.sentinelone', '.cases', '.observability-ai-assistant', diff --git a/x-pack/plugins/stack_connectors/server/connector_types/index.ts b/x-pack/plugins/stack_connectors/server/connector_types/index.ts index 232a5034d8c21..992a76556272b 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/index.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/index.ts @@ -9,11 +9,11 @@ import { PluginSetupContract as ActionsPluginSetupContract } from '@kbn/actions- import { getConnectorType as getCasesWebhookConnectorType } from './cases_webhook'; import { getConnectorType as getJiraConnectorType } from './jira'; -import { getConnectorType as getResilientConnectorType } from './resilient'; import { getServiceNowITSMConnectorType } from './servicenow_itsm'; import { getServiceNowSIRConnectorType } from './servicenow_sir'; import { getServiceNowITOMConnectorType } from './servicenow_itom'; import { getTinesConnectorType } from './tines'; +import { getResilientConnectorType } from './resilient'; import { getActionType as getTorqConnectorType } from './torq'; import { getConnectorType as getEmailConnectorType } from './email'; import { getConnectorType as getIndexConnectorType } from './es_index'; @@ -39,8 +39,6 @@ export { ConnectorTypeId as CasesWebhookConnectorTypeId } from './cases_webhook' export type { ActionParamsType as CasesWebhookActionParams } from './cases_webhook'; export { ConnectorTypeId as JiraConnectorTypeId } from './jira'; export type { ActionParamsType as JiraActionParams } from './jira'; -export { ConnectorTypeId as ResilientConnectorTypeId } from './resilient'; -export type { ActionParamsType as ResilientActionParams } from './resilient'; export { ServiceNowITSMConnectorTypeId } from './servicenow_itsm'; export { ServiceNowSIRConnectorTypeId } from './servicenow_sir'; export { ConnectorTypeId as EmailConnectorTypeId } from './email'; @@ -100,7 +98,6 @@ export function registerConnectorTypes({ actions.registerType(getServiceNowSIRConnectorType()); actions.registerType(getServiceNowITOMConnectorType()); actions.registerType(getJiraConnectorType()); - actions.registerType(getResilientConnectorType()); actions.registerType(getTeamsConnectorType()); actions.registerType(getTorqConnectorType()); @@ -109,6 +106,7 @@ export function registerConnectorTypes({ actions.registerSubActionConnectorType(getOpenAIConnectorType()); actions.registerSubActionConnectorType(getBedrockConnectorType()); actions.registerSubActionConnectorType(getD3SecurityConnectorType()); + actions.registerSubActionConnectorType(getResilientConnectorType()); if (experimentalFeatures.sentinelOneConnectorOn) { actions.registerSubActionConnectorType(getSentinelOneConnectorType()); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/api.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/api.test.ts deleted file mode 100644 index c92148b26319a..0000000000000 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/api.test.ts +++ /dev/null @@ -1,214 +0,0 @@ -/* - * 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 { Logger } from '@kbn/core/server'; -import { api } from './api'; -import { externalServiceMock, apiParams } from './mocks'; -import { ExternalService } from './types'; - -let mockedLogger: jest.Mocked<Logger>; - -describe('api', () => { - let externalService: jest.Mocked<ExternalService>; - - beforeEach(() => { - externalService = externalServiceMock.create(); - }); - - afterEach(() => { - jest.clearAllMocks(); - }); - - describe('pushToService', () => { - describe('create incident', () => { - test('it creates an incident', async () => { - const params = { ...apiParams, externalId: null }; - const res = await api.pushToService({ - externalService, - params, - logger: mockedLogger, - }); - - expect(res).toEqual({ - id: '1', - title: '1', - pushedDate: '2020-06-03T15:09:13.606Z', - url: 'https://resilient.elastic.co/#incidents/1', - comments: [ - { - commentId: 'case-comment-1', - pushedDate: '2020-06-03T15:09:13.606Z', - }, - { - commentId: 'case-comment-2', - pushedDate: '2020-06-03T15:09:13.606Z', - }, - ], - }); - }); - - test('it creates an incident without comments', async () => { - const params = { ...apiParams, externalId: null, comments: [] }; - const res = await api.pushToService({ - externalService, - params, - logger: mockedLogger, - }); - - expect(res).toEqual({ - id: '1', - title: '1', - pushedDate: '2020-06-03T15:09:13.606Z', - url: 'https://resilient.elastic.co/#incidents/1', - }); - }); - - test('it calls createIncident correctly', async () => { - const params = { ...apiParams, incident: { ...apiParams.incident, externalId: null } }; - await api.pushToService({ externalService, params, logger: mockedLogger }); - - expect(externalService.createIncident).toHaveBeenCalledWith({ - incident: { - incidentTypes: [1001], - severityCode: 6, - description: 'Incident description', - name: 'Incident title', - }, - }); - expect(externalService.updateIncident).not.toHaveBeenCalled(); - }); - - test('it calls createComment correctly', async () => { - const params = { ...apiParams, externalId: null }; - await api.pushToService({ externalService, params, logger: mockedLogger }); - expect(externalService.createComment).toHaveBeenCalledTimes(2); - expect(externalService.createComment).toHaveBeenNthCalledWith(1, { - incidentId: '1', - comment: { - commentId: 'case-comment-1', - comment: 'A comment', - }, - }); - - expect(externalService.createComment).toHaveBeenNthCalledWith(2, { - incidentId: '1', - comment: { - commentId: 'case-comment-2', - comment: 'Another comment', - }, - }); - }); - }); - - describe('update incident', () => { - test('it updates an incident', async () => { - const res = await api.pushToService({ - externalService, - params: apiParams, - logger: mockedLogger, - }); - - expect(res).toEqual({ - id: '1', - title: '1', - pushedDate: '2020-06-03T15:09:13.606Z', - url: 'https://resilient.elastic.co/#incidents/1', - comments: [ - { - commentId: 'case-comment-1', - pushedDate: '2020-06-03T15:09:13.606Z', - }, - { - commentId: 'case-comment-2', - pushedDate: '2020-06-03T15:09:13.606Z', - }, - ], - }); - }); - - test('it updates an incident without comments', async () => { - const params = { ...apiParams, comments: [] }; - const res = await api.pushToService({ - externalService, - params, - logger: mockedLogger, - }); - - expect(res).toEqual({ - id: '1', - title: '1', - pushedDate: '2020-06-03T15:09:13.606Z', - url: 'https://resilient.elastic.co/#incidents/1', - }); - }); - - test('it calls updateIncident correctly', async () => { - const params = { ...apiParams }; - await api.pushToService({ externalService, params, logger: mockedLogger }); - - expect(externalService.updateIncident).toHaveBeenCalledWith({ - incidentId: 'incident-3', - incident: { - incidentTypes: [1001], - severityCode: 6, - description: 'Incident description', - name: 'Incident title', - }, - }); - expect(externalService.createIncident).not.toHaveBeenCalled(); - }); - - test('it calls createComment correctly', async () => { - const params = { ...apiParams }; - await api.pushToService({ externalService, params, logger: mockedLogger }); - expect(externalService.createComment).toHaveBeenCalledTimes(2); - expect(externalService.createComment).toHaveBeenNthCalledWith(1, { - incidentId: '1', - comment: { - commentId: 'case-comment-1', - comment: 'A comment', - }, - }); - - expect(externalService.createComment).toHaveBeenNthCalledWith(2, { - incidentId: '1', - comment: { - commentId: 'case-comment-2', - comment: 'Another comment', - }, - }); - }); - }); - - describe('incidentTypes', () => { - test('it returns the incident types correctly', async () => { - const res = await api.incidentTypes({ - externalService, - params: {}, - }); - expect(res).toEqual([ - { id: 17, name: 'Communication error (fax; email)' }, - { id: 1001, name: 'Custom type' }, - ]); - }); - }); - - describe('severity', () => { - test('it returns the severity correctly', async () => { - const res = await api.severity({ - externalService, - params: { id: '10006' }, - }); - expect(res).toEqual([ - { id: 4, name: 'Low' }, - { id: 5, name: 'Medium' }, - { id: 6, name: 'High' }, - ]); - }); - }); - }); -}); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/api.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/api.ts deleted file mode 100644 index da7147b21d0fd..0000000000000 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/api.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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 { - PushToServiceApiHandlerArgs, - HandshakeApiHandlerArgs, - GetIncidentApiHandlerArgs, - ExternalServiceApi, - Incident, - GetIncidentTypesHandlerArgs, - GetSeverityHandlerArgs, - PushToServiceResponse, - GetCommonFieldsHandlerArgs, -} from './types'; - -const handshakeHandler = async ({ externalService, params }: HandshakeApiHandlerArgs) => {}; - -const getIncidentHandler = async ({ externalService, params }: GetIncidentApiHandlerArgs) => {}; - -const getFieldsHandler = async ({ externalService }: GetCommonFieldsHandlerArgs) => { - const res = await externalService.getFields(); - return res; -}; -const getIncidentTypesHandler = async ({ externalService }: GetIncidentTypesHandlerArgs) => { - const res = await externalService.getIncidentTypes(); - return res; -}; - -const getSeverityHandler = async ({ externalService }: GetSeverityHandlerArgs) => { - const res = await externalService.getSeverity(); - return res; -}; - -const pushToServiceHandler = async ({ - externalService, - params, -}: PushToServiceApiHandlerArgs): Promise<PushToServiceResponse> => { - const { comments } = params; - let res: PushToServiceResponse; - const { externalId, ...rest } = params.incident; - const incident: Incident = rest; - - if (externalId != null) { - res = await externalService.updateIncident({ - incidentId: externalId, - incident, - }); - } else { - res = await externalService.createIncident({ - incident, - }); - } - - if (comments && Array.isArray(comments) && comments.length > 0) { - res.comments = []; - for (const currentComment of comments) { - const comment = await externalService.createComment({ - incidentId: res.id, - comment: currentComment, - }); - res.comments = [ - ...(res.comments ?? []), - { - commentId: comment.commentId, - pushedDate: comment.pushedDate, - }, - ]; - } - } - - return res; -}; - -export const api: ExternalServiceApi = { - getFields: getFieldsHandler, - getIncident: getIncidentHandler, - handshake: handshakeHandler, - incidentTypes: getIncidentTypesHandler, - pushToService: pushToServiceHandler, - severity: getSeverityHandler, -}; diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/constants.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/constants.ts new file mode 100644 index 0000000000000..6558397027963 --- /dev/null +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/constants.ts @@ -0,0 +1,14 @@ +/* + * 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 const RESILIENT_CONNECTOR_ID = '.resilient'; + +export enum SUB_ACTION { + FIELDS = 'getFields', + SEVERITY = 'severity', + INCIDENT_TYPES = 'incidentTypes', +} diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/index.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/index.ts index 7ef85b84bfb86..141ee9e64ba8a 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/index.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/index.ts @@ -5,144 +5,43 @@ * 2.0. */ -import { TypeOf } from '@kbn/config-schema'; - -import type { - ActionType as ConnectorType, - ActionTypeExecutorOptions as ConnectorTypeExecutorOptions, - ActionTypeExecutorResult as ConnectorTypeExecutorResult, -} from '@kbn/actions-plugin/server/types'; +import { + SubActionConnectorType, + ValidatorType, +} from '@kbn/actions-plugin/server/sub_action_framework/types'; import { AlertingConnectorFeatureId, CasesConnectorFeatureId, SecurityConnectorFeatureId, -} from '@kbn/actions-plugin/common/types'; -import { validate } from './validators'; +} from '@kbn/actions-plugin/common'; +import { urlAllowListValidator } from '@kbn/actions-plugin/server'; + +import { ResilientConfig, ResilientSecrets } from './types'; +import { RESILIENT_CONNECTOR_ID } from './constants'; +import * as i18n from './translations'; import { ExternalIncidentServiceConfigurationSchema, ExternalIncidentServiceSecretConfigurationSchema, - ExecutorParamsSchema, + PushToServiceIncidentSchema, } from './schema'; -import { createExternalService } from './service'; -import { api } from './api'; -import { - ExecutorParams, - ExecutorSubActionPushParams, - ResilientPublicConfigurationType, - ResilientSecretConfigurationType, - ResilientExecutorResultData, - ExecutorSubActionGetIncidentTypesParams, - ExecutorSubActionGetSeverityParams, - ExecutorSubActionCommonFieldsParams, -} from './types'; -import * as i18n from './translations'; - -export type ActionParamsType = TypeOf<typeof ExecutorParamsSchema>; - -const supportedSubActions: string[] = ['getFields', 'pushToService', 'incidentTypes', 'severity']; - -export const ConnectorTypeId = '.resilient'; -// connector type definition -export function getConnectorType(): ConnectorType< - ResilientPublicConfigurationType, - ResilientSecretConfigurationType, - ExecutorParams, - ResilientExecutorResultData | {} -> { - return { - id: ConnectorTypeId, - minimumLicenseRequired: 'platinum', - name: i18n.NAME, - supportedFeatureIds: [ - AlertingConnectorFeatureId, - CasesConnectorFeatureId, - SecurityConnectorFeatureId, - ], - validate: { - config: { - schema: ExternalIncidentServiceConfigurationSchema, - customValidator: validate.config, - }, - secrets: { - schema: ExternalIncidentServiceSecretConfigurationSchema, - customValidator: validate.secrets, - }, - params: { - schema: ExecutorParamsSchema, - }, - }, - executor, - }; -} - -// action executor -async function executor( - execOptions: ConnectorTypeExecutorOptions< - ResilientPublicConfigurationType, - ResilientSecretConfigurationType, - ExecutorParams - > -): Promise<ConnectorTypeExecutorResult<ResilientExecutorResultData | {}>> { - const { actionId, config, params, secrets, configurationUtilities, logger } = execOptions; - const { subAction, subActionParams } = params as ExecutorParams; - let data: ResilientExecutorResultData | null = null; - - const externalService = createExternalService( - { - config, - secrets, - }, - logger, - configurationUtilities - ); - - if (!api[subAction]) { - const errorMessage = `[Action][ExternalService] Unsupported subAction type ${subAction}.`; - logger.error(errorMessage); - throw new Error(errorMessage); - } - - if (!supportedSubActions.includes(subAction)) { - const errorMessage = `[Action][ExternalService] subAction ${subAction} not implemented.`; - logger.error(errorMessage); - throw new Error(errorMessage); - } - - if (subAction === 'pushToService') { - const pushToServiceParams = subActionParams as ExecutorSubActionPushParams; - - data = await api.pushToService({ - externalService, - params: pushToServiceParams, - logger, - }); - - logger.debug(`response push to service for incident id: ${data.id}`); - } - - if (subAction === 'getFields') { - const getFieldsParams = subActionParams as ExecutorSubActionCommonFieldsParams; - data = await api.getFields({ - externalService, - params: getFieldsParams, - }); - } - - if (subAction === 'incidentTypes') { - const incidentTypesParams = subActionParams as ExecutorSubActionGetIncidentTypesParams; - data = await api.incidentTypes({ - externalService, - params: incidentTypesParams, - }); - } - - if (subAction === 'severity') { - const severityParams = subActionParams as ExecutorSubActionGetSeverityParams; - data = await api.severity({ - externalService, - params: severityParams, - }); - } - - return { status: 'ok', data: data ?? {}, actionId }; -} +import { ResilientConnector } from './resilient'; + +export const getResilientConnectorType = (): SubActionConnectorType< + ResilientConfig, + ResilientSecrets +> => ({ + id: RESILIENT_CONNECTOR_ID, + minimumLicenseRequired: 'platinum', + name: i18n.NAME, + getService: (params) => new ResilientConnector(params, PushToServiceIncidentSchema), + schema: { + config: ExternalIncidentServiceConfigurationSchema, + secrets: ExternalIncidentServiceSecretConfigurationSchema, + }, + supportedFeatureIds: [ + AlertingConnectorFeatureId, + CasesConnectorFeatureId, + SecurityConnectorFeatureId, + ], + validators: [{ type: ValidatorType.CONFIG, validator: urlAllowListValidator('apiUrl') }], +}); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/mocks.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/mocks.ts index ce423df5f974a..9ca94c700ef77 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/mocks.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/mocks.ts @@ -5,394 +5,55 @@ * 2.0. */ -import { ExternalService, PushToServiceApiParams, ExecutorSubActionPushParams } from './types'; - export const resilientFields = [ { - id: 17, name: 'name', - text: 'Name', - prefix: null, - type_id: 0, - tooltip: 'A unique name to identify this particular incident.', + text: 'name', input_type: 'text', required: 'always', - hide_notification: false, - chosen: false, - default_chosen_by_server: false, - blank_option: false, - internal: true, - uuid: 'ad6ed4f2-8d87-4ba2-81fa-03568a9326cc', - operations: [ - 'equals', - 'not_equals', - 'contains', - 'not_contains', - 'changed', - 'changed_to', - 'not_changed_to', - 'has_a_value', - 'not_has_a_value', - ], - operation_perms: { - changed_to: { - show_in_manual_actions: false, - show_in_auto_actions: true, - show_in_notifications: true, - }, - has_a_value: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_changed_to: { - show_in_manual_actions: false, - show_in_auto_actions: true, - show_in_notifications: true, - }, - equals: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - changed: { - show_in_manual_actions: false, - show_in_auto_actions: true, - show_in_notifications: true, - }, - contains: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_contains: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_equals: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_has_a_value: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - }, - values: [], - perms: { - delete: false, - modify_name: false, - modify_values: false, - modify_blank: false, - modify_required: false, - modify_operations: false, - modify_chosen: false, - modify_default: false, - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - show_in_scripts: true, - modify_type: ['text'], - sort: true, - }, read_only: false, - changeable: true, - rich_text: false, - templates: [], - deprecated: false, - tags: [], - calculated: false, - is_tracked: false, - allow_default_value: false, }, { - id: 15, name: 'description', text: 'Description', - prefix: null, - type_id: 0, - tooltip: 'A free form text description of the incident.', input_type: 'textarea', - hide_notification: false, - chosen: false, - default_chosen_by_server: false, - blank_option: false, - internal: true, - uuid: '420d70b1-98f9-4681-a20b-84f36a9e5e48', - operations: [ - 'equals', - 'not_equals', - 'contains', - 'not_contains', - 'changed', - 'changed_to', - 'not_changed_to', - 'has_a_value', - 'not_has_a_value', - ], - operation_perms: { - changed_to: { - show_in_manual_actions: false, - show_in_auto_actions: true, - show_in_notifications: true, - }, - has_a_value: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_changed_to: { - show_in_manual_actions: false, - show_in_auto_actions: true, - show_in_notifications: true, - }, - equals: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - changed: { - show_in_manual_actions: false, - show_in_auto_actions: true, - show_in_notifications: true, - }, - contains: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_contains: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_equals: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_has_a_value: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - }, - values: [], - perms: { - delete: false, - modify_name: false, - modify_values: false, - modify_blank: false, - modify_required: false, - modify_operations: false, - modify_chosen: false, - modify_default: false, - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - show_in_scripts: true, - modify_type: ['textarea'], - sort: true, - }, read_only: false, - changeable: true, - rich_text: true, - templates: [], - deprecated: false, - tags: [], - calculated: false, - is_tracked: false, - allow_default_value: false, }, { - id: 65, name: 'create_date', text: 'Date Created', - prefix: null, - type_id: 0, - tooltip: 'The date the incident was created. This field is read-only.', input_type: 'datetimepicker', - hide_notification: false, - chosen: false, - default_chosen_by_server: false, - blank_option: false, - internal: true, - uuid: 'b4faf728-881a-4e8b-bf0b-d39b720392a1', - operations: ['due_within', 'overdue_by', 'has_a_value', 'not_has_a_value'], - operation_perms: { - has_a_value: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - not_has_a_value: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - due_within: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - overdue_by: { - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - }, - }, - values: [], - perms: { - delete: false, - modify_name: false, - modify_values: false, - modify_blank: false, - modify_required: false, - modify_operations: false, - modify_chosen: false, - modify_default: false, - show_in_manual_actions: true, - show_in_auto_actions: true, - show_in_notifications: true, - show_in_scripts: true, - modify_type: ['datetimepicker'], - sort: true, - }, read_only: true, - changeable: false, - rich_text: false, - templates: [], - deprecated: false, - tags: [], - calculated: false, - is_tracked: false, - allow_default_value: false, }, ]; -const createMock = (): jest.Mocked<ExternalService> => { - const service = { - getFields: jest.fn().mockImplementation(() => Promise.resolve(resilientFields)), - getIncident: jest.fn().mockImplementation(() => - Promise.resolve({ - id: '1', - name: 'title from ibm resilient', - description: 'description from ibm resilient', - discovered_date: 1589391874472, - create_date: 1591192608323, - inc_last_modified_date: 1591192650372, - }) - ), - createIncident: jest.fn().mockImplementation(() => - Promise.resolve({ - id: '1', - title: '1', - pushedDate: '2020-06-03T15:09:13.606Z', - url: 'https://resilient.elastic.co/#incidents/1', - }) - ), - updateIncident: jest.fn().mockImplementation(() => - Promise.resolve({ - id: '1', - title: '1', - pushedDate: '2020-06-03T15:09:13.606Z', - url: 'https://resilient.elastic.co/#incidents/1', - }) - ), - createComment: jest.fn(), - findIncidents: jest.fn(), - getIncidentTypes: jest.fn().mockImplementation(() => [ - { id: 17, name: 'Communication error (fax; email)' }, - { id: 1001, name: 'Custom type' }, - ]), - getSeverity: jest.fn().mockImplementation(() => [ - { - id: 4, - name: 'Low', - }, - { - id: 5, - name: 'Medium', - }, - { - id: 6, - name: 'High', - }, - ]), - }; - - service.createComment.mockImplementationOnce(() => - Promise.resolve({ - commentId: 'case-comment-1', - pushedDate: '2020-06-03T15:09:13.606Z', - externalCommentId: '1', - }) - ); - - service.createComment.mockImplementationOnce(() => - Promise.resolve({ - commentId: 'case-comment-2', - pushedDate: '2020-06-03T15:09:13.606Z', - externalCommentId: '2', - }) - ); - - return service; -}; - -const externalServiceMock = { - create: createMock, -}; - -const executorParams: ExecutorSubActionPushParams = { - incident: { - externalId: 'incident-3', - name: 'Incident title', - description: 'Incident description', - incidentTypes: [1001], - severityCode: 6, - }, - comments: [ +export const incidentTypes = { + id: 16, + name: 'incident_type_ids', + text: 'Incident Type', + values: [ { - commentId: 'case-comment-1', - comment: 'A comment', + value: 17, + label: 'Communication error (fax; email)', + enabled: true, + properties: null, + uuid: '4a8d22f7-d89e-4403-85c7-2bafe3b7f2ae', + hidden: false, + default: false, }, { - commentId: 'case-comment-2', - comment: 'Another comment', + value: 1001, + label: 'Custom type', + enabled: true, + properties: null, + uuid: '3b51c8c2-9758-48f8-b013-bd141f1d2ec9', + hidden: false, + default: false, }, ], }; -const apiParams: PushToServiceApiParams = { - ...executorParams, -}; - -const incidentTypes = [ - { - value: 17, - label: 'Communication error (fax; email)', - enabled: true, - properties: null, - uuid: '4a8d22f7-d89e-4403-85c7-2bafe3b7f2ae', - hidden: false, - default: false, - }, - { - value: 1001, - label: 'Custom type', - enabled: true, - properties: null, - uuid: '3b51c8c2-9758-48f8-b013-bd141f1d2ec9', - hidden: false, - default: false, - }, -]; - -const severity = [ +export const severity = [ { value: 4, label: 'Low', @@ -421,5 +82,3 @@ const severity = [ default: false, }, ]; - -export { externalServiceMock, executorParams, apiParams, incidentTypes, severity }; diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.test.ts new file mode 100644 index 0000000000000..4e031bdaafeea --- /dev/null +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.test.ts @@ -0,0 +1,587 @@ +/* + * 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 { request, createAxiosResponse } from '@kbn/actions-plugin/server/lib/axios_utils'; +import { loggingSystemMock } from '@kbn/core/server/mocks'; +import { resilientFields, incidentTypes, severity } from './mocks'; +import { actionsConfigMock } from '@kbn/actions-plugin/server/actions_config.mock'; +import { ResilientConnector } from './resilient'; +import { actionsMock } from '@kbn/actions-plugin/server/mocks'; +import { RESILIENT_CONNECTOR_ID } from './constants'; +import { PushToServiceIncidentSchema } from './schema'; + +jest.mock('axios'); +jest.mock('@kbn/actions-plugin/server/lib/axios_utils', () => { + const originalUtils = jest.requireActual('@kbn/actions-plugin/server/lib/axios_utils'); + return { + ...originalUtils, + request: jest.fn(), + }; +}); + +const requestMock = request as jest.Mock; +const TIMESTAMP = 1589391874472; +const apiUrl = 'https://resilient.elastic.co/'; +const orgId = '201'; +const apiKeyId = 'keyId'; +const apiKeySecret = 'secret'; +const ignoredRequestFields = { + axios: undefined, + timeout: undefined, + configurationUtilities: expect.anything(), + logger: expect.anything(), +}; +const token = Buffer.from(apiKeyId + ':' + apiKeySecret, 'utf8').toString('base64'); +const mockIncidentUpdate = (withUpdateError = false) => { + requestMock.mockImplementationOnce(() => + createAxiosResponse({ + data: { + id: '1', + name: 'title', + description: { + format: 'html', + content: 'description', + }, + incident_type_ids: [1001, 16, 12], + severity_code: 6, + inc_last_modified_date: 1589391874472, + }, + }) + ); + + if (withUpdateError) { + requestMock.mockImplementationOnce(() => { + throw new Error('An error has occurred'); + }); + } else { + requestMock.mockImplementationOnce(() => + createAxiosResponse({ + data: { + success: true, + id: '1', + inc_last_modified_date: 1589391874472, + }, + }) + ); + } + + requestMock.mockImplementationOnce(() => + createAxiosResponse({ + data: { + id: '1', + name: 'title_updated', + description: { + format: 'html', + content: 'desc_updated', + }, + inc_last_modified_date: 1589391874472, + }, + }) + ); +}; + +describe('IBM Resilient connector', () => { + const connector = new ResilientConnector( + { + connector: { id: '1', type: RESILIENT_CONNECTOR_ID }, + configurationUtilities: actionsConfigMock.create(), + logger: loggingSystemMock.createLogger(), + services: actionsMock.createServices(), + config: { orgId, apiUrl }, + secrets: { apiKeyId, apiKeySecret }, + }, + PushToServiceIncidentSchema + ); + beforeAll(() => { + jest.useFakeTimers(); + }); + + afterAll(() => { + jest.useRealTimers(); + }); + + beforeEach(() => { + jest.resetAllMocks(); + jest.setSystemTime(TIMESTAMP); + }); + + describe('getIncident', () => { + const incidentMock = { + id: '1', + name: '1', + description: { + format: 'html', + content: 'description', + }, + inc_last_modified_date: TIMESTAMP, + }; + + beforeEach(() => { + requestMock.mockImplementation(() => + createAxiosResponse({ + data: incidentMock, + }) + ); + }); + + it('returns the incident correctly', async () => { + const res = await connector.getIncident({ id: '1' }); + expect(res).toEqual(incidentMock); + }); + + it('should call request with correct arguments', async () => { + await connector.getIncident({ id: '1' }); + expect(requestMock).toHaveBeenCalledWith({ + ...ignoredRequestFields, + method: 'GET', + data: {}, + url: `${apiUrl}rest/orgs/${orgId}/incidents/1`, + headers: { + Authorization: `Basic ${token}`, + 'Content-Type': 'application/json', + }, + params: { + text_content_output_format: 'objects_convert', + }, + }); + }); + + it('it should throw an error', async () => { + requestMock.mockImplementation(() => { + throw new Error('An error has occurred'); + }); + await expect(connector.getIncident({ id: '1' })).rejects.toThrow( + 'Unable to get incident with id 1. Error: An error has occurred' + ); + }); + }); + + describe('createIncident', () => { + const incidentMock = { + name: 'title', + description: 'desc', + incidentTypes: [1001], + severityCode: 6, + }; + + beforeEach(() => { + requestMock.mockImplementation(() => + createAxiosResponse({ + data: { + id: '1', + name: 'title', + description: 'description', + discovered_date: 1589391874472, + create_date: 1589391874472, + }, + }) + ); + }); + + it('creates the incident correctly', async () => { + const res = await connector.createIncident(incidentMock); + + expect(res).toEqual({ + title: '1', + id: '1', + pushedDate: '2020-05-13T17:44:34.472Z', + url: 'https://resilient.elastic.co/#incidents/1', + }); + }); + + it('should call request with correct arguments', async () => { + await connector.createIncident(incidentMock); + + expect(requestMock).toHaveBeenCalledWith({ + ...ignoredRequestFields, + method: 'POST', + data: { + name: 'title', + description: { + format: 'html', + content: 'desc', + }, + discovered_date: TIMESTAMP, + incident_type_ids: [{ id: 1001 }], + severity_code: { id: 6 }, + }, + url: `${apiUrl}rest/orgs/${orgId}/incidents?text_content_output_format=objects_convert`, + headers: { + Authorization: `Basic ${token}`, + 'Content-Type': 'application/json', + }, + }); + }); + + it('should throw an error', async () => { + requestMock.mockImplementation(() => { + throw new Error('An error has occurred'); + }); + + await expect( + connector.createIncident({ + name: 'title', + description: 'desc', + incidentTypes: [1001], + severityCode: 6, + }) + ).rejects.toThrow( + '[Action][IBM Resilient]: Unable to create incident. Error: An error has occurred' + ); + }); + + it('should throw if the required attributes are not received in response', async () => { + requestMock.mockImplementation(() => createAxiosResponse({ data: { notRequired: 'test' } })); + + await expect(connector.createIncident(incidentMock)).rejects.toThrow( + '[Action][IBM Resilient]: Unable to create incident. Error: Response validation failed (Error: [id]: expected value of type [number] but got [undefined]).' + ); + }); + }); + + describe('updateIncident', () => { + const req = { + incidentId: '1', + incident: { + name: 'title', + description: 'desc', + incidentTypes: [1001], + severityCode: 6, + }, + }; + it('updates the incident correctly', async () => { + mockIncidentUpdate(); + const res = await connector.updateIncident(req); + + expect(res).toEqual({ + title: '1', + id: '1', + pushedDate: '2020-05-13T17:44:34.472Z', + url: 'https://resilient.elastic.co/#incidents/1', + }); + }); + + it('should call request with correct arguments', async () => { + mockIncidentUpdate(); + + await connector.updateIncident({ + incidentId: '1', + incident: { + name: 'title_updated', + description: 'desc_updated', + incidentTypes: [1001], + severityCode: 5, + }, + }); + + expect(requestMock.mock.calls[1][0]).toEqual({ + ...ignoredRequestFields, + url: `${apiUrl}rest/orgs/${orgId}/incidents/1`, + headers: { + Authorization: `Basic ${token}`, + 'Content-Type': 'application/json', + }, + method: 'PATCH', + data: { + changes: [ + { + field: { name: 'name' }, + old_value: { text: 'title' }, + new_value: { text: 'title_updated' }, + }, + { + field: { name: 'description' }, + old_value: { + textarea: { + content: 'description', + format: 'html', + }, + }, + new_value: { + textarea: { + content: 'desc_updated', + format: 'html', + }, + }, + }, + { + field: { + name: 'incident_type_ids', + }, + old_value: { + ids: [1001, 16, 12], + }, + new_value: { + ids: [1001], + }, + }, + { + field: { + name: 'severity_code', + }, + old_value: { + id: 6, + }, + new_value: { + id: 5, + }, + }, + ], + }, + }); + }); + + it('it should throw an error', async () => { + mockIncidentUpdate(true); + + await expect(connector.updateIncident(req)).rejects.toThrow( + '[Action][IBM Resilient]: Unable to update incident with id 1. Error: An error has occurred' + ); + }); + + it('should throw if the required attributes are not received in response', async () => { + requestMock.mockImplementationOnce(() => + createAxiosResponse({ + data: { + id: '1', + name: 'title', + description: { + format: 'html', + content: 'description', + }, + incident_type_ids: [1001, 16, 12], + severity_code: 6, + inc_last_modified_date: 1589391874472, + }, + }) + ); + requestMock.mockImplementation(() => createAxiosResponse({ data: { notRequired: 'test' } })); + + await expect(connector.updateIncident(req)).rejects.toThrow( + '[Action][IBM Resilient]: Unable to update incident with id 1. Error: Response validation failed (Error: [success]: expected value of type [boolean] but got [undefined]).' + ); + }); + }); + + describe('createComment', () => { + const req = { + incidentId: '1', + comment: 'comment', + }; + + beforeEach(() => { + requestMock.mockImplementation(() => + createAxiosResponse({ + data: { + id: '1', + create_date: 1589391874472, + comment: { + id: '5', + }, + }, + }) + ); + }); + + it('should call request with correct arguments', async () => { + await connector.addComment(req); + + expect(requestMock).toHaveBeenCalledWith({ + ...ignoredRequestFields, + url: `${apiUrl}rest/orgs/${orgId}/incidents/1/comments`, + headers: { + Authorization: `Basic ${token}`, + 'Content-Type': 'application/json', + }, + method: 'POST', + data: { + text: { + content: 'comment', + format: 'text', + }, + }, + }); + }); + + it('it should throw an error', async () => { + requestMock.mockImplementation(() => { + throw new Error('An error has occurred'); + }); + + await expect(connector.addComment(req)).rejects.toThrow( + '[Action][IBM Resilient]: Unable to create comment at incident with id 1. Error: An error has occurred.' + ); + }); + }); + + describe('getIncidentTypes', () => { + beforeEach(() => { + requestMock.mockImplementation(() => + createAxiosResponse({ + data: incidentTypes, + }) + ); + }); + + it('should call request with correct arguments', async () => { + await connector.getIncidentTypes(); + expect(requestMock).toBeCalledTimes(1); + expect(requestMock).toHaveBeenCalledWith({ + ...ignoredRequestFields, + method: 'GET', + data: {}, + url: `${apiUrl}rest/orgs/${orgId}/types/incident/fields/incident_type_ids`, + headers: { + Authorization: `Basic ${token}`, + 'Content-Type': 'application/json', + }, + }); + }); + + it('returns incident types correctly', async () => { + const res = await connector.getIncidentTypes(); + + expect(res).toEqual([ + { id: '17', name: 'Communication error (fax; email)' }, + { id: '1001', name: 'Custom type' }, + ]); + }); + + it('should throw an error', async () => { + requestMock.mockImplementation(() => { + throw new Error('An error has occurred'); + }); + + await expect(connector.getIncidentTypes()).rejects.toThrow( + '[Action][IBM Resilient]: Unable to get incident types. Error: An error has occurred.' + ); + }); + + it('should throw if the required attributes are not received in response', async () => { + requestMock.mockImplementation(() => + createAxiosResponse({ data: { id: '1001', name: 'Custom type' } }) + ); + + await expect(connector.getIncidentTypes()).rejects.toThrow( + '[Action][IBM Resilient]: Unable to get incident types. Error: Response validation failed (Error: [values]: expected value of type [array] but got [undefined]).' + ); + }); + }); + + describe('getSeverity', () => { + beforeEach(() => { + requestMock.mockImplementation(() => + createAxiosResponse({ + data: { + values: severity, + }, + }) + ); + }); + + it('should call request with correct arguments', async () => { + await connector.getSeverity(); + expect(requestMock).toBeCalledTimes(1); + expect(requestMock).toHaveBeenCalledWith({ + ...ignoredRequestFields, + method: 'GET', + data: {}, + url: `${apiUrl}rest/orgs/${orgId}/types/incident/fields/severity_code`, + headers: { + Authorization: `Basic ${token}`, + 'Content-Type': 'application/json', + }, + }); + }); + + it('returns severity correctly', async () => { + const res = await connector.getSeverity(); + + expect(res).toEqual([ + { + id: '4', + name: 'Low', + }, + { + id: '5', + name: 'Medium', + }, + { + id: '6', + name: 'High', + }, + ]); + }); + + it('should throw an error', async () => { + requestMock.mockImplementation(() => { + throw new Error('An error has occurred'); + }); + + await expect(connector.getSeverity()).rejects.toThrow( + '[Action][IBM Resilient]: Unable to get severity. Error: An error has occurred.' + ); + }); + + it('should throw if the required attributes are not received in response', async () => { + requestMock.mockImplementation(() => + createAxiosResponse({ data: { id: '10', name: 'Critical' } }) + ); + + await expect(connector.getSeverity()).rejects.toThrow( + '[Action][IBM Resilient]: Unable to get severity. Error: Response validation failed (Error: [values]: expected value of type [array] but got [undefined]).' + ); + }); + }); + + describe('getFields', () => { + beforeEach(() => { + requestMock.mockImplementation(() => + createAxiosResponse({ + data: resilientFields, + }) + ); + }); + it('should call request with correct arguments', async () => { + await connector.getFields(); + + expect(requestMock).toBeCalledTimes(1); + expect(requestMock).toHaveBeenCalledWith({ + ...ignoredRequestFields, + method: 'GET', + data: {}, + url: `${apiUrl}rest/orgs/${orgId}/types/incident/fields`, + headers: { + Authorization: `Basic ${token}`, + 'Content-Type': 'application/json', + }, + }); + }); + + it('returns common fields correctly', async () => { + const res = await connector.getFields(); + expect(res).toEqual(resilientFields); + }); + + it('should throw an error', async () => { + requestMock.mockImplementation(() => { + throw new Error('An error has occurred'); + }); + await expect(connector.getFields()).rejects.toThrow( + 'Unable to get fields. Error: An error has occurred' + ); + }); + + it('should throw if the required attributes are not received in response', async () => { + requestMock.mockImplementation(() => createAxiosResponse({ data: { someField: 'test' } })); + + await expect(connector.getFields()).rejects.toThrow( + '[Action][IBM Resilient]: Unable to get fields. Error: Response validation failed (Error: expected value of type [array] but got [Object]).' + ); + }); + }); +}); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.ts new file mode 100644 index 0000000000000..4c8175e52ab8f --- /dev/null +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/resilient.ts @@ -0,0 +1,331 @@ +/* + * 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 { AxiosError } from 'axios'; +import { omitBy, isNil } from 'lodash/fp'; +import { CaseConnector, ServiceParams } from '@kbn/actions-plugin/server'; +import { schema, Type } from '@kbn/config-schema'; +import { getErrorMessage } from '@kbn/actions-plugin/server/lib/axios_utils'; +import { + CreateIncidentData, + ExternalServiceIncidentResponse, + GetIncidentResponse, + GetIncidentTypesResponse, + GetSeverityResponse, + Incident, + ResilientConfig, + ResilientSecrets, + UpdateIncidentParams, +} from './types'; +import * as i18n from './translations'; +import { SUB_ACTION } from './constants'; +import { + ExecutorSubActionCommonFieldsParamsSchema, + ExecutorSubActionGetIncidentTypesParamsSchema, + ExecutorSubActionGetSeverityParamsSchema, + GetCommonFieldsResponseSchema, + GetIncidentTypesResponseSchema, + GetSeverityResponseSchema, + GetIncidentResponseSchema, +} from './schema'; +import { formatUpdateRequest } from './utils'; + +const VIEW_INCIDENT_URL = `#incidents`; + +export class ResilientConnector extends CaseConnector< + ResilientConfig, + ResilientSecrets, + Incident, + GetIncidentResponse +> { + private urls: { + incidentTypes: string; + incident: string; + comment: string; + severity: string; + }; + + constructor( + params: ServiceParams<ResilientConfig, ResilientSecrets>, + pushToServiceParamsExtendedSchema: Record<string, Type<unknown>> + ) { + super(params, pushToServiceParamsExtendedSchema); + + this.urls = { + incidentTypes: `${this.getIncidentFieldsUrl()}/incident_type_ids`, + incident: `${this.getOrgUrl()}/incidents`, + comment: `${this.getOrgUrl()}/incidents/{inc_id}/comments`, + severity: `${this.getIncidentFieldsUrl()}/severity_code`, + }; + + this.registerSubActions(); + } + + protected getResponseErrorMessage(error: AxiosError) { + if (!error.response?.status) { + return i18n.UNKNOWN_API_ERROR; + } + if (error.response.status === 401) { + return i18n.UNAUTHORIZED_API_ERROR; + } + return `API Error: ${error.response?.statusText}`; + } + + private registerSubActions() { + this.registerSubAction({ + name: SUB_ACTION.INCIDENT_TYPES, + method: 'getIncidentTypes', + schema: ExecutorSubActionGetIncidentTypesParamsSchema, + }); + + this.registerSubAction({ + name: SUB_ACTION.SEVERITY, + method: 'getSeverity', + schema: ExecutorSubActionGetSeverityParamsSchema, + }); + + this.registerSubAction({ + name: SUB_ACTION.FIELDS, + method: 'getFields', + schema: ExecutorSubActionCommonFieldsParamsSchema, + }); + } + + private getAuthHeaders() { + const token = Buffer.from( + this.secrets.apiKeyId + ':' + this.secrets.apiKeySecret, + 'utf8' + ).toString('base64'); + + return { Authorization: `Basic ${token}` }; + } + + private getOrgUrl() { + const { apiUrl: url, orgId } = this.config; + + return `${url}/rest/orgs/${orgId}`; + } + + private getIncidentFieldsUrl = () => `${this.getOrgUrl()}/types/incident/fields`; + + private getIncidentViewURL(key: string) { + const url = this.config.apiUrl; + const urlWithoutTrailingSlash = url.endsWith('/') ? url.slice(0, -1) : url; + + return `${urlWithoutTrailingSlash}/${VIEW_INCIDENT_URL}/${key}`; + } + + public async createIncident(incident: Incident): Promise<ExternalServiceIncidentResponse> { + try { + let data: CreateIncidentData = { + name: incident.name, + discovered_date: Date.now(), + }; + + if (incident?.description) { + data = { + ...data, + description: { + format: 'html', + content: incident.description ?? '', + }, + }; + } + + if (incident?.incidentTypes) { + data = { + ...data, + incident_type_ids: incident.incidentTypes.map((id: number | string) => ({ + id: Number(id), + })), + }; + } + + if (incident?.severityCode) { + data = { + ...data, + severity_code: { id: Number(incident.severityCode) }, + }; + } + + const res = await this.request({ + url: `${this.urls.incident}?text_content_output_format=objects_convert`, + method: 'POST', + data, + headers: this.getAuthHeaders(), + responseSchema: schema.object( + { + id: schema.number(), + create_date: schema.number(), + }, + { unknowns: 'allow' } + ), + }); + + const { id, create_date: createDate } = res.data; + + return { + title: `${id}`, + id: `${id}`, + pushedDate: new Date(createDate).toISOString(), + url: this.getIncidentViewURL(id.toString()), + }; + } catch (error) { + throw new Error( + getErrorMessage(i18n.NAME, `Unable to create incident. Error: ${error.message}.`) + ); + } + } + + public async updateIncident({ + incidentId, + incident, + }: UpdateIncidentParams): Promise<ExternalServiceIncidentResponse> { + try { + const latestIncident = await this.getIncident({ id: incidentId }); + + // Remove null or undefined values. Allowing null values sets the field in IBM Resilient to empty. + const newIncident = omitBy(isNil, incident); + const data = formatUpdateRequest({ oldIncident: latestIncident, newIncident }); + + const res = await this.request({ + method: 'PATCH', + url: `${this.urls.incident}/${incidentId}`, + data, + headers: this.getAuthHeaders(), + responseSchema: schema.object({ success: schema.boolean() }, { unknowns: 'allow' }), + }); + + if (!res.data.success) { + throw new Error('Error while updating incident'); + } + + const updatedIncident = await this.getIncident({ id: incidentId }); + + return { + title: `${updatedIncident.id}`, + id: `${updatedIncident.id}`, + pushedDate: new Date(updatedIncident.inc_last_modified_date).toISOString(), + url: this.getIncidentViewURL(updatedIncident.id.toString()), + }; + } catch (error) { + throw new Error( + getErrorMessage( + i18n.NAME, + `Unable to update incident with id ${incidentId}. Error: ${error.message}.` + ) + ); + } + } + + public async addComment({ incidentId, comment }: { incidentId: string; comment: string }) { + try { + await this.request({ + method: 'POST', + url: this.urls.comment.replace('{inc_id}', incidentId), + data: { text: { format: 'text', content: comment } }, + headers: this.getAuthHeaders(), + responseSchema: schema.object({}, { unknowns: 'allow' }), + }); + } catch (error) { + throw new Error( + getErrorMessage( + i18n.NAME, + `Unable to create comment at incident with id ${incidentId}. Error: ${error.message}.` + ) + ); + } + } + + public async getIncident({ id }: { id: string }): Promise<GetIncidentResponse> { + try { + const res = await this.request({ + method: 'GET', + url: `${this.urls.incident}/${id}`, + params: { + text_content_output_format: 'objects_convert', + }, + headers: this.getAuthHeaders(), + responseSchema: GetIncidentResponseSchema, + }); + + return res.data; + } catch (error) { + throw new Error( + getErrorMessage(i18n.NAME, `Unable to get incident with id ${id}. Error: ${error.message}.`) + ); + } + } + + public async getIncidentTypes(): Promise<GetIncidentTypesResponse> { + try { + const res = await this.request({ + method: 'GET', + url: this.urls.incidentTypes, + headers: this.getAuthHeaders(), + responseSchema: GetIncidentTypesResponseSchema, + }); + + const incidentTypes = res.data?.values ?? []; + + return incidentTypes.map((type: { value: number; label: string }) => ({ + id: type.value.toString(), + name: type.label, + })); + } catch (error) { + throw new Error( + getErrorMessage(i18n.NAME, `Unable to get incident types. Error: ${error.message}.`) + ); + } + } + + public async getSeverity(): Promise<GetSeverityResponse> { + try { + const res = await this.request({ + method: 'GET', + url: this.urls.severity, + headers: this.getAuthHeaders(), + responseSchema: GetSeverityResponseSchema, + }); + + const severities = res.data?.values ?? []; + return severities.map((type: { value: number; label: string }) => ({ + id: type.value.toString(), + name: type.label, + })); + } catch (error) { + throw new Error( + getErrorMessage(i18n.NAME, `Unable to get severity. Error: ${error.message}.`) + ); + } + } + + public async getFields() { + try { + const res = await this.request({ + method: 'GET', + url: this.getIncidentFieldsUrl(), + headers: this.getAuthHeaders(), + responseSchema: GetCommonFieldsResponseSchema, + }); + + const fields = res.data.map((field) => { + return { + name: field.name, + input_type: field.input_type, + read_only: field.read_only, + required: field.required, + text: field.text, + }; + }); + + return fields; + } catch (error) { + throw new Error(getErrorMessage(i18n.NAME, `Unable to get fields. Error: ${error.message}.`)); + } + } +} diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/schema.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/schema.ts index 9f76a236cacd5..96b1d44f8636e 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/schema.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/schema.ts @@ -43,39 +43,66 @@ export const ExecutorSubActionPushParamsSchema = schema.object({ ), }); -export const ExecutorSubActionGetIncidentParamsSchema = schema.object({ - externalId: schema.string(), -}); +export const PushToServiceIncidentSchema = { + name: schema.string(), + description: schema.nullable(schema.string()), + incidentTypes: schema.nullable(schema.arrayOf(schema.number())), + severityCode: schema.nullable(schema.number()), +}; // Reserved for future implementation export const ExecutorSubActionCommonFieldsParamsSchema = schema.object({}); -export const ExecutorSubActionHandshakeParamsSchema = schema.object({}); export const ExecutorSubActionGetIncidentTypesParamsSchema = schema.object({}); export const ExecutorSubActionGetSeverityParamsSchema = schema.object({}); -export const ExecutorParamsSchema = schema.oneOf([ - schema.object({ - subAction: schema.literal('getFields'), - subActionParams: ExecutorSubActionCommonFieldsParamsSchema, - }), - schema.object({ - subAction: schema.literal('getIncident'), - subActionParams: ExecutorSubActionGetIncidentParamsSchema, - }), - schema.object({ - subAction: schema.literal('handshake'), - subActionParams: ExecutorSubActionHandshakeParamsSchema, - }), - schema.object({ - subAction: schema.literal('pushToService'), - subActionParams: ExecutorSubActionPushParamsSchema, - }), - schema.object({ - subAction: schema.literal('incidentTypes'), - subActionParams: ExecutorSubActionGetIncidentTypesParamsSchema, - }), - schema.object({ - subAction: schema.literal('severity'), - subActionParams: ExecutorSubActionGetSeverityParamsSchema, - }), -]); +const ArrayOfValuesSchema = schema.arrayOf( + schema.object( + { + value: schema.number(), + label: schema.string(), + }, + { unknowns: 'allow' } + ) +); + +export const GetIncidentTypesResponseSchema = schema.object( + { + values: ArrayOfValuesSchema, + }, + { unknowns: 'allow' } +); + +export const GetSeverityResponseSchema = schema.object( + { + values: ArrayOfValuesSchema, + }, + { unknowns: 'allow' } +); + +export const ExternalServiceFieldsSchema = schema.object( + { + input_type: schema.string(), + name: schema.string(), + read_only: schema.boolean(), + required: schema.nullable(schema.string()), + text: schema.string(), + }, + { unknowns: 'allow' } +); + +export const GetCommonFieldsResponseSchema = schema.arrayOf(ExternalServiceFieldsSchema); + +export const ExternalServiceIncidentResponseSchema = schema.object({ + id: schema.string(), + title: schema.string(), + url: schema.string(), + pushedDate: schema.string(), +}); + +export const GetIncidentResponseSchema = schema.object( + { + id: schema.number(), + inc_last_modified_date: schema.number(), + }, + { unknowns: 'allow' } +); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/service.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/service.test.ts deleted file mode 100644 index b45cf9b1e34fe..0000000000000 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/service.test.ts +++ /dev/null @@ -1,714 +0,0 @@ -/* - * 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 axios from 'axios'; - -import { createExternalService, getValueTextContent, formatUpdateRequest } from './service'; -import { request, createAxiosResponse } from '@kbn/actions-plugin/server/lib/axios_utils'; -import { ExternalService } from './types'; -import { Logger } from '@kbn/core/server'; -import { loggingSystemMock } from '@kbn/core/server/mocks'; -import { incidentTypes, resilientFields, severity } from './mocks'; -import { actionsConfigMock } from '@kbn/actions-plugin/server/actions_config.mock'; - -const logger = loggingSystemMock.create().get() as jest.Mocked<Logger>; - -jest.mock('axios'); -jest.mock('@kbn/actions-plugin/server/lib/axios_utils', () => { - const originalUtils = jest.requireActual('@kbn/actions-plugin/server/lib/axios_utils'); - return { - ...originalUtils, - request: jest.fn(), - }; -}); - -axios.create = jest.fn(() => axios); -const requestMock = request as jest.Mock; -const now = Date.now; -const TIMESTAMP = 1589391874472; -const configurationUtilities = actionsConfigMock.create(); - -// Incident update makes three calls to the API. -// The function below mocks this calls. -// a) Get the latest incident -// b) Update the incident -// c) Get the updated incident -const mockIncidentUpdate = (withUpdateError = false) => { - requestMock.mockImplementationOnce(() => - createAxiosResponse({ - data: { - id: '1', - name: 'title', - description: { - format: 'html', - content: 'description', - }, - incident_type_ids: [1001, 16, 12], - severity_code: 6, - }, - }) - ); - - if (withUpdateError) { - requestMock.mockImplementationOnce(() => { - throw new Error('An error has occurred'); - }); - } else { - requestMock.mockImplementationOnce(() => - createAxiosResponse({ - data: { - success: true, - id: '1', - inc_last_modified_date: 1589391874472, - }, - }) - ); - } - - requestMock.mockImplementationOnce(() => - createAxiosResponse({ - data: { - id: '1', - name: 'title_updated', - description: { - format: 'html', - content: 'desc_updated', - }, - inc_last_modified_date: 1589391874472, - }, - }) - ); -}; - -describe('IBM Resilient service', () => { - let service: ExternalService; - - beforeAll(() => { - service = createExternalService( - { - // The trailing slash at the end of the url is intended. - // All API calls need to have the trailing slash removed. - config: { apiUrl: 'https://resilient.elastic.co/', orgId: '201' }, - secrets: { apiKeyId: 'keyId', apiKeySecret: 'secret' }, - }, - logger, - configurationUtilities - ); - }); - - afterAll(() => { - Date.now = now; - }); - - beforeEach(() => { - jest.resetAllMocks(); - Date.now = jest.fn().mockReturnValue(TIMESTAMP); - }); - - describe('getValueTextContent', () => { - test('transforms correctly', () => { - expect(getValueTextContent('name', 'title')).toEqual({ - text: 'title', - }); - }); - - test('transforms correctly the description', () => { - expect(getValueTextContent('description', 'desc')).toEqual({ - textarea: { - format: 'html', - content: 'desc', - }, - }); - }); - }); - - describe('formatUpdateRequest', () => { - test('transforms correctly', () => { - const oldIncident = { name: 'title', description: 'desc' }; - const newIncident = { name: 'title_updated', description: 'desc_updated' }; - expect(formatUpdateRequest({ oldIncident, newIncident })).toEqual({ - changes: [ - { - field: { name: 'name' }, - old_value: { text: 'title' }, - new_value: { text: 'title_updated' }, - }, - { - field: { name: 'description' }, - old_value: { - textarea: { - format: 'html', - content: 'desc', - }, - }, - new_value: { - textarea: { - format: 'html', - content: 'desc_updated', - }, - }, - }, - ], - }); - }); - }); - - describe('createExternalService', () => { - test('throws without url', () => { - expect(() => - createExternalService( - { - config: { apiUrl: null, orgId: '201' }, - secrets: { apiKeyId: 'token', apiKeySecret: 'secret' }, - }, - logger, - configurationUtilities - ) - ).toThrow(); - }); - - test('throws without orgId', () => { - expect(() => - createExternalService( - { - config: { apiUrl: 'test.com', orgId: null }, - secrets: { apiKeyId: 'token', apiKeySecret: 'secret' }, - }, - logger, - configurationUtilities - ) - ).toThrow(); - }); - - test('throws without username', () => { - expect(() => - createExternalService( - { - config: { apiUrl: 'test.com', orgId: '201' }, - secrets: { apiKeyId: '', apiKeySecret: 'secret' }, - }, - logger, - configurationUtilities - ) - ).toThrow(); - }); - - test('throws without password', () => { - expect(() => - createExternalService( - { - config: { apiUrl: 'test.com', orgId: '201' }, - secrets: { apiKeyId: '', apiKeySecret: undefined }, - }, - logger, - configurationUtilities - ) - ).toThrow(); - }); - }); - - describe('getIncident', () => { - test('it returns the incident correctly', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { - id: '1', - name: '1', - description: { - format: 'html', - content: 'description', - }, - }, - }) - ); - const res = await service.getIncident('1'); - expect(res).toEqual({ id: '1', name: '1', description: 'description' }); - }); - - test('it should call request with correct arguments', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { id: '1' }, - }) - ); - - await service.getIncident('1'); - expect(requestMock).toHaveBeenCalledWith({ - axios, - logger, - url: 'https://resilient.elastic.co/rest/orgs/201/incidents/1', - params: { - text_content_output_format: 'objects_convert', - }, - configurationUtilities, - }); - }); - - test('it should throw an error', async () => { - requestMock.mockImplementation(() => { - throw new Error('An error has occurred'); - }); - await expect(service.getIncident('1')).rejects.toThrow( - 'Unable to get incident with id 1. Error: An error has occurred' - ); - }); - - test('it should throw if the request is not a JSON', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ data: { id: '1' }, headers: { ['content-type']: 'text/html' } }) - ); - - await expect(service.getIncident('1')).rejects.toThrow( - '[Action][IBM Resilient]: Unable to get incident with id 1. Error: Unsupported content type: text/html in GET https://example.com. Supported content types: application/json.' - ); - }); - }); - - describe('createIncident', () => { - const incident = { - incident: { - name: 'title', - description: 'desc', - incidentTypes: [1001], - severityCode: 6, - }, - }; - - test('it creates the incident correctly', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { - id: '1', - name: 'title', - description: 'description', - discovered_date: 1589391874472, - create_date: 1589391874472, - }, - }) - ); - - const res = await service.createIncident(incident); - - expect(res).toEqual({ - title: '1', - id: '1', - pushedDate: '2020-05-13T17:44:34.472Z', - url: 'https://resilient.elastic.co/#incidents/1', - }); - }); - - test('it should call request with correct arguments', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { - id: '1', - name: 'title', - description: 'description', - discovered_date: 1589391874472, - create_date: 1589391874472, - }, - }) - ); - - await service.createIncident(incident); - - expect(requestMock).toHaveBeenCalledWith({ - axios, - url: 'https://resilient.elastic.co/rest/orgs/201/incidents?text_content_output_format=objects_convert', - logger, - method: 'post', - configurationUtilities, - data: { - name: 'title', - description: { - format: 'html', - content: 'desc', - }, - discovered_date: TIMESTAMP, - incident_type_ids: [{ id: 1001 }], - severity_code: { id: 6 }, - }, - }); - }); - - test('it should throw an error', async () => { - requestMock.mockImplementation(() => { - throw new Error('An error has occurred'); - }); - - await expect( - service.createIncident({ - incident: { - name: 'title', - description: 'desc', - incidentTypes: [1001], - severityCode: 6, - }, - }) - ).rejects.toThrow( - '[Action][IBM Resilient]: Unable to create incident. Error: An error has occurred' - ); - }); - - test('it should throw if the request is not a JSON', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ data: { id: '1' }, headers: { ['content-type']: 'text/html' } }) - ); - - await expect(service.createIncident(incident)).rejects.toThrow( - '[Action][IBM Resilient]: Unable to create incident. Error: Unsupported content type: text/html in GET https://example.com. Supported content types: application/json.' - ); - }); - - test('it should throw if the required attributes are not there', async () => { - requestMock.mockImplementation(() => createAxiosResponse({ data: { notRequired: 'test' } })); - - await expect(service.createIncident(incident)).rejects.toThrow( - '[Action][IBM Resilient]: Unable to create incident. Error: Response is missing at least one of the expected fields: id,create_date.' - ); - }); - }); - - describe('updateIncident', () => { - const req = { - incidentId: '1', - incident: { - name: 'title', - description: 'desc', - incidentTypes: [1001], - severityCode: 6, - }, - }; - test('it updates the incident correctly', async () => { - mockIncidentUpdate(); - const res = await service.updateIncident(req); - - expect(res).toEqual({ - title: '1', - id: '1', - pushedDate: '2020-05-13T17:44:34.472Z', - url: 'https://resilient.elastic.co/#incidents/1', - }); - }); - - test('it should call request with correct arguments', async () => { - mockIncidentUpdate(); - - await service.updateIncident({ - incidentId: '1', - incident: { - name: 'title_updated', - description: 'desc_updated', - incidentTypes: [1001], - severityCode: 5, - }, - }); - - // Incident update makes three calls to the API. - // The second call to the API is the update call. - expect(requestMock.mock.calls[1][0]).toEqual({ - axios, - logger, - method: 'patch', - configurationUtilities, - url: 'https://resilient.elastic.co/rest/orgs/201/incidents/1', - data: { - changes: [ - { - field: { name: 'name' }, - old_value: { text: 'title' }, - new_value: { text: 'title_updated' }, - }, - { - field: { name: 'description' }, - old_value: { - textarea: { - content: 'description', - format: 'html', - }, - }, - new_value: { - textarea: { - content: 'desc_updated', - format: 'html', - }, - }, - }, - { - field: { - name: 'incident_type_ids', - }, - old_value: { - ids: [1001, 16, 12], - }, - new_value: { - ids: [1001], - }, - }, - { - field: { - name: 'severity_code', - }, - old_value: { - id: 6, - }, - new_value: { - id: 5, - }, - }, - ], - }, - }); - }); - - test('it should throw an error', async () => { - mockIncidentUpdate(true); - - await expect(service.updateIncident(req)).rejects.toThrow( - '[Action][IBM Resilient]: Unable to update incident with id 1. Error: An error has occurred' - ); - }); - - test('it should throw if the request is not a JSON', async () => { - // get incident request - requestMock.mockImplementationOnce(() => - createAxiosResponse({ - data: { - id: '1', - name: 'title', - description: { - format: 'html', - content: 'description', - }, - incident_type_ids: [1001, 16, 12], - severity_code: 6, - }, - }) - ); - - // update incident request - requestMock.mockImplementation(() => - createAxiosResponse({ data: { id: '1' }, headers: { ['content-type']: 'text/html' } }) - ); - - await expect(service.updateIncident(req)).rejects.toThrow( - '[Action][IBM Resilient]: Unable to update incident with id 1. Error: Unsupported content type: text/html in GET https://example.com. Supported content types: application/json' - ); - }); - }); - - describe('createComment', () => { - const req = { - incidentId: '1', - comment: { - comment: 'comment', - commentId: 'comment-1', - }, - }; - - test('it creates the comment correctly', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { - id: '1', - create_date: 1589391874472, - }, - }) - ); - - const res = await service.createComment(req); - - expect(res).toEqual({ - commentId: 'comment-1', - pushedDate: '2020-05-13T17:44:34.472Z', - externalCommentId: '1', - }); - }); - - test('it should call request with correct arguments', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { - id: '1', - create_date: 1589391874472, - }, - }) - ); - - await service.createComment(req); - - expect(requestMock).toHaveBeenCalledWith({ - axios, - logger, - method: 'post', - configurationUtilities, - url: 'https://resilient.elastic.co/rest/orgs/201/incidents/1/comments', - data: { - text: { - content: 'comment', - format: 'text', - }, - }, - }); - }); - - test('it should throw an error', async () => { - requestMock.mockImplementation(() => { - throw new Error('An error has occurred'); - }); - - await expect(service.createComment(req)).rejects.toThrow( - '[Action][IBM Resilient]: Unable to create comment at incident with id 1. Error: An error has occurred' - ); - }); - - test('it should throw if the request is not a JSON', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ data: { id: '1' }, headers: { ['content-type']: 'text/html' } }) - ); - - await expect(service.createComment(req)).rejects.toThrow( - '[Action][IBM Resilient]: Unable to create comment at incident with id 1. Error: Unsupported content type: text/html in GET https://example.com. Supported content types: application/json.' - ); - }); - }); - - describe('getIncidentTypes', () => { - test('it creates the incident correctly', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { - values: incidentTypes, - }, - }) - ); - - const res = await service.getIncidentTypes(); - - expect(res).toEqual([ - { id: 17, name: 'Communication error (fax; email)' }, - { id: 1001, name: 'Custom type' }, - ]); - }); - - test('it should throw an error', async () => { - requestMock.mockImplementation(() => { - throw new Error('An error has occurred'); - }); - - await expect(service.getIncidentTypes()).rejects.toThrow( - '[Action][IBM Resilient]: Unable to get incident types. Error: An error has occurred.' - ); - }); - - test('it should throw if the request is not a JSON', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ data: { id: '1' }, headers: { ['content-type']: 'text/html' } }) - ); - - await expect(service.getIncidentTypes()).rejects.toThrow( - '[Action][IBM Resilient]: Unable to get incident types. Error: Unsupported content type: text/html in GET https://example.com. Supported content types: application/json.' - ); - }); - }); - - describe('getSeverity', () => { - test('it creates the incident correctly', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: { - values: severity, - }, - }) - ); - - const res = await service.getSeverity(); - - expect(res).toEqual([ - { - id: 4, - name: 'Low', - }, - { - id: 5, - name: 'Medium', - }, - { - id: 6, - name: 'High', - }, - ]); - }); - - test('it should throw an error', async () => { - requestMock.mockImplementation(() => { - throw new Error('An error has occurred'); - }); - - await expect(service.getSeverity()).rejects.toThrow( - '[Action][IBM Resilient]: Unable to get severity. Error: An error has occurred.' - ); - }); - - test('it should throw if the request is not a JSON', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ data: { id: '1' }, headers: { ['content-type']: 'text/html' } }) - ); - - await expect(service.getSeverity()).rejects.toThrow( - '[Action][IBM Resilient]: Unable to get severity. Error: Unsupported content type: text/html in GET https://example.com. Supported content types: application/json.' - ); - }); - }); - - describe('getFields', () => { - test('it should call request with correct arguments', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: resilientFields, - }) - ); - await service.getFields(); - - expect(requestMock).toHaveBeenCalledWith({ - axios, - logger, - configurationUtilities, - url: 'https://resilient.elastic.co/rest/orgs/201/types/incident/fields', - }); - }); - - test('it returns common fields correctly', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ - data: resilientFields, - }) - ); - const res = await service.getFields(); - expect(res).toEqual(resilientFields); - }); - - test('it should throw an error', async () => { - requestMock.mockImplementation(() => { - throw new Error('An error has occurred'); - }); - await expect(service.getFields()).rejects.toThrow( - 'Unable to get fields. Error: An error has occurred' - ); - }); - - test('it should throw if the request is not a JSON', async () => { - requestMock.mockImplementation(() => - createAxiosResponse({ data: { id: '1' }, headers: { ['content-type']: 'text/html' } }) - ); - - await expect(service.getFields()).rejects.toThrow( - '[Action][IBM Resilient]: Unable to get fields. Error: Unsupported content type: text/html in GET https://example.com. Supported content types: application/json.' - ); - }); - }); -}); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/service.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/service.ts deleted file mode 100644 index 1e668348e9975..0000000000000 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/service.ts +++ /dev/null @@ -1,364 +0,0 @@ -/* - * 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 axios from 'axios'; -import { omitBy, isNil } from 'lodash/fp'; - -import { Logger } from '@kbn/core/server'; -import { - getErrorMessage, - request, - throwIfResponseIsNotValid, -} from '@kbn/actions-plugin/server/lib/axios_utils'; -import { ActionsConfigurationUtilities } from '@kbn/actions-plugin/server/actions_config'; -import { - ExternalServiceCredentials, - ExternalService, - ExternalServiceParams, - CreateCommentParams, - UpdateIncidentParams, - CreateIncidentParams, - CreateIncidentData, - ResilientPublicConfigurationType, - ResilientSecretConfigurationType, - UpdateIncidentRequest, - GetValueTextContentResponse, -} from './types'; - -import * as i18n from './translations'; - -const VIEW_INCIDENT_URL = `#incidents`; - -export const getValueTextContent = ( - field: string, - value: string | number | number[] -): GetValueTextContentResponse => { - if (field === 'description') { - return { - textarea: { - format: 'html', - content: value as string, - }, - }; - } - - if (field === 'incidentTypes') { - return { - ids: value as number[], - }; - } - - if (field === 'severityCode') { - return { - id: value as number, - }; - } - - return { - text: value as string, - }; -}; - -export const formatUpdateRequest = ({ - oldIncident, - newIncident, -}: ExternalServiceParams): UpdateIncidentRequest => { - return { - changes: Object.keys(newIncident as Record<string, unknown>).map((key) => { - let name = key; - - if (key === 'incidentTypes') { - name = 'incident_type_ids'; - } - - if (key === 'severityCode') { - name = 'severity_code'; - } - - return { - field: { name }, - // TODO: Fix ugly casting - old_value: getValueTextContent( - key, - (oldIncident as Record<string, unknown>)[name] as string - ), - new_value: getValueTextContent( - key, - (newIncident as Record<string, unknown>)[key] as string - ), - }; - }), - }; -}; - -export const createExternalService = ( - { config, secrets }: ExternalServiceCredentials, - logger: Logger, - configurationUtilities: ActionsConfigurationUtilities -): ExternalService => { - const { apiUrl: url, orgId } = config as ResilientPublicConfigurationType; - const { apiKeyId, apiKeySecret } = secrets as ResilientSecretConfigurationType; - - if (!url || !orgId || !apiKeyId || !apiKeySecret) { - throw Error(`[Action]${i18n.NAME}: Wrong configuration.`); - } - - const urlWithoutTrailingSlash = url.endsWith('/') ? url.slice(0, -1) : url; - const orgUrl = `${urlWithoutTrailingSlash}/rest/orgs/${orgId}`; - const incidentUrl = `${orgUrl}/incidents`; - const commentUrl = `${incidentUrl}/{inc_id}/comments`; - const incidentFieldsUrl = `${orgUrl}/types/incident/fields`; - const incidentTypesUrl = `${incidentFieldsUrl}/incident_type_ids`; - const severityUrl = `${incidentFieldsUrl}/severity_code`; - const axiosInstance = axios.create({ - auth: { username: apiKeyId, password: apiKeySecret }, - }); - - const getIncidentViewURL = (key: string) => { - return `${urlWithoutTrailingSlash}/${VIEW_INCIDENT_URL}/${key}`; - }; - - const getCommentsURL = (incidentId: string) => { - return commentUrl.replace('{inc_id}', incidentId); - }; - - const getIncident = async (id: string) => { - try { - const res = await request({ - axios: axiosInstance, - url: `${incidentUrl}/${id}`, - logger, - params: { - text_content_output_format: 'objects_convert', - }, - configurationUtilities, - }); - - throwIfResponseIsNotValid({ - res, - }); - - return { ...res.data, description: res.data.description?.content ?? '' }; - } catch (error) { - throw new Error( - getErrorMessage(i18n.NAME, `Unable to get incident with id ${id}. Error: ${error.message}.`) - ); - } - }; - - const createIncident = async ({ incident }: CreateIncidentParams) => { - let data: CreateIncidentData = { - name: incident.name, - discovered_date: Date.now(), - }; - - if (incident.description) { - data = { - ...data, - description: { - format: 'html', - content: incident.description ?? '', - }, - }; - } - - if (incident.incidentTypes) { - data = { - ...data, - incident_type_ids: incident.incidentTypes.map((id) => ({ id })), - }; - } - - if (incident.severityCode) { - data = { - ...data, - severity_code: { id: incident.severityCode }, - }; - } - - try { - const res = await request({ - axios: axiosInstance, - url: `${incidentUrl}?text_content_output_format=objects_convert`, - method: 'post', - logger, - data, - configurationUtilities, - }); - - throwIfResponseIsNotValid({ - res, - requiredAttributesToBeInTheResponse: ['id', 'create_date'], - }); - - return { - title: `${res.data.id}`, - id: `${res.data.id}`, - pushedDate: new Date(res.data.create_date).toISOString(), - url: getIncidentViewURL(res.data.id), - }; - } catch (error) { - throw new Error( - getErrorMessage(i18n.NAME, `Unable to create incident. Error: ${error.message}.`) - ); - } - }; - - const updateIncident = async ({ incidentId, incident }: UpdateIncidentParams) => { - try { - const latestIncident = await getIncident(incidentId); - - // Remove null or undefined values. Allowing null values sets the field in IBM Resilient to empty. - const newIncident = omitBy(isNil, incident); - const data = formatUpdateRequest({ oldIncident: latestIncident, newIncident }); - - const res = await request({ - axios: axiosInstance, - method: 'patch', - url: `${incidentUrl}/${incidentId}`, - logger, - data, - configurationUtilities, - }); - - throwIfResponseIsNotValid({ - res, - }); - - if (!res.data.success) { - throw new Error(res.data.message); - } - - const updatedIncident = await getIncident(incidentId); - - return { - title: `${updatedIncident.id}`, - id: `${updatedIncident.id}`, - pushedDate: new Date(updatedIncident.inc_last_modified_date).toISOString(), - url: getIncidentViewURL(updatedIncident.id), - }; - } catch (error) { - throw new Error( - getErrorMessage( - i18n.NAME, - `Unable to update incident with id ${incidentId}. Error: ${error.message}` - ) - ); - } - }; - - const createComment = async ({ incidentId, comment }: CreateCommentParams) => { - try { - const res = await request({ - axios: axiosInstance, - method: 'post', - url: getCommentsURL(incidentId), - logger, - data: { text: { format: 'text', content: comment.comment } }, - configurationUtilities, - }); - - throwIfResponseIsNotValid({ - res, - }); - - return { - commentId: comment.commentId, - externalCommentId: res.data.id, - pushedDate: new Date(res.data.create_date).toISOString(), - }; - } catch (error) { - throw new Error( - getErrorMessage( - i18n.NAME, - `Unable to create comment at incident with id ${incidentId}. Error: ${error.message}.` - ) - ); - } - }; - - const getIncidentTypes = async () => { - try { - const res = await request({ - axios: axiosInstance, - method: 'get', - url: incidentTypesUrl, - logger, - configurationUtilities, - }); - - throwIfResponseIsNotValid({ - res, - }); - - const incidentTypes = res.data?.values ?? []; - return incidentTypes.map((type: { value: string; label: string }) => ({ - id: type.value, - name: type.label, - })); - } catch (error) { - throw new Error( - getErrorMessage(i18n.NAME, `Unable to get incident types. Error: ${error.message}.`) - ); - } - }; - - const getSeverity = async () => { - try { - const res = await request({ - axios: axiosInstance, - method: 'get', - url: severityUrl, - logger, - configurationUtilities, - }); - - throwIfResponseIsNotValid({ - res, - }); - - const incidentTypes = res.data?.values ?? []; - return incidentTypes.map((type: { value: string; label: string }) => ({ - id: type.value, - name: type.label, - })); - } catch (error) { - throw new Error( - getErrorMessage(i18n.NAME, `Unable to get severity. Error: ${error.message}.`) - ); - } - }; - - const getFields = async () => { - try { - const res = await request({ - axios: axiosInstance, - url: incidentFieldsUrl, - logger, - configurationUtilities, - }); - - throwIfResponseIsNotValid({ - res, - }); - - return res.data ?? []; - } catch (error) { - throw new Error(getErrorMessage(i18n.NAME, `Unable to get fields. Error: ${error.message}.`)); - } - }; - - return { - createComment, - createIncident, - getFields, - getIncident, - getIncidentTypes, - getSeverity, - updateIncident, - }; -}; diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/translations.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/translations.ts index e6f75e5b9d05f..c271128e589e0 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/translations.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/translations.ts @@ -18,3 +18,14 @@ export const ALLOWED_HOSTS_ERROR = (message: string) => message, }, }); + +export const UNKNOWN_API_ERROR = i18n.translate('xpack.stackConnectors.resilient.unknownError', { + defaultMessage: 'Unknown API Error', +}); + +export const UNAUTHORIZED_API_ERROR = i18n.translate( + 'xpack.stackConnectors.resilient.unauthorizedError', + { + defaultMessage: 'Unauthorized API Error', + } +); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/types.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/types.ts index 336e899380c56..e9770db7a9834 100644 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/types.ts +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/types.ts @@ -8,34 +8,15 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { TypeOf } from '@kbn/config-schema'; -import { Logger } from '@kbn/core/server'; import { ValidatorServices } from '@kbn/actions-plugin/server/types'; import { - ExecutorParamsSchema, - ExecutorSubActionCommonFieldsParamsSchema, - ExecutorSubActionGetIncidentParamsSchema, - ExecutorSubActionGetIncidentTypesParamsSchema, - ExecutorSubActionGetSeverityParamsSchema, - ExecutorSubActionHandshakeParamsSchema, ExecutorSubActionPushParamsSchema, ExternalIncidentServiceConfigurationSchema, ExternalIncidentServiceSecretConfigurationSchema, + ExternalServiceIncidentResponseSchema, + GetIncidentResponseSchema, } from './schema'; -export type ResilientPublicConfigurationType = TypeOf< - typeof ExternalIncidentServiceConfigurationSchema ->; -export type ResilientSecretConfigurationType = TypeOf< - typeof ExternalIncidentServiceSecretConfigurationSchema ->; - -export type ExecutorSubActionCommonFieldsParams = TypeOf< - typeof ExecutorSubActionCommonFieldsParamsSchema ->; - -export type ExecutorParams = TypeOf<typeof ExecutorParamsSchema>; -export type ExecutorSubActionPushParams = TypeOf<typeof ExecutorSubActionPushParamsSchema>; - export interface ExternalServiceCredentials { config: Record<string, unknown>; secrets: Record<string, unknown>; @@ -46,14 +27,9 @@ export interface ExternalServiceValidation { secrets: (secrets: any, validatorServices: ValidatorServices) => void; } -export interface ExternalServiceIncidentResponse { - id: string; - title: string; - url: string; - pushedDate: string; -} +export type GetIncidentTypesResponse = Array<{ id: string; name: string }>; +export type GetSeverityResponse = Array<{ id: string; name: string }>; -export type ExternalServiceParams = Record<string, unknown>; export interface ExternalServiceFields { input_type: string; name: string; @@ -65,104 +41,11 @@ export type GetCommonFieldsResponse = ExternalServiceFields[]; export type Incident = Omit<ExecutorSubActionPushParams['incident'], 'externalId'>; -export interface CreateIncidentParams { - incident: Incident; -} - export interface UpdateIncidentParams { incidentId: string; incident: Incident; } -export interface CreateCommentParams { - incidentId: string; - comment: SimpleComment; -} - -export type GetIncidentTypesResponse = Array<{ id: string; name: string }>; -export type GetSeverityResponse = Array<{ id: string; name: string }>; - -export interface ExternalService { - createComment: (params: CreateCommentParams) => Promise<ExternalServiceCommentResponse>; - createIncident: (params: CreateIncidentParams) => Promise<ExternalServiceIncidentResponse>; - getFields: () => Promise<GetCommonFieldsResponse>; - getIncident: (id: string) => Promise<ExternalServiceParams | undefined>; - getIncidentTypes: () => Promise<GetIncidentTypesResponse>; - getSeverity: () => Promise<GetSeverityResponse>; - updateIncident: (params: UpdateIncidentParams) => Promise<ExternalServiceIncidentResponse>; -} - -export type PushToServiceApiParams = ExecutorSubActionPushParams; -export type ExecutorSubActionGetIncidentTypesParams = TypeOf< - typeof ExecutorSubActionGetIncidentTypesParamsSchema ->; - -export type ExecutorSubActionGetSeverityParams = TypeOf< - typeof ExecutorSubActionGetSeverityParamsSchema ->; - -export interface ExternalServiceApiHandlerArgs { - externalService: ExternalService; -} - -export type ExecutorSubActionGetIncidentParams = TypeOf< - typeof ExecutorSubActionGetIncidentParamsSchema ->; - -export type ExecutorSubActionHandshakeParams = TypeOf< - typeof ExecutorSubActionHandshakeParamsSchema ->; - -export interface PushToServiceApiHandlerArgs extends ExternalServiceApiHandlerArgs { - params: PushToServiceApiParams; - logger: Logger; -} - -export interface GetIncidentApiHandlerArgs extends ExternalServiceApiHandlerArgs { - params: ExecutorSubActionGetIncidentParams; -} - -export interface HandshakeApiHandlerArgs extends ExternalServiceApiHandlerArgs { - params: ExecutorSubActionHandshakeParams; -} - -export interface GetCommonFieldsHandlerArgs { - externalService: ExternalService; - params: ExecutorSubActionCommonFieldsParams; -} - -export interface GetIncidentTypesHandlerArgs { - externalService: ExternalService; - params: ExecutorSubActionGetIncidentTypesParams; -} - -export interface GetSeverityHandlerArgs { - externalService: ExternalService; - params: ExecutorSubActionGetSeverityParams; -} - -export interface PushToServiceResponse extends ExternalServiceIncidentResponse { - comments?: ExternalServiceCommentResponse[]; -} - -export interface ExternalServiceApi { - getFields: (args: GetCommonFieldsHandlerArgs) => Promise<GetCommonFieldsResponse>; - handshake: (args: HandshakeApiHandlerArgs) => Promise<void>; - pushToService: (args: PushToServiceApiHandlerArgs) => Promise<PushToServiceResponse>; - getIncident: (args: GetIncidentApiHandlerArgs) => Promise<void>; - incidentTypes: (args: GetIncidentTypesHandlerArgs) => Promise<GetIncidentTypesResponse>; - severity: (args: GetSeverityHandlerArgs) => Promise<GetSeverityResponse>; -} - -export type ResilientExecutorResultData = - | PushToServiceResponse - | GetCommonFieldsResponse - | GetIncidentTypesResponse - | GetSeverityResponse; - -export interface UpdateFieldText { - text: string; -} export interface UpdateFieldText { text: string; } @@ -170,7 +53,6 @@ export interface UpdateFieldText { export interface UpdateIdsField { ids: number[]; } - export interface UpdateIdField { id: number; } @@ -202,12 +84,11 @@ export interface CreateIncidentData { incident_type_ids?: Array<{ id: number }>; severity_code?: { id: number }; } -export interface SimpleComment { - comment: string; - commentId: string; -} -export interface ExternalServiceCommentResponse { - commentId: string; - pushedDate: string; - externalCommentId?: string; -} + +export type ResilientConfig = TypeOf<typeof ExternalIncidentServiceConfigurationSchema>; +export type ResilientSecrets = TypeOf<typeof ExternalIncidentServiceSecretConfigurationSchema>; + +export type ExecutorSubActionPushParams = TypeOf<typeof ExecutorSubActionPushParamsSchema>; + +export type ExternalServiceIncidentResponse = TypeOf<typeof ExternalServiceIncidentResponseSchema>; +export type GetIncidentResponse = TypeOf<typeof GetIncidentResponseSchema>; diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.test.ts new file mode 100644 index 0000000000000..51ce7cc80de7c --- /dev/null +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.test.ts @@ -0,0 +1,106 @@ +/* + * 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 { formatUpdateRequest, getValueTextContent } from './utils'; + +describe('utils', () => { + describe('getValueTextContent', () => { + test('transforms name correctly', () => { + expect(getValueTextContent('name', 'title')).toEqual({ + text: 'title', + }); + }); + + test('transforms correctly the description', () => { + expect(getValueTextContent('description', 'desc')).toEqual({ + textarea: { + format: 'html', + content: 'desc', + }, + }); + }); + + test('transforms correctly the severityCode', () => { + expect(getValueTextContent('severityCode', 6)).toEqual({ + id: 6, + }); + }); + + test('transforms correctly the severityCode as string', () => { + expect(getValueTextContent('severityCode', '6')).toEqual({ + id: 6, + }); + }); + + test('transforms correctly the incidentTypes', () => { + expect(getValueTextContent('incidentTypes', [1101, 12])).toEqual({ + ids: [1101, 12], + }); + }); + + test('transforms default correctly', () => { + expect(getValueTextContent('randomField', 'this is random')).toEqual({ + text: 'this is random', + }); + }); + }); + + describe('formatUpdateRequest', () => { + test('transforms correctly', () => { + const oldIncident = { + name: 'title', + description: { format: 'html', content: 'desc' }, + severity_code: '5', + incident_type_ids: [12, 16], + }; + const newIncident = { + name: 'title_updated', + description: 'desc_updated', + severityCode: '6', + incidentTypes: [12, 16, 1001], + }; + expect(formatUpdateRequest({ oldIncident, newIncident })).toEqual({ + changes: [ + { + field: { name: 'name' }, + old_value: { text: 'title' }, + new_value: { text: 'title_updated' }, + }, + { + field: { name: 'description' }, + old_value: { + textarea: { + format: 'html', + content: 'desc', + }, + }, + new_value: { + textarea: { + format: 'html', + content: 'desc_updated', + }, + }, + }, + { + field: { name: 'severity_code' }, + old_value: { + id: 5, + }, + new_value: { id: 6 }, + }, + { + field: { name: 'incident_type_ids' }, + old_value: { ids: [12, 16] }, + new_value: { + ids: [12, 16, 1001], + }, + }, + ], + }); + }); + }); +}); diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.ts new file mode 100644 index 0000000000000..a852789796d7a --- /dev/null +++ b/x-pack/plugins/stack_connectors/server/connector_types/resilient/utils.ts @@ -0,0 +1,75 @@ +/* + * 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 { isArray } from 'lodash'; +import { GetValueTextContentResponse, UpdateIncidentRequest } from './types'; + +export const getValueTextContent = ( + field: string, + value: string | number | number[] +): GetValueTextContentResponse => { + if (field === 'description') { + return { + textarea: { + format: 'html', + content: value.toString(), + }, + }; + } + + if (field === 'incidentTypes') { + if (isArray(value)) { + return { ids: value.map((item) => Number(item)) }; + } + return { + ids: [Number(value)], + }; + } + + if (field === 'severityCode') { + return { + id: Number(value), + }; + } + + return { + text: value.toString(), + }; +}; + +export const formatUpdateRequest = ({ + oldIncident, + newIncident, +}: { + oldIncident: Record<string, unknown>; + newIncident: Record<string, unknown>; +}): UpdateIncidentRequest => { + return { + changes: Object.keys(newIncident).map((key) => { + let name = key; + + if (key === 'incidentTypes') { + name = 'incident_type_ids'; + } + + if (key === 'severityCode') { + name = 'severity_code'; + } + + return { + field: { name }, + old_value: getValueTextContent( + key, + name === 'description' + ? (oldIncident as { description: { content: string } }).description.content + : (oldIncident[name] as string | number | number[]) + ), + new_value: getValueTextContent(key, newIncident[key] as string), + }; + }), + }; +}; diff --git a/x-pack/plugins/stack_connectors/server/connector_types/resilient/validators.ts b/x-pack/plugins/stack_connectors/server/connector_types/resilient/validators.ts deleted file mode 100644 index 335b8f6b405ad..0000000000000 --- a/x-pack/plugins/stack_connectors/server/connector_types/resilient/validators.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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 { ValidatorServices } from '@kbn/actions-plugin/server/types'; -import { - ResilientPublicConfigurationType, - ResilientSecretConfigurationType, - ExternalServiceValidation, -} from './types'; - -import * as i18n from './translations'; - -export const validateCommonConfig = ( - configObject: ResilientPublicConfigurationType, - validatorServices: ValidatorServices -) => { - const { configurationUtilities } = validatorServices; - try { - configurationUtilities.ensureUriAllowed(configObject.apiUrl); - } catch (allowedListError) { - throw new Error(i18n.ALLOWED_HOSTS_ERROR(allowedListError.message)); - } -}; - -export const validateCommonSecrets = ( - secrets: ResilientSecretConfigurationType, - validatorServices: ValidatorServices -) => {}; - -export const validate: ExternalServiceValidation = { - config: validateCommonConfig, - secrets: validateCommonSecrets, -}; diff --git a/x-pack/plugins/stack_connectors/server/plugin.test.ts b/x-pack/plugins/stack_connectors/server/plugin.test.ts index f0f86aac7f5b7..826e60ac14af8 100644 --- a/x-pack/plugins/stack_connectors/server/plugin.test.ts +++ b/x-pack/plugins/stack_connectors/server/plugin.test.ts @@ -25,7 +25,7 @@ describe('Stack Connectors Plugin', () => { it('should register built in connector types', () => { const actionsSetup = actionsMock.createSetup(); plugin.setup(coreSetup, { actions: actionsSetup }); - expect(actionsSetup.registerType).toHaveBeenCalledTimes(17); + expect(actionsSetup.registerType).toHaveBeenCalledTimes(16); expect(actionsSetup.registerType).toHaveBeenNthCalledWith( 1, expect.objectContaining({ @@ -119,26 +119,19 @@ describe('Stack Connectors Plugin', () => { ); expect(actionsSetup.registerType).toHaveBeenNthCalledWith( 15, - expect.objectContaining({ - id: '.resilient', - name: 'IBM Resilient', - }) - ); - expect(actionsSetup.registerType).toHaveBeenNthCalledWith( - 16, expect.objectContaining({ id: '.teams', name: 'Microsoft Teams', }) ); expect(actionsSetup.registerType).toHaveBeenNthCalledWith( - 17, + 16, expect.objectContaining({ id: '.torq', name: 'Torq', }) ); - expect(actionsSetup.registerSubActionConnectorType).toHaveBeenCalledTimes(6); + expect(actionsSetup.registerSubActionConnectorType).toHaveBeenCalledTimes(7); expect(actionsSetup.registerSubActionConnectorType).toHaveBeenNthCalledWith( 1, expect.objectContaining({ @@ -174,6 +167,13 @@ describe('Stack Connectors Plugin', () => { name: 'D3 Security', }) ); + expect(actionsSetup.registerSubActionConnectorType).toHaveBeenNthCalledWith( + 6, + expect.objectContaining({ + id: '.resilient', + name: 'IBM Resilient', + }) + ); }); }); }); diff --git a/x-pack/plugins/stack_connectors/server/types.ts b/x-pack/plugins/stack_connectors/server/types.ts index d9cd9f9b99cad..cb6021a923d0d 100644 --- a/x-pack/plugins/stack_connectors/server/types.ts +++ b/x-pack/plugins/stack_connectors/server/types.ts @@ -32,8 +32,6 @@ export type { ServiceNowActionParams, JiraConnectorTypeId, JiraActionParams, - ResilientConnectorTypeId, - ResilientActionParams, TeamsConnectorTypeId, TeamsActionParams, } from './connector_types'; diff --git a/x-pack/test/alerting_api_integration/basic/tests/actions/connector_types/resilient.ts b/x-pack/test/alerting_api_integration/basic/tests/actions/connector_types/resilient.ts index 20888a0fbeeb2..c38defd1c4060 100644 --- a/x-pack/test/alerting_api_integration/basic/tests/actions/connector_types/resilient.ts +++ b/x-pack/test/alerting_api_integration/basic/tests/actions/connector_types/resilient.ts @@ -51,12 +51,13 @@ export default function resilientTest({ getService }: FtrProviderContext) { it('should return 403 when creating a resilient action', async () => { await supertest - .post('/api/actions/action') + .post('/api/actions/connector') .set('kbn-xsrf', 'foo') .send({ name: 'A resilient action', - actionTypeId: '.resilient', + connector_type_id: '.resilient', config: { + ...mockResilient.config, apiUrl: resilientSimulatorURL, }, secrets: mockResilient.secrets, diff --git a/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/resilient_simulation.ts b/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/resilient_simulation.ts index e84e8fd09dc5d..a4e49966fafc6 100644 --- a/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/resilient_simulation.ts +++ b/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/resilient_simulation.ts @@ -5,6 +5,7 @@ * 2.0. */ +import http from 'http'; import { RequestHandlerContext, KibanaRequest, @@ -12,6 +13,55 @@ import { IKibanaResponse, IRouter, } from '@kbn/core/server'; +import { ProxyArgs, Simulator } from './simulator'; + +export const resilientFailedResponse = { + errors: { + message: 'failed', + }, +}; + +export class ResilientSimulator extends Simulator { + private readonly returnError: boolean; + + constructor({ returnError = false, proxy }: { returnError?: boolean; proxy?: ProxyArgs }) { + super(proxy); + + this.returnError = returnError; + } + + public async handler( + request: http.IncomingMessage, + response: http.ServerResponse, + data: Record<string, unknown> + ) { + if (this.returnError) { + return ResilientSimulator.sendErrorResponse(response); + } + return ResilientSimulator.sendResponse(request, response); + } + + private static sendResponse(request: http.IncomingMessage, response: http.ServerResponse) { + response.statusCode = 202; + response.setHeader('Content-Type', 'application/json'); + response.end( + JSON.stringify( + { + id: '123', + create_date: 1589391874472, + }, + null, + 4 + ) + ); + } + + private static sendErrorResponse(response: http.ServerResponse) { + response.statusCode = 422; + response.setHeader('Content-Type', 'application/json;charset=UTF-8'); + response.end(JSON.stringify(resilientFailedResponse, null, 4)); + } +} export function initPlugin(router: IRouter, path: string) { router.post( diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/resilient.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/resilient.ts index 4f3b107581a4d..a61696934d77b 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/resilient.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/resilient.ts @@ -5,21 +5,15 @@ * 2.0. */ -import httpProxy from 'http-proxy'; import expect from '@kbn/expect'; -import { getHttpProxyServer } from '@kbn/alerting-api-integration-helpers'; -import { - getExternalServiceSimulatorPath, - ExternalServiceSimulator, -} from '@kbn/actions-simulators-plugin/server/plugin'; import { TaskErrorSource } from '@kbn/task-manager-plugin/common'; +import { ResilientSimulator } from '@kbn/actions-simulators-plugin/server/resilient_simulation'; import { FtrProviderContext } from '../../../../../common/ftr_provider_context'; // eslint-disable-next-line import/no-default-export export default function resilientTest({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - const kibanaServer = getService('kibanaServer'); const configService = getService('config'); const mockResilient = { @@ -51,17 +45,25 @@ export default function resilientTest({ getService }: FtrProviderContext) { }, }; - let resilientSimulatorURL: string = '<could not determine kibana url>'; - describe('IBM Resilient', () => { - before(() => { - resilientSimulatorURL = kibanaServer.resolveUrl( - getExternalServiceSimulatorPath(ExternalServiceSimulator.RESILIENT) - ); - }); - describe('IBM Resilient - Action Creation', () => { - it('should return 200 when creating a ibm resilient action successfully', async () => { + const simulator = new ResilientSimulator({ + proxy: { + config: configService.get('kbnTestServer.serverArgs'), + }, + }); + + let resilientSimulatorURL: string = '<could not determine kibana url>'; + + before(async () => { + resilientSimulatorURL = await simulator.start(); + }); + + after(() => { + simulator.close(); + }); + + it('should return 200 when creating a ibm resilient connector successfully', async () => { const { body: createdAction } = await supertest .post('/api/actions/connector') .set('kbn-xsrf', 'foo') @@ -168,7 +170,7 @@ export default function resilientTest({ getService }: FtrProviderContext) { statusCode: 400, error: 'Bad Request', message: - 'error validating action type config: error configuring connector action: target url "http://resilient.mynonexistent.com" is not added to the Kibana config xpack.actions.allowedHosts', + 'error validating action type config: error validating url: target url "http://resilient.mynonexistent.com" is not added to the Kibana config xpack.actions.allowedHosts', }); }); }); @@ -198,37 +200,28 @@ export default function resilientTest({ getService }: FtrProviderContext) { }); describe('IBM Resilient - Executor', () => { - let simulatedActionId: string; - let proxyServer: httpProxy | undefined; - let proxyHaveBeenCalled = false; - before(async () => { - const { body } = await supertest - .post('/api/actions/connector') - .set('kbn-xsrf', 'foo') - .send({ - name: 'A ibm resilient simulator', - connector_type_id: '.resilient', - config: { - apiUrl: resilientSimulatorURL, - orgId: mockResilient.config.orgId, - }, - secrets: mockResilient.secrets, - }); - simulatedActionId = body.id; - - proxyServer = await getHttpProxyServer( - kibanaServer.resolveUrl('/'), - configService.get('kbnTestServer.serverArgs'), - () => { - proxyHaveBeenCalled = true; - } - ); - }); - describe('Validation', () => { + const simulator = new ResilientSimulator({ + proxy: { + config: configService.get('kbnTestServer.serverArgs'), + }, + }); + + let resilientActionId: string; + let resilientSimulatorURL: string = '<could not determine kibana url>'; + + before(async () => { + resilientSimulatorURL = await simulator.start(); + resilientActionId = await createConnector(resilientSimulatorURL); + }); + + after(() => { + simulator.close(); + }); + it('should handle failing with a simulated success without action', async () => { await supertest - .post(`/api/actions/connector/${simulatedActionId}/_execute`) + .post(`/api/actions/connector/${resilientActionId}/_execute`) .set('kbn-xsrf', 'foo') .send({ params: {}, @@ -241,25 +234,25 @@ export default function resilientTest({ getService }: FtrProviderContext) { 'errorSource', 'connector_id', ]); - expect(resp.body.connector_id).to.eql(simulatedActionId); + expect(resp.body.connector_id).to.eql(resilientActionId); expect(resp.body.status).to.eql('error'); }); }); it('should handle failing with a simulated success without unsupported action', async () => { await supertest - .post(`/api/actions/connector/${simulatedActionId}/_execute`) + .post(`/api/actions/connector/${resilientActionId}/_execute`) .set('kbn-xsrf', 'foo') .send({ params: { subAction: 'non-supported' }, }) .then((resp: any) => { expect(resp.body).to.eql({ - connector_id: simulatedActionId, + connector_id: resilientActionId, status: 'error', - retry: false, - message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getFields]\n- [1.subAction]: expected value to equal [getIncident]\n- [2.subAction]: expected value to equal [handshake]\n- [3.subAction]: expected value to equal [pushToService]\n- [4.subAction]: expected value to equal [incidentTypes]\n- [5.subAction]: expected value to equal [severity]', + retry: true, + message: 'an error occurred while running the action', + service_message: `Sub action "non-supported" is not registered. Connector id: ${resilientActionId}. Connector name: IBM Resilient. Connector type: .resilient`, errorSource: TaskErrorSource.FRAMEWORK, }); }); @@ -267,18 +260,19 @@ export default function resilientTest({ getService }: FtrProviderContext) { it('should handle failing with a simulated success without subActionParams', async () => { await supertest - .post(`/api/actions/connector/${simulatedActionId}/_execute`) + .post(`/api/actions/connector/${resilientActionId}/_execute`) .set('kbn-xsrf', 'foo') .send({ params: { subAction: 'pushToService' }, }) .then((resp: any) => { expect(resp.body).to.eql({ - connector_id: simulatedActionId, + connector_id: resilientActionId, status: 'error', - retry: false, - message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getFields]\n- [1.subAction]: expected value to equal [getIncident]\n- [2.subAction]: expected value to equal [handshake]\n- [3.subActionParams.incident.name]: expected value of type [string] but got [undefined]\n- [4.subAction]: expected value to equal [incidentTypes]\n- [5.subAction]: expected value to equal [severity]', + retry: true, + message: 'an error occurred while running the action', + service_message: + 'Request validation failed (Error: [incident.name]: expected value of type [string] but got [undefined])', errorSource: TaskErrorSource.FRAMEWORK, }); }); @@ -286,7 +280,7 @@ export default function resilientTest({ getService }: FtrProviderContext) { it('should handle failing with a simulated success without title', async () => { await supertest - .post(`/api/actions/connector/${simulatedActionId}/_execute`) + .post(`/api/actions/connector/${resilientActionId}/_execute`) .set('kbn-xsrf', 'foo') .send({ params: { @@ -301,19 +295,20 @@ export default function resilientTest({ getService }: FtrProviderContext) { }) .then((resp: any) => { expect(resp.body).to.eql({ - connector_id: simulatedActionId, + connector_id: resilientActionId, status: 'error', - retry: false, + retry: true, + message: 'an error occurred while running the action', errorSource: TaskErrorSource.FRAMEWORK, - message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getFields]\n- [1.subAction]: expected value to equal [getIncident]\n- [2.subAction]: expected value to equal [handshake]\n- [3.subActionParams.incident.name]: expected value of type [string] but got [undefined]\n- [4.subAction]: expected value to equal [incidentTypes]\n- [5.subAction]: expected value to equal [severity]', + service_message: + 'Request validation failed (Error: [incident.name]: expected value of type [string] but got [undefined])', }); }); }); it('should handle failing with a simulated success without commentId', async () => { await supertest - .post(`/api/actions/connector/${simulatedActionId}/_execute`) + .post(`/api/actions/connector/${resilientActionId}/_execute`) .set('kbn-xsrf', 'foo') .send({ params: { @@ -329,23 +324,24 @@ export default function resilientTest({ getService }: FtrProviderContext) { }) .then((resp: any) => { expect(resp.body).to.eql({ - connector_id: simulatedActionId, + connector_id: resilientActionId, status: 'error', - retry: false, + retry: true, + message: 'an error occurred while running the action', errorSource: TaskErrorSource.FRAMEWORK, - message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getFields]\n- [1.subAction]: expected value to equal [getIncident]\n- [2.subAction]: expected value to equal [handshake]\n- [3.subActionParams.comments]: types that failed validation:\n - [subActionParams.comments.0.0.commentId]: expected value of type [string] but got [undefined]\n - [subActionParams.comments.1]: expected value to equal [null]\n- [4.subAction]: expected value to equal [incidentTypes]\n- [5.subAction]: expected value to equal [severity]', + service_message: + 'Request validation failed (Error: [comments]: types that failed validation:\n- [comments.0.0.commentId]: expected value of type [string] but got [undefined]\n- [comments.1]: expected value to equal [null])', }); }); }); it('should handle failing with a simulated success without comment message', async () => { await supertest - .post(`/api/actions/connector/${simulatedActionId}/_execute`) + .post(`/api/actions/connector/${resilientActionId}/_execute`) .set('kbn-xsrf', 'foo') .send({ params: { - ...mockResilient.params, + subAction: 'pushToService', subActionParams: { incident: { ...mockResilient.params.subActionParams.incident, @@ -357,21 +353,40 @@ export default function resilientTest({ getService }: FtrProviderContext) { }) .then((resp: any) => { expect(resp.body).to.eql({ - connector_id: simulatedActionId, + connector_id: resilientActionId, status: 'error', - retry: false, + retry: true, + message: 'an error occurred while running the action', errorSource: TaskErrorSource.FRAMEWORK, - message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getFields]\n- [1.subAction]: expected value to equal [getIncident]\n- [2.subAction]: expected value to equal [handshake]\n- [3.subActionParams.comments]: types that failed validation:\n - [subActionParams.comments.0.0.comment]: expected value of type [string] but got [undefined]\n - [subActionParams.comments.1]: expected value to equal [null]\n- [4.subAction]: expected value to equal [incidentTypes]\n- [5.subAction]: expected value to equal [severity]', + service_message: + 'Request validation failed (Error: [comments]: types that failed validation:\n- [comments.0.0.comment]: expected value of type [string] but got [undefined]\n- [comments.1]: expected value to equal [null])', }); }); }); }); describe('Execution', () => { + const simulator = new ResilientSimulator({ + proxy: { + config: configService.get('kbnTestServer.serverArgs'), + }, + }); + + let simulatorUrl: string; + let resilientActionId: string; + + before(async () => { + simulatorUrl = await simulator.start(); + resilientActionId = await createConnector(simulatorUrl); + }); + + after(() => { + simulator.close(); + }); + it('should handle creating an incident without comments', async () => { const { body } = await supertest - .post(`/api/actions/connector/${simulatedActionId}/_execute`) + .post(`/api/actions/connector/${resilientActionId}/_execute`) .set('kbn-xsrf', 'foo') .send({ params: { @@ -384,25 +399,33 @@ export default function resilientTest({ getService }: FtrProviderContext) { }) .expect(200); - expect(proxyHaveBeenCalled).to.equal(true); expect(body).to.eql({ status: 'ok', - connector_id: simulatedActionId, + connector_id: resilientActionId, data: { id: '123', title: '123', pushedDate: '2020-05-13T17:44:34.472Z', - url: `${resilientSimulatorURL}/#incidents/123`, + url: `${simulatorUrl}/#incidents/123`, }, }); }); }); - after(() => { - if (proxyServer) { - proxyServer.close(); - } - }); + const createConnector = async (url: string) => { + const { body } = await supertest + .post('/api/actions/connector') + .set('kbn-xsrf', 'foo') + .send({ + name: 'A resilient action', + connector_type_id: '.resilient', + config: { ...mockResilient.config, apiUrl: url }, + secrets: mockResilient.secrets, + }) + .expect(200); + + return body.id; + }; }); }); } From 63a56dbabbc9aa4e79ceb50d41b8372264ce877f Mon Sep 17 00:00:00 2001 From: Tomasz Ciecierski <tomasz.ciecierski@elastic.co> Date: Thu, 25 Apr 2024 08:42:58 +0200 Subject: [PATCH 183/183] =?UTF-8?q?Revert=20"[Cypress]=20Hardcode=20fleet?= =?UTF-8?q?=20server=208.13.0=20version=20in=20tests=20(#180=E2=80=A6=20(#?= =?UTF-8?q?181341)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugins/security_solution/scripts/run_cypress/parallel.ts | 2 -- x-pack/test/osquery_cypress/fleet_server.ts | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/security_solution/scripts/run_cypress/parallel.ts b/x-pack/plugins/security_solution/scripts/run_cypress/parallel.ts index 8522210a96478..67cc7c743be11 100644 --- a/x-pack/plugins/security_solution/scripts/run_cypress/parallel.ts +++ b/x-pack/plugins/security_solution/scripts/run_cypress/parallel.ts @@ -343,8 +343,6 @@ ${JSON.stringify( fleetServer = await startFleetServer({ kbnClient, - // TODO TC: https://github.com/elastic/kibana/pull/180879 - there was an issue with 8.14.0, this should be removed when it's fixed - version: '8.13.0-SNAPSHOT', logger: log, port: fleetServerPort ?? config.has('servers.fleetserver.port') diff --git a/x-pack/test/osquery_cypress/fleet_server.ts b/x-pack/test/osquery_cypress/fleet_server.ts index 4d606d09e3ee7..264bf9f869891 100644 --- a/x-pack/test/osquery_cypress/fleet_server.ts +++ b/x-pack/test/osquery_cypress/fleet_server.ts @@ -12,6 +12,7 @@ import { startFleetServer, } from '@kbn/security-solution-plugin/scripts/endpoint/common/fleet_server/fleet_server_services'; import { Manager } from './resource_manager'; +import { getLatestAvailableAgentVersion } from './utils'; export class FleetManager extends Manager { private fleetServer: StartedFleetServer | undefined = undefined; @@ -25,8 +26,7 @@ export class FleetManager extends Manager { } public async setup(): Promise<void> { - // TODO TC: https://github.com/elastic/kibana/pull/180879 - there was an issue with 8.14.0, this should be removed when it's fixed - const version = '8.13.0-SNAPSHOT'; + const version = await getLatestAvailableAgentVersion(this.kbnClient); this.fleetServer = await startFleetServer({ kbnClient: this.kbnClient, logger: this.log,