From 47d1a0e50fcd1ab155308c497b6f978d0d78b9fd Mon Sep 17 00:00:00 2001 From: Dmitrii Shevchenko Date: Fri, 13 Jan 2023 14:56:46 +0100 Subject: [PATCH] Increase the maximum number of saved objects that could be installed with a Fleet package (#148441) **Resolves: https://github.com/elastic/kibana/issues/148175** --- .../src/saved_objects_service.ts | 4 ++-- .../core-saved-objects-server/src/contracts.ts | 7 +++++-- .../core-saved-objects-server/src/import.ts | 10 ++++++++++ .../fleet/server/services/epm/packages/install.ts | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts index 7ded566e04b9ee..d6a451a105f7cd 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts @@ -335,11 +335,11 @@ export class SavedObjectsService exportSizeLimit: this.config!.maxImportExportSize, logger: this.logger.get('exporter'), }), - createImporter: (savedObjectsClient) => + createImporter: (savedObjectsClient, options) => new SavedObjectsImporter({ savedObjectsClient, typeRegistry: this.typeRegistry, - importSizeLimit: this.config!.maxImportExportSize, + importSizeLimit: options?.importSizeLimit ?? this.config!.maxImportExportSize, }), getTypeRegistry: () => this.typeRegistry, }; diff --git a/packages/core/saved-objects/core-saved-objects-server/src/contracts.ts b/packages/core/saved-objects/core-saved-objects-server/src/contracts.ts index 6c4dcbc3f6b40d..3ee6e9c262c546 100644 --- a/packages/core/saved-objects/core-saved-objects-server/src/contracts.ts +++ b/packages/core/saved-objects/core-saved-objects-server/src/contracts.ts @@ -22,7 +22,7 @@ import type { import type { SavedObjectsType } from './saved_objects_type'; import type { ISavedObjectTypeRegistry } from './type_registry'; import type { ISavedObjectsExporter } from './export'; -import type { ISavedObjectsImporter } from './import'; +import type { ISavedObjectsImporter, SavedObjectsImporterOptions } from './import'; import type { SavedObjectsExtensions } from './extensions/extensions'; /** @@ -200,7 +200,10 @@ export interface SavedObjectsServiceStart { /** * Creates an {@link ISavedObjectsImporter | importer} bound to given client. */ - createImporter: (client: SavedObjectsClientContract) => ISavedObjectsImporter; + createImporter: ( + client: SavedObjectsClientContract, + options?: SavedObjectsImporterOptions + ) => ISavedObjectsImporter; /** * Returns the {@link ISavedObjectTypeRegistry | registry} containing all registered * {@link SavedObjectsType | saved object types} diff --git a/packages/core/saved-objects/core-saved-objects-server/src/import.ts b/packages/core/saved-objects/core-saved-objects-server/src/import.ts index b9b8d581b16c4b..e0f6a4c05e14a2 100644 --- a/packages/core/saved-objects/core-saved-objects-server/src/import.ts +++ b/packages/core/saved-objects/core-saved-objects-server/src/import.ts @@ -39,6 +39,16 @@ export interface ISavedObjectsImporter { ): Promise; } +/** + * Options to control the importer + * + * @public + */ +export interface SavedObjectsImporterOptions { + /** Overwrites the maximum number of saved objects that could be imported */ + importSizeLimit?: number; +} + /** * Options to control the import operation. * @public diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install.ts b/x-pack/plugins/fleet/server/services/epm/packages/install.ts index d7f67ca1d2ae05..7d80c968edd93d 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install.ts @@ -363,7 +363,7 @@ async function installPackageFromRegistry({ const savedObjectsImporter = appContextService .getSavedObjects() - .createImporter(savedObjectsClient); + .createImporter(savedObjectsClient, { importSizeLimit: 15_000 }); const savedObjectTagAssignmentService = appContextService .getSavedObjectsTagging()