From d2070ca7242a832c158d9a8dd4edcc8bd806649a Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Mon, 10 Feb 2025 08:00:59 -0500 Subject: [PATCH] [Fleet] Fix source mode synthetics when handling experimental datastream features (#210195) --- .../experimental_datastream_features.test.ts | 12 ++++++++-- .../experimental_datastream_features.ts | 23 ++++++++++++++----- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.test.ts b/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.test.ts index a7c42de2a3ae2..17bc3fd4b98f2 100644 --- a/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.test.ts +++ b/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.test.ts @@ -271,7 +271,11 @@ describe('experimental_datastream_features', () => { expect.objectContaining({ body: expect.objectContaining({ template: expect.objectContaining({ - mappings: expect.objectContaining({ _source: { mode: 'synthetic' } }), + settings: expect.objectContaining({ + index: expect.objectContaining({ + mapping: expect.objectContaining({ source: { mode: 'synthetic' } }), + }), + }), }), }), _meta: { has_experimental_data_stream_indexing_features: true }, @@ -483,7 +487,11 @@ describe('experimental_datastream_features', () => { expect.objectContaining({ body: expect.objectContaining({ template: expect.objectContaining({ - mappings: expect.objectContaining({ _source: { mode: 'synthetic' } }), + settings: expect.objectContaining({ + index: expect.objectContaining({ + mapping: expect.objectContaining({ source: { mode: 'synthetic' } }), + }), + }), }), }), _meta: { has_experimental_data_stream_indexing_features: true }, diff --git a/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.ts b/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.ts index cd1c26942aa0c..0877f38293f4e 100644 --- a/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.ts +++ b/x-pack/platform/plugins/shared/fleet/server/services/package_policies/experimental_datastream_features.ts @@ -155,21 +155,32 @@ export async function handleExperimentalDatastreamFeatureOptIn({ }); if (isSyntheticSourceOptInChanged) { - sourceModeSettings = { - _source: { - ...(featureMapEntry.features.synthetic_source ? { mode: 'synthetic' } : {}), - }, - }; + sourceModeSettings = featureMapEntry.features.synthetic_source + ? { + source: { + mode: 'synthetic', + }, + } + : {}; } if (componentTemplateChanged) { const body = { template: { ...componentTemplate.template, + settings: { + ...componentTemplate.template?.settings, + index: { + ...componentTemplate.template?.settings?.index, + mapping: { + ...componentTemplate.template?.settings?.index?.mapping, + ...sourceModeSettings, + }, + }, + }, mappings: { ...mappings, properties: mappingsProperties ?? {}, - ...sourceModeSettings, }, }, };