diff --git a/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.test.ts b/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.test.ts index 122fcd7374979..70a3478a45b6f 100644 --- a/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.test.ts +++ b/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.test.ts @@ -59,6 +59,7 @@ jest.mock('../../services/epm/packages/get', () => ({ version: '0.1.0', updated_at: new Date().toISOString(), install_status: 'installed', + install_source: 'registry', }, }, { @@ -67,6 +68,16 @@ jest.mock('../../services/epm/packages/get', () => ({ version: '0.2.0', updated_at: new Date().toISOString(), install_status: 'installed', + install_source: 'registry', + }, + }, + { + attributes: { + name: 'custom-package', + version: '0.1.0', + updated_at: new Date().toISOString(), + install_status: 'installed', + install_source: 'upload', }, }, ], @@ -196,7 +207,7 @@ describe('SyncIntegrationsTask', () => { expect(result).toEqual(getDeleteTaskRunResult()); }); - it('Should create fleet-synced-integrations doc', async () => { + it('Should create fleet-synced-integrations doc for packages installed from registry', async () => { mockOutputService.list.mockResolvedValue({ items: [ { @@ -249,12 +260,14 @@ describe('SyncIntegrationsTask', () => { package_version: '0.1.0', updated_at: expect.any(String), install_status: 'installed', + install_source: 'registry', }, { package_name: 'package-2', package_version: '0.2.0', updated_at: expect.any(String), install_status: 'installed', + install_source: 'registry', }, ], remote_es_hosts: [ @@ -332,12 +345,14 @@ describe('SyncIntegrationsTask', () => { package_version: '0.1.0', updated_at: expect.any(String), install_status: 'installed', + install_source: 'registry', }, { package_name: 'package-2', package_version: '0.2.0', updated_at: expect.any(String), install_status: 'installed', + install_source: 'registry', }, ], remote_es_hosts: [ @@ -469,18 +484,21 @@ describe('SyncIntegrationsTask', () => { package_version: '0.1.0', updated_at: new Date().toISOString(), install_status: 'installed', + install_source: 'registry', }, { package_name: 'package-2', package_version: '0.2.0', updated_at: new Date().toISOString(), install_status: 'installed', + install_source: 'registry', }, { package_name: 'package-3', package_version: '0.3.0', updated_at: new Date().toISOString(), install_status: 'installed', + install_source: 'registry', }, ], custom_assets: {}, @@ -500,18 +518,21 @@ describe('SyncIntegrationsTask', () => { package_version: '0.1.0', updated_at: expect.any(String), install_status: 'installed', + install_source: 'registry', }, { package_name: 'package-2', package_version: '0.2.0', updated_at: expect.any(String), install_status: 'installed', + install_source: 'registry', }, { package_name: 'package-3', package_version: '0.3.0', updated_at: expect.any(String), install_status: 'not_installed', + install_source: 'registry', }, ], remote_es_hosts: [ diff --git a/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.ts b/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.ts index b74e0a5fdd131..f998986eb2e70 100644 --- a/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.ts +++ b/x-pack/platform/plugins/shared/fleet/server/tasks/sync_integrations/sync_integrations_task.ts @@ -240,16 +240,18 @@ export class SyncIntegrationsTask { perPage: SO_SEARCH_LIMIT, sortOrder: 'asc', }); - newDoc.integrations = packageSavedObjects.saved_objects.map((item) => { - return { - package_name: item.attributes.name, - package_version: item.attributes.version, - updated_at: item.updated_at ?? new Date().toISOString(), - install_status: item.attributes.install_status, - install_source: item.attributes.install_source, - rolled_back: item.attributes.rolled_back, - }; - }); + newDoc.integrations = packageSavedObjects.saved_objects + .filter((item) => item.attributes.install_source === 'registry') + .map((item) => { + return { + package_name: item.attributes.name, + package_version: item.attributes.version, + updated_at: item.updated_at ?? new Date().toISOString(), + install_status: item.attributes.install_status, + install_source: item.attributes.install_source, + rolled_back: item.attributes.rolled_back, + }; + }); const isSyncUninstalledEnabled = remoteESOutputs.some( (output) => (output as NewRemoteElasticsearchOutput).sync_uninstalled_integrations