From 8911bfabb04b7058fe07a81d07e522ac20c37ec5 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Fri, 12 May 2023 06:04:52 -0400 Subject: [PATCH] SavedObjectsRepository code cleanup (bis) (#157363) ## Summary Follow-up of https://github.com/elastic/kibana/pull/157154 Continue the cleanup started in the previous PR, by moving more things around. - Move everything search-related (dsl, aggregations, kql utils) to a dedicated `search` folder - Move a few more things to `/apis/internals` - Remove the 'v5' field compatibility in the field list generation (see comment) - Cleanup some files a bit. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../src/lib/apis/bulk_delete.ts | 6 +++--- .../src/lib/apis/bulk_get.ts | 11 ++++++----- .../src/lib/apis/delete.ts | 2 +- .../src/lib/apis/delete_by_namespace.ts | 2 +- .../src/lib/apis/find.ts | 10 ++++++---- .../src/lib/apis/helpers/preflight_check.ts | 2 +- ...ect_multi_namespace_references.test.mock.ts | 4 ++-- .../collect_multi_namespace_references.ts | 8 +++++--- .../delete_legacy_url_aliases.test.mock.ts | 8 ++++++-- .../delete_legacy_url_aliases.test.ts | 1 - .../internals}/delete_legacy_url_aliases.ts | 5 ++--- .../internals}/find_legacy_url_aliases.test.ts | 7 +++---- .../internals}/find_legacy_url_aliases.ts | 2 +- .../preflight_check_for_create.test.mock.ts | 4 ++-- .../preflight_check_for_create.test.ts | 1 - .../internals/preflight_check_for_create.ts | 2 +- .../repository_bulk_delete_internal_types.ts | 4 ++-- .../update_objects_spaces.test.mock.ts | 4 ++-- .../apis/internals/update_objects_spaces.ts | 2 +- .../src/lib/apis/remove_references_to.ts | 4 ++-- .../src/lib/apis/types.ts | 5 +++++ .../src/lib/index.ts | 1 - .../repository.encryption_extension.test.ts | 3 --- .../lib/repository.security_extension.test.ts | 3 --- .../lib/repository.spaces_extension.test.ts | 3 --- .../src/lib/repository.test.mock.ts | 6 +++--- .../src/lib/repository.test.ts | 1 - .../src/lib/repository_es_client.ts | 2 +- .../aggregations/aggs_types/bucket_aggs.ts | 0 .../aggregations/aggs_types/common_schemas.ts | 0 .../aggregations/aggs_types/index.ts | 0 .../aggregations/aggs_types/metrics_aggs.ts | 0 .../aggregations/aggs_types/pipeline_aggs.ts | 0 .../aggregations/aggs_types/schemas.test.ts | 0 .../src/lib/{ => search}/aggregations/index.ts | 0 .../aggregations/validation.test.ts | 0 .../{ => search}/aggregations/validation.ts | 2 +- .../aggregations/validation_utils.test.ts | 0 .../aggregations/validation_utils.ts | 2 +- .../{legacy_url_aliases => search}/index.ts | 7 +++---- .../__snapshots__/sorting_params.test.ts.snap | 0 .../src/lib/{ => search}/search_dsl/index.ts | 0 .../{ => search}/search_dsl/pit_params.test.ts | 0 .../lib/{ => search}/search_dsl/pit_params.ts | 0 .../search_dsl/query_params.test.ts | 5 ++--- .../search_dsl/query_params.tests.mocks.ts | 0 .../{ => search}/search_dsl/query_params.ts | 5 ++--- .../search_dsl/references_filter.test.ts | 0 .../search_dsl/references_filter.ts | 1 - .../{ => search}/search_dsl/search_dsl.test.ts | 0 .../lib/{ => search}/search_dsl/search_dsl.ts | 0 .../search_dsl/sorting_params.test.ts | 0 .../{ => search}/search_dsl/sorting_params.ts | 0 .../{ => search/utils}/filter_utils.test.ts | 0 .../src/lib/{ => search/utils}/filter_utils.ts | 0 .../src/lib/search/utils/index.ts | 15 +++++++++++++++ .../lib/{ => utils}/decorate_es_error.test.ts | 0 .../src/lib/{ => utils}/decorate_es_error.ts | 0 .../lib/{ => utils}/included_fields.test.ts | 18 +++++------------- .../src/lib/{ => utils}/included_fields.ts | 15 +++++---------- .../src/lib/utils/index.ts | 10 ++++++++++ 61 files changed, 100 insertions(+), 93 deletions(-) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{legacy_url_aliases => apis/internals}/delete_legacy_url_aliases.test.mock.ts (84%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{legacy_url_aliases => apis/internals}/delete_legacy_url_aliases.test.ts (99%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{legacy_url_aliases => apis/internals}/delete_legacy_url_aliases.ts (97%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{legacy_url_aliases => apis/internals}/find_legacy_url_aliases.test.ts (98%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{legacy_url_aliases => apis/internals}/find_legacy_url_aliases.ts (97%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => apis/internals}/repository_bulk_delete_internal_types.ts (95%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/aggs_types/bucket_aggs.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/aggs_types/common_schemas.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/aggs_types/index.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/aggs_types/metrics_aggs.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/aggs_types/pipeline_aggs.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/aggs_types/schemas.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/index.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/validation.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/validation.ts (99%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/validation_utils.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/aggregations/validation_utils.ts (96%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{legacy_url_aliases => search}/index.ts (62%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/__snapshots__/sorting_params.test.ts.snap (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/index.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/pit_params.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/pit_params.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/query_params.test.ts (99%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/query_params.tests.mocks.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/query_params.ts (99%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/references_filter.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/references_filter.ts (99%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/search_dsl.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/search_dsl.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/sorting_params.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search}/search_dsl/sorting_params.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search/utils}/filter_utils.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => search/utils}/filter_utils.ts (100%) create mode 100644 packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/index.ts rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => utils}/decorate_es_error.test.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => utils}/decorate_es_error.ts (100%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => utils}/included_fields.test.ts (84%) rename packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/{ => utils}/included_fields.ts (73%) create mode 100644 packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/index.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_delete.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_delete.ts index 768dcf91b61c99..e08cfc294e5fd4 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_delete.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_delete.ts @@ -32,8 +32,8 @@ import { right, } from './utils'; import type { ApiExecutionContext } from './types'; -import { deleteLegacyUrlAliases } from '../legacy_url_aliases'; -import { +import { deleteLegacyUrlAliases } from './internals/delete_legacy_url_aliases'; +import type { BulkDeleteExpectedBulkGetResult, BulkDeleteItemErrorResult, BulkDeleteParams, @@ -41,7 +41,7 @@ import { ExpectedBulkDeleteResult, NewBulkItemResponse, ObjectToDeleteAliasesFor, -} from '../repository_bulk_delete_internal_types'; +} from './internals/repository_bulk_delete_internal_types'; export interface PerformBulkDeleteParams { objects: SavedObjectsBulkDeleteObject[]; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts index 19ac91083c8ce1..745f61784416d9 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts @@ -21,6 +21,7 @@ import { SavedObjectsBulkResponse, SavedObjectsGetOptions, } from '@kbn/core-saved-objects-api-server'; +import { includedFields } from '../utils'; import { Either, errorContent, @@ -32,13 +33,17 @@ import { rawDocExistsInNamespaces, } from './utils'; import { ApiExecutionContext } from './types'; -import { includedFields } from '../included_fields'; export interface PerformBulkGetParams { objects: SavedObjectsBulkGetObject[]; options: SavedObjectsGetOptions; } +type ExpectedBulkGetResult = Either< + { type: string; id: string; error: Payload }, + { type: string; id: string; fields?: string[]; namespaces?: string[]; esRequestIndex: number } +>; + export const performBulkGet = async ( { objects, options }: PerformBulkGetParams, { helpers, allowedTypes, client, serializer, registry, extensions = {} }: ApiExecutionContext @@ -75,10 +80,6 @@ export const performBulkGet = async ( }; let bulkGetRequestIndexCounter = 0; - type ExpectedBulkGetResult = Either< - { type: string; id: string; error: Payload }, - { type: string; id: string; fields?: string[]; namespaces?: string[]; esRequestIndex: number } - >; const expectedBulkGetResults = await Promise.all( objects.map>(async (object) => { const { type, id, fields } = object; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete.ts index f687091ca8ab4c..fea847549db7ea 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete.ts @@ -11,7 +11,7 @@ import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-server'; import { ALL_NAMESPACES_STRING } from '@kbn/core-saved-objects-utils-server'; import { SavedObjectsDeleteOptions } from '@kbn/core-saved-objects-api-server'; import { DEFAULT_REFRESH_SETTING } from '../constants'; -import { deleteLegacyUrlAliases } from '../legacy_url_aliases'; +import { deleteLegacyUrlAliases } from './internals/delete_legacy_url_aliases'; import { getExpectedVersionProperties } from './utils'; import { PreflightCheckNamespacesResult } from './helpers'; import type { ApiExecutionContext } from './types'; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete_by_namespace.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete_by_namespace.ts index 2848f8d6006585..96b70552a0fd63 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete_by_namespace.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/delete_by_namespace.ts @@ -14,8 +14,8 @@ import { getRootPropertiesObjects, LEGACY_URL_ALIAS_TYPE, } from '@kbn/core-saved-objects-base-server-internal'; +import { getSearchDsl } from '../search'; import type { ApiExecutionContext } from './types'; -import { getSearchDsl } from '../search_dsl'; export interface PerformDeleteByNamespaceParams { namespace: string; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts index ec24818df90a08..697af05ce4eb4e 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts @@ -28,10 +28,12 @@ import { SavedObjectsFindResponse, } from '@kbn/core-saved-objects-api-server'; import { ApiExecutionContext } from './types'; -import { validateConvertFilterToKueryNode } from '../filter_utils'; -import { validateAndConvertAggregations } from '../aggregations'; -import { includedFields } from '../included_fields'; -import { getSearchDsl } from '../search_dsl'; +import { + validateConvertFilterToKueryNode, + getSearchDsl, + validateAndConvertAggregations, +} from '../search'; +import { includedFields } from '../utils'; export interface PerformFindParams { options: SavedObjectsFindOptions; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/preflight_check.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/preflight_check.ts index d51727ec3a8594..5cf2bfbf21d995 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/preflight_check.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/preflight_check.ts @@ -15,7 +15,7 @@ import type { import { SavedObjectsUtils } from '@kbn/core-saved-objects-utils-server'; import { SavedObjectsErrorHelpers, SavedObjectsRawDocSource } from '@kbn/core-saved-objects-server'; import type { RepositoryEsClient } from '../../repository_es_client'; -import type { PreflightCheckForBulkDeleteParams } from '../../repository_bulk_delete_internal_types'; +import type { PreflightCheckForBulkDeleteParams } from '../internals/repository_bulk_delete_internal_types'; import type { CreatePointInTimeFinderFn } from '../../point_in_time_finder'; import { getSavedObjectNamespaces, diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.test.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.test.mock.ts index 4debe9b5b3995d..a50825c2593458 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.test.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.test.mock.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { findLegacyUrlAliases } from '../../legacy_url_aliases'; +import type { findLegacyUrlAliases } from './find_legacy_url_aliases'; import type { findSharedOriginObjects } from '../utils/find_shared_origin_objects'; import type * as InternalUtils from '../utils/internal_utils'; @@ -14,7 +14,7 @@ export const mockFindLegacyUrlAliases = jest.fn() as jest.MockedFunction< typeof findLegacyUrlAliases >; -jest.mock('../../legacy_url_aliases', () => { +jest.mock('./find_legacy_url_aliases', () => { return { findLegacyUrlAliases: mockFindLegacyUrlAliases }; }); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.ts index 260fa7c6adf16a..87254d1608515f 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/collect_multi_namespace_references.ts @@ -22,8 +22,8 @@ import { } from '@kbn/core-saved-objects-server'; import { SavedObjectsUtils } from '@kbn/core-saved-objects-utils-server'; import { getObjectKey, parseObjectKey } from '@kbn/core-saved-objects-base-server-internal'; -import { findLegacyUrlAliases } from '../../legacy_url_aliases'; -import { getRootFields } from '../../included_fields'; +import { findLegacyUrlAliases } from './find_legacy_url_aliases'; +import { getRootFields } from '../../utils'; import type { CreatePointInTimeFinderFn } from '../../point_in_time_finder'; import type { RepositoryEsClient } from '../../repository_es_client'; import { @@ -123,7 +123,9 @@ export async function collectMultiNamespaceReferences( return { ...obj, spacesWithMatchingAliases, spacesWithMatchingOrigins }; }); - if (!securityExtension) return { objects: results }; + if (!securityExtension) { + return { objects: results }; + } // Now that we have *all* information for the object graph, if the Security extension is enabled, we can: check/enforce authorization, // write audit events, filter the object graph, and redact spaces from the objects. diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.test.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.test.mock.ts similarity index 84% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.test.mock.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.test.mock.ts index 0922910936c521..99a78f14cdf368 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.test.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.test.mock.ts @@ -15,6 +15,10 @@ jest.mock('@kbn/core-elasticsearch-client-server-internal', () => { }); // Mock this function to return empty results, as this simplifies test cases and we don't need to exercise alternate code paths for these -jest.mock('../search_dsl', () => { - return { getSearchDsl: jest.fn() }; +jest.mock('../../search', () => { + const actual = jest.requireActual('../../search'); + return { + ...actual, + getSearchDsl: jest.fn(), + }; }); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.test.ts similarity index 99% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.test.ts index 77a538672ff198..5236456ab7a3e5 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.test.ts @@ -9,7 +9,6 @@ import { mockGetEsErrorMessage } from './delete_legacy_url_aliases.test.mock'; // Note: importing this file applies default mocks for other functions too import { errors as EsErrors } from '@elastic/elasticsearch'; - import { elasticsearchClientMock } from '@kbn/core-elasticsearch-client-server-mocks'; import { ALL_NAMESPACES_STRING } from '@kbn/core-saved-objects-utils-server'; import { typeRegistryMock } from '@kbn/core-saved-objects-base-server-mocks'; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.ts similarity index 97% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.ts index 73489308f59afc..5e539a0a2c759a 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/delete_legacy_url_aliases.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/delete_legacy_url_aliases.ts @@ -7,7 +7,6 @@ */ import * as esKuery from '@kbn/es-query'; - import { getErrorMessage as getEsErrorMessage } from '@kbn/core-elasticsearch-client-server-internal'; import type { ISavedObjectTypeRegistry } from '@kbn/core-saved-objects-server'; import { ALL_NAMESPACES_STRING } from '@kbn/core-saved-objects-utils-server'; @@ -15,8 +14,8 @@ import { LEGACY_URL_ALIAS_TYPE, type IndexMapping, } from '@kbn/core-saved-objects-base-server-internal'; -import type { RepositoryEsClient } from '../repository_es_client'; -import { getSearchDsl } from '../search_dsl'; +import type { RepositoryEsClient } from '../../repository_es_client'; +import { getSearchDsl } from '../../search'; /** @internal */ export interface DeleteLegacyUrlAliasesParams { diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/find_legacy_url_aliases.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/find_legacy_url_aliases.test.ts similarity index 98% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/find_legacy_url_aliases.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/find_legacy_url_aliases.test.ts index 41c4a3f726549d..47301a515152da 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/find_legacy_url_aliases.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/find_legacy_url_aliases.test.ts @@ -7,15 +7,14 @@ */ import { DeeplyMockedKeys } from '@kbn/utility-types-jest'; - import { type LegacyUrlAlias, LEGACY_URL_ALIAS_TYPE, } from '@kbn/core-saved-objects-base-server-internal'; -import { CreatePointInTimeFinderFn, PointInTimeFinder } from '../point_in_time_finder'; -import { findLegacyUrlAliases } from './find_legacy_url_aliases'; -import { savedObjectsPointInTimeFinderMock } from '../../mocks'; import { SavedObjectsPointInTimeFinderClient } from '@kbn/core-saved-objects-api-server'; +import { savedObjectsPointInTimeFinderMock } from '../../../mocks'; +import { CreatePointInTimeFinderFn, PointInTimeFinder } from '../../point_in_time_finder'; +import { findLegacyUrlAliases } from './find_legacy_url_aliases'; describe('findLegacyUrlAliases', () => { let pitFinderClientMock: jest.Mocked; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/find_legacy_url_aliases.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/find_legacy_url_aliases.ts similarity index 97% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/find_legacy_url_aliases.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/find_legacy_url_aliases.ts index 62bf5a51d88936..e060f11120a723 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/find_legacy_url_aliases.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/find_legacy_url_aliases.ts @@ -12,7 +12,7 @@ import { LEGACY_URL_ALIAS_TYPE, getObjectKey, } from '@kbn/core-saved-objects-base-server-internal'; -import type { CreatePointInTimeFinderFn } from '../point_in_time_finder'; +import type { CreatePointInTimeFinderFn } from '../../point_in_time_finder'; interface FindLegacyUrlAliasesObject { type: string; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.mock.ts index e48f4ed1f69070..c20f6c0dc4b65b 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.mock.ts @@ -6,14 +6,14 @@ * Side Public License, v 1. */ -import type { findLegacyUrlAliases } from '../../legacy_url_aliases'; +import type { findLegacyUrlAliases } from './find_legacy_url_aliases'; import type * as InternalUtils from '../utils/internal_utils'; export const mockFindLegacyUrlAliases = jest.fn() as jest.MockedFunction< typeof findLegacyUrlAliases >; -jest.mock('../../legacy_url_aliases', () => { +jest.mock('./find_legacy_url_aliases', () => { return { findLegacyUrlAliases: mockFindLegacyUrlAliases }; }); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.ts index c07134259d4b86..bc81f208579834 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.test.ts @@ -12,7 +12,6 @@ import { } from './preflight_check_for_create.test.mock'; import type { DeeplyMockedKeys } from '@kbn/utility-types-jest'; - import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; import { elasticsearchClientMock } from '@kbn/core-elasticsearch-client-server-mocks'; import { diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.ts index aec1ac9991d4cd..31f0b4aa7ede95 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/preflight_check_for_create.ts @@ -21,7 +21,7 @@ import { getObjectKey, type LegacyUrlAlias, } from '@kbn/core-saved-objects-base-server-internal'; -import { findLegacyUrlAliases } from '../../legacy_url_aliases'; +import { findLegacyUrlAliases } from './find_legacy_url_aliases'; import type { CreatePointInTimeFinderFn } from '../../point_in_time_finder'; import type { RepositoryEsClient } from '../../repository_es_client'; import { left, right, isLeft, isRight, rawDocExistsInNamespaces, type Either } from '../utils'; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository_bulk_delete_internal_types.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/repository_bulk_delete_internal_types.ts similarity index 95% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository_bulk_delete_internal_types.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/repository_bulk_delete_internal_types.ts index 91df89b9be0702..5b492477cd3dd1 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository_bulk_delete_internal_types.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/repository_bulk_delete_internal_types.ts @@ -12,8 +12,8 @@ import type { ErrorCause, } from '@elastic/elasticsearch/lib/api/types'; import type { estypes, TransportResult } from '@elastic/elasticsearch'; -import type { Either } from './apis/utils'; -import type { DeleteLegacyUrlAliasesParams } from './legacy_url_aliases'; +import type { Either } from '../utils'; +import type { DeleteLegacyUrlAliasesParams } from './delete_legacy_url_aliases'; /** * @internal diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.test.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.test.mock.ts index 20fa8daaac167d..f55330bded4bc4 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.test.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.test.mock.ts @@ -7,7 +7,7 @@ */ import type * as InternalUtils from '../utils/internal_utils'; -import type { deleteLegacyUrlAliases } from '../../legacy_url_aliases'; +import type { deleteLegacyUrlAliases } from './delete_legacy_url_aliases'; export const mockGetBulkOperationError = jest.fn() as jest.MockedFunction< typeof InternalUtils['getBulkOperationError'] @@ -32,6 +32,6 @@ jest.mock('../utils/internal_utils', () => { export const mockDeleteLegacyUrlAliases = jest.fn() as jest.MockedFunction< typeof deleteLegacyUrlAliases >; -jest.mock('../../legacy_url_aliases', () => ({ +jest.mock('./delete_legacy_url_aliases', () => ({ deleteLegacyUrlAliases: mockDeleteLegacyUrlAliases, })); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.ts index 62b006cc0d9acb..66d1f0364e2cb5 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/update_objects_spaces.ts @@ -44,7 +44,7 @@ import type { RepositoryEsClient } from '../../repository_es_client'; import { deleteLegacyUrlAliases, type DeleteLegacyUrlAliasesParams, -} from '../../legacy_url_aliases'; +} from './delete_legacy_url_aliases'; /** * Parameters for the updateObjectsSpaces function. diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/remove_references_to.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/remove_references_to.ts index 5b3117a0cd52f9..b1ce153729f79f 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/remove_references_to.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/remove_references_to.ts @@ -12,8 +12,8 @@ import { SavedObjectsRemoveReferencesToOptions, SavedObjectsRemoveReferencesToResponse, } from '@kbn/core-saved-objects-api-server'; -import { ApiExecutionContext } from './types'; -import { getSearchDsl } from '../search_dsl'; +import { getSearchDsl } from '../search'; +import type { ApiExecutionContext } from './types'; export interface PerformRemoveReferencesToParams { type: string; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/types.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/types.ts index bfa07e4bf5dcc1..882ea8f5c19f28 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/types.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/types.ts @@ -16,6 +16,11 @@ import type { IKibanaMigrator, IndexMapping } from '@kbn/core-saved-objects-base import type { RepositoryHelpers } from './helpers'; import type { RepositoryEsClient } from '../repository_es_client'; +/** + * Context passed from the SO repository to the API execution handlers. + * + * @internal + */ export interface ApiExecutionContext { registry: ISavedObjectTypeRegistry; helpers: RepositoryHelpers; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/index.ts index c53306047c53f6..cfe52298c73862 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/index.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/index.ts @@ -9,5 +9,4 @@ export { SavedObjectsRepository } from './repository'; export { SavedObjectsClientProvider } from './scoped_client_provider'; export { PointInTimeFinder } from './point_in_time_finder'; - export type { ISavedObjectsClientProvider } from './scoped_client_provider'; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.encryption_extension.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.encryption_extension.test.ts index 56b9f433a95935..9c2c70e27d1215 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.encryption_extension.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.encryption_extension.test.ts @@ -47,9 +47,6 @@ import { } from '../test_helpers/repository.test.common'; import { savedObjectsExtensionsMock } from '../mocks/saved_objects_extensions.mock'; -// BEWARE: The SavedObjectClient depends on the implementation details of the SavedObjectsRepository -// so any breaking changes to this repository are considered breaking changes to the SavedObjectsClient. - describe('SavedObjectsRepository Encryption Extension', () => { let client: ReturnType; let repository: SavedObjectsRepository; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.security_extension.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.security_extension.test.ts index 71788876b43098..d9dfc0ed3d5966 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.security_extension.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.security_extension.test.ts @@ -65,9 +65,6 @@ import { import { savedObjectsExtensionsMock } from '../mocks/saved_objects_extensions.mock'; import { arrayMapsAreEqual } from '@kbn/core-saved-objects-utils-server'; -// BEWARE: The SavedObjectClient depends on the implementation details of the SavedObjectsRepository -// so any breaking changes to this repository are considered breaking changes to the SavedObjectsClient. - describe('SavedObjectsRepository Security Extension', () => { let client: ReturnType; let repository: SavedObjectsRepository; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts index ff99224c13fe2f..a000384ce52361 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts @@ -62,9 +62,6 @@ import { } from '../test_helpers/repository.test.common'; import { savedObjectsExtensionsMock } from '../mocks/saved_objects_extensions.mock'; -// BEWARE: The SavedObjectClient depends on the implementation details of the SavedObjectsRepository -// so any breaking changes to this repository are considered breaking changes to the SavedObjectsClient. - const ERROR_NAMESPACE_SPECIFIED = 'Spaces currently determines the namespaces'; describe('SavedObjectsRepository Spaces Extension', () => { diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.mock.ts index 6a2cfa16e24701..ffce1a441b110a 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.mock.ts @@ -11,7 +11,7 @@ import type { internalBulkResolve } from './apis/internals/internal_bulk_resolve import type * as InternalUtils from './apis/utils/internal_utils'; import type { preflightCheckForCreate } from './apis/internals/preflight_check_for_create'; import type { updateObjectsSpaces } from './apis/internals/update_objects_spaces'; -import type { deleteLegacyUrlAliases } from './legacy_url_aliases'; +import type { deleteLegacyUrlAliases } from './apis/internals/delete_legacy_url_aliases'; export const mockCollectMultiNamespaceReferences = jest.fn() as jest.MockedFunction< typeof collectMultiNamespaceReferences @@ -66,9 +66,9 @@ jest.doMock('./point_in_time_finder', () => ({ export const mockDeleteLegacyUrlAliases = jest.fn() as jest.MockedFunction< typeof deleteLegacyUrlAliases >; -jest.mock('./legacy_url_aliases', () => ({ +jest.mock('./apis/internals/delete_legacy_url_aliases', () => ({ deleteLegacyUrlAliases: mockDeleteLegacyUrlAliases, })); export const mockGetSearchDsl = jest.fn(); -jest.mock('./search_dsl/search_dsl', () => ({ getSearchDsl: mockGetSearchDsl })); +jest.mock('./search/search_dsl', () => ({ getSearchDsl: mockGetSearchDsl })); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.ts index 372489c379a4bc..d64d41abaef598 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.test.ts @@ -3792,7 +3792,6 @@ describe('SavedObjectsRepository', () => { 'updated_at', 'created_at', 'originId', - 'title', ], }), }), diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository_es_client.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository_es_client.ts index 14dcb996267892..5a4635353ba2e6 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository_es_client.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository_es_client.ts @@ -10,7 +10,7 @@ import type { TransportRequestOptions } from '@elastic/elasticsearch'; import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; import { retryCallCluster } from '@kbn/core-elasticsearch-server-internal'; -import { decorateEsError } from './decorate_es_error'; +import { decorateEsError } from './utils'; const methods = [ 'bulk', diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/bucket_aggs.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/bucket_aggs.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/bucket_aggs.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/bucket_aggs.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/common_schemas.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/common_schemas.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/common_schemas.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/common_schemas.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/index.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/index.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/index.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/metrics_aggs.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/metrics_aggs.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/metrics_aggs.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/metrics_aggs.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/pipeline_aggs.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/pipeline_aggs.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/pipeline_aggs.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/pipeline_aggs.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/schemas.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/schemas.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/aggs_types/schemas.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/aggs_types/schemas.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/index.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/index.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/index.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation.ts similarity index 99% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation.ts index c673f73d8d844a..214aba9a4a434c 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation.ts @@ -11,6 +11,7 @@ import { ObjectType } from '@kbn/config-schema'; import { isPlainObject, isArray } from 'lodash'; import type { IndexMapping } from '@kbn/core-saved-objects-base-server-internal'; +import { getRootFields } from '../../utils'; import { isObjectTypeAttribute, rewriteObjectTypeAttribute, @@ -18,7 +19,6 @@ import { rewriteRootLevelAttribute, } from './validation_utils'; import { aggregationSchemas } from './aggs_types'; -import { getRootFields } from '../included_fields'; const aggregationKeys = ['aggs', 'aggregations']; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation_utils.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation_utils.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation_utils.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation_utils.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation_utils.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation_utils.ts similarity index 96% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation_utils.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation_utils.ts index 5548ad4d57a5dd..9a03ecac0ac0b0 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation_utils.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/aggregations/validation_utils.ts @@ -7,7 +7,7 @@ */ import type { IndexMapping } from '@kbn/core-saved-objects-base-server-internal'; -import { fieldDefined, hasFilterKeyError } from '../filter_utils'; +import { fieldDefined, hasFilterKeyError } from '../utils/filter_utils'; /** * Returns true if the given attribute path is a valid root level SO attribute path diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/index.ts similarity index 62% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/index.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/index.ts index ec10668940d721..66956a59786db1 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/legacy_url_aliases/index.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/index.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -export { findLegacyUrlAliases } from './find_legacy_url_aliases'; - -export { deleteLegacyUrlAliases } from './delete_legacy_url_aliases'; -export type { DeleteLegacyUrlAliasesParams } from './delete_legacy_url_aliases'; +export { getSearchDsl } from './search_dsl'; +export { validateAndConvertAggregations } from './aggregations'; +export { validateConvertFilterToKueryNode } from './utils'; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/__snapshots__/sorting_params.test.ts.snap b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/__snapshots__/sorting_params.test.ts.snap similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/__snapshots__/sorting_params.test.ts.snap rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/__snapshots__/sorting_params.test.ts.snap diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/index.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/index.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/index.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/pit_params.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/pit_params.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/pit_params.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/pit_params.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/pit_params.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/pit_params.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/pit_params.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/pit_params.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.test.ts similarity index 99% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.test.ts index 20ce3a2f46b2e7..b7e5c250935d27 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.test.ts @@ -9,9 +9,6 @@ import { getReferencesFilterMock } from './query_params.tests.mocks'; import * as esKuery from '@kbn/es-query'; - -type KueryNode = any; - import { ALL_NAMESPACES_STRING, DEFAULT_NAMESPACE_STRING, @@ -19,6 +16,8 @@ import { import { SavedObjectTypeRegistry } from '@kbn/core-saved-objects-base-server-internal'; import { getQueryParams } from './query_params'; +type KueryNode = any; + const registerTypes = (registry: SavedObjectTypeRegistry) => { registry.registerType({ name: 'pending', diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.tests.mocks.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.tests.mocks.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.tests.mocks.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.tests.mocks.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.ts similarity index 99% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.ts index 896b934c90b805..8ff7bb229be361 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/query_params.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/query_params.ts @@ -8,9 +8,6 @@ import * as esKuery from '@kbn/es-query'; import type { SavedObjectTypeIdTuple } from '@kbn/core-saved-objects-common'; - -type KueryNode = any; - import type { ISavedObjectTypeRegistry } from '@kbn/core-saved-objects-server'; import { ALL_NAMESPACES_STRING, @@ -18,6 +15,8 @@ import { } from '@kbn/core-saved-objects-utils-server'; import { getReferencesFilter } from './references_filter'; +type KueryNode = any; + /** * Gets the types based on the type. Uses mappings to support * null type (all types), a single type string or an array diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/references_filter.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/references_filter.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/references_filter.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/references_filter.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/references_filter.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/references_filter.ts similarity index 99% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/references_filter.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/references_filter.ts index 4dd6bc640f1741..d1b789f2b79d20 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/references_filter.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/references_filter.ts @@ -7,7 +7,6 @@ */ import type { SavedObjectTypeIdTuple } from '@kbn/core-saved-objects-common'; - import type { SearchOperator } from './query_params'; export function getReferencesFilter({ diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/search_dsl.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/search_dsl.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/search_dsl.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/search_dsl.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/search_dsl.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/sorting_params.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/sorting_params.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/sorting_params.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/sorting_params.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/sorting_params.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/sorting_params.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search_dsl/sorting_params.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/search_dsl/sorting_params.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/filter_utils.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/filter_utils.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/filter_utils.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/filter_utils.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/filter_utils.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/filter_utils.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/filter_utils.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/filter_utils.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/index.ts new file mode 100644 index 00000000000000..6742baf229c1d8 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/search/utils/index.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. + */ + +export { + fieldDefined, + hasFilterKeyError, + isSavedObjectAttr, + validateConvertFilterToKueryNode, + validateFilterKueryNode, +} from './filter_utils'; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/decorate_es_error.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/decorate_es_error.test.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/decorate_es_error.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/decorate_es_error.test.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/decorate_es_error.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/decorate_es_error.ts similarity index 100% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/decorate_es_error.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/decorate_es_error.ts diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/included_fields.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/included_fields.test.ts similarity index 84% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/included_fields.test.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/included_fields.test.ts index 3ccfd5ca6f2a9b..eea85a023df477 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/included_fields.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/included_fields.test.ts @@ -38,34 +38,26 @@ describe('includedFields', () => { it('accepts type and field as string', () => { const fields = includedFields('config', 'foo'); - expect(fields).toEqual(['config.foo', ...rootFields, 'foo']); + expect(fields).toEqual(['config.foo', ...rootFields]); }); it('accepts type as array and field as string', () => { const fields = includedFields(['config', 'secret'], 'foo'); - expect(fields).toEqual(['config.foo', 'secret.foo', ...rootFields, 'foo']); + expect(fields).toEqual(['config.foo', 'secret.foo', ...rootFields]); }); it('accepts type as string and field as array', () => { const fields = includedFields('config', ['foo', 'bar']); - expect(fields).toEqual(['config.foo', 'config.bar', ...rootFields, 'foo', 'bar']); + expect(fields).toEqual(['config.foo', 'config.bar', ...rootFields]); }); it('accepts type as array and field as array', () => { const fields = includedFields(['config', 'secret'], ['foo', 'bar']); - expect(fields).toEqual([ - 'config.foo', - 'config.bar', - 'secret.foo', - 'secret.bar', - ...rootFields, - 'foo', - 'bar', - ]); + expect(fields).toEqual(['config.foo', 'config.bar', 'secret.foo', 'secret.bar', ...rootFields]); }); it('uses wildcard when type is not provided', () => { const fields = includedFields(undefined, 'foo'); - expect(fields).toEqual(['*.foo', ...rootFields, 'foo']); + expect(fields).toEqual(['*.foo', ...rootFields]); }); }); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/included_fields.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/included_fields.ts similarity index 73% rename from packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/included_fields.ts rename to packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/included_fields.ts index 20e980f4707a1b..e0a1f2ca9b02be 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/included_fields.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/included_fields.ts @@ -6,10 +6,6 @@ * Side Public License, v 1. */ -function toArray(value: string | string[]): string[] { - return typeof value === 'string' ? [value] : value; -} - const ROOT_FIELDS = [ 'namespace', 'namespaces', @@ -39,14 +35,13 @@ export function includedFields( return; } - // convert to an array - const sourceFields = toArray(fields); - const sourceType = toArray(type); + const sourceFields = typeof fields === 'string' ? [fields] : fields; + const sourceType = typeof type === 'string' ? [type] : type; return sourceType .reduce((acc: string[], t) => { - return [...acc, ...sourceFields.map((f) => `${t}.${f}`)]; + acc.push(...sourceFields.map((f) => `${t}.${f}`)); + return acc; }, []) - .concat(ROOT_FIELDS) - .concat(fields); // v5 compatibility + .concat(ROOT_FIELDS); } diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/index.ts new file mode 100644 index 00000000000000..84c2379905b313 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/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 { decorateEsError } from './decorate_es_error'; +export { getRootFields, includedFields } from './included_fields';