From e5638db74e1c2ceb43fa7124298286936abdbc5a Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Mon, 22 Jul 2024 14:02:12 +0200 Subject: [PATCH] [core rendering] get rid of `getInjectedVar` (#188755) ## Summary Fix https://github.com/elastic/kibana/issues/54376 Fix https://github.com/elastic/kibana/issues/127733 - get rid of the `InjectedMetadata.vars` and `getInjectedVar` deprecated "API" - Add `apmConfig` as an explicit `InjectedMetadata` property instead of passing it via `vars` - Inject the apm config from the `rendering` service instead of `httpResource`, as it's just how it should be and how all other things get injected. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../src/http_resources_service.test.mocks.ts | 13 ---- .../src/http_resources_service.test.ts | 14 ---- .../src/http_resources_service.ts | 10 --- .../tsconfig.json | 1 - .../src/injected_metadata_service.test.ts | 76 ------------------- .../src/injected_metadata_service.ts | 9 --- .../src/types.ts | 4 - .../src/injected_metadata_service.mock.ts | 2 - .../src/types.ts | 2 +- .../rendering_service.test.ts.snap | 64 ++++++++++++---- .../src/get_apm_config.test.mocks.ts | 0 .../src/get_apm_config.test.ts | 0 .../src/get_apm_config.ts | 0 .../src/rendering_service.test.mocks.ts | 7 ++ .../src/rendering_service.test.ts | 21 +++++ .../src/rendering_service.tsx | 6 +- .../src/types.ts | 7 -- .../tsconfig.json | 1 + .../src/kbn_bootstrap.ts | 8 +- .../core-root-browser-internal/tsconfig.json | 1 + 20 files changed, 89 insertions(+), 157 deletions(-) delete mode 100644 packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.mocks.ts rename packages/core/{http/core-http-resources-server-internal => rendering/core-rendering-server-internal}/src/get_apm_config.test.mocks.ts (100%) rename packages/core/{http/core-http-resources-server-internal => rendering/core-rendering-server-internal}/src/get_apm_config.test.ts (100%) rename packages/core/{http/core-http-resources-server-internal => rendering/core-rendering-server-internal}/src/get_apm_config.ts (100%) diff --git a/packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.mocks.ts b/packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.mocks.ts deleted file mode 100644 index 0d0c637a768df4..00000000000000 --- a/packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.mocks.ts +++ /dev/null @@ -1,13 +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. - */ - -export const getApmConfigMock = jest.fn(); - -jest.doMock('./get_apm_config', () => ({ - getApmConfig: getApmConfigMock, -})); diff --git a/packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.ts b/packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.ts index 481b0b694747ab..acf8950d0d1472 100644 --- a/packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.ts +++ b/packages/core/http/core-http-resources-server-internal/src/http_resources_service.test.ts @@ -6,10 +6,7 @@ * Side Public License, v 1. */ -import { getApmConfigMock } from './http_resources_service.test.mocks'; - import type { RouteConfig } from '@kbn/core-http-server'; - import { mockCoreContext } from '@kbn/core-base-server-mocks'; import { httpServiceMock, httpServerMock } from '@kbn/core-http-server-mocks'; import { renderingServiceMock } from '@kbn/core-rendering-server-mocks'; @@ -29,11 +26,6 @@ describe('HttpResources service', () => { let router: ReturnType; const kibanaRequest = httpServerMock.createKibanaRequest(); const context = createCoreRequestHandlerContextMock(); - const apmConfig = { mockApmConfig: true }; - - beforeEach(() => { - getApmConfigMock.mockReturnValue(apmConfig); - }); describe('#createRegistrar', () => { beforeEach(() => { @@ -93,9 +85,6 @@ describe('HttpResources service', () => { }, { isAnonymousPage: false, - vars: { - apmConfig, - }, } ); }); @@ -118,9 +107,6 @@ describe('HttpResources service', () => { }, { isAnonymousPage: true, - vars: { - apmConfig, - }, } ); }); diff --git a/packages/core/http/core-http-resources-server-internal/src/http_resources_service.ts b/packages/core/http/core-http-resources-server-internal/src/http_resources_service.ts index a896d6b98542f0..bb9320bc5cb483 100644 --- a/packages/core/http/core-http-resources-server-internal/src/http_resources_service.ts +++ b/packages/core/http/core-http-resources-server-internal/src/http_resources_service.ts @@ -33,8 +33,6 @@ import type { import type { InternalHttpResourcesSetup } from './types'; -import { getApmConfig } from './get_apm_config'; - /** * @internal */ @@ -112,13 +110,9 @@ export class HttpResourcesService implements CoreService { }).toThrowError(); }); }); - -describe('setup.getInjectedVar()', () => { - it('returns values from injectedMetadata.vars', () => { - const setup = new InjectedMetadataService({ - injectedMetadata: { - vars: { - foo: { - bar: '1', - }, - 'baz:box': { - foo: 2, - }, - }, - }, - } as any).setup(); - - expect(setup.getInjectedVar('foo')).toEqual({ - bar: '1', - }); - expect(setup.getInjectedVar('foo.bar')).toBe('1'); - expect(setup.getInjectedVar('baz:box')).toEqual({ - foo: 2, - }); - expect(setup.getInjectedVar('')).toBe(undefined); - }); - - it('returns read-only values', () => { - const setup = new InjectedMetadataService({ - injectedMetadata: { - vars: { - foo: { - bar: 1, - }, - }, - }, - } as any).setup(); - - const foo: any = setup.getInjectedVar('foo'); - expect(() => { - foo.bar = 2; - }).toThrowErrorMatchingInlineSnapshot( - `"Cannot assign to read only property 'bar' of object '#'"` - ); - expect(() => { - foo.newProp = 2; - }).toThrowErrorMatchingInlineSnapshot( - `"Cannot add property newProp, object is not extensible"` - ); - }); -}); - -describe('setup.getInjectedVars()', () => { - it('returns all injected vars, readonly', () => { - const setup = new InjectedMetadataService({ - injectedMetadata: { - vars: { - foo: { - bar: 1, - }, - }, - }, - } as any).setup(); - - const vars: any = setup.getInjectedVars(); - expect(() => { - vars.foo = 2; - }).toThrowErrorMatchingInlineSnapshot( - `"Cannot assign to read only property 'foo' of object '#'"` - ); - expect(() => { - vars.newProp = 2; - }).toThrowErrorMatchingInlineSnapshot( - `"Cannot add property newProp, object is not extensible"` - ); - }); -}); diff --git a/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/injected_metadata_service.ts b/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/injected_metadata_service.ts index a50de7ca3f5e77..104500ef192154 100644 --- a/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/injected_metadata_service.ts +++ b/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/injected_metadata_service.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { get } from 'lodash'; import { deepFreeze } from '@kbn/std'; import type { InjectedMetadata } from '@kbn/core-injected-metadata-common-internal'; import type { @@ -76,14 +75,6 @@ export class InjectedMetadataService { return this.state.legacyMetadata; }, - getInjectedVar: (name: string, defaultValue?: any): unknown => { - return get(this.state.vars, name, defaultValue); - }, - - getInjectedVars: () => { - return this.state.vars; - }, - getKibanaBuildNumber: () => { return this.state.buildNumber; }, diff --git a/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/types.ts b/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/types.ts index bf77a2531660a4..12bee868702b62 100644 --- a/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/types.ts +++ b/packages/core/injected-metadata/core-injected-metadata-browser-internal/src/types.ts @@ -56,10 +56,6 @@ export interface InternalInjectedMetadataSetup { user?: Record | undefined; }; }; - getInjectedVar: (name: string, defaultValue?: any) => unknown; - getInjectedVars: () => { - [key: string]: unknown; - }; getCustomBranding: () => CustomBranding; } diff --git a/packages/core/injected-metadata/core-injected-metadata-browser-mocks/src/injected_metadata_service.mock.ts b/packages/core/injected-metadata/core-injected-metadata-browser-mocks/src/injected_metadata_service.mock.ts index 69148ca90e31b2..e2dad19650a2c5 100644 --- a/packages/core/injected-metadata/core-injected-metadata-browser-mocks/src/injected_metadata_service.mock.ts +++ b/packages/core/injected-metadata/core-injected-metadata-browser-mocks/src/injected_metadata_service.mock.ts @@ -27,8 +27,6 @@ const createSetupContractMock = () => { getLegacyMetadata: jest.fn(), getTheme: jest.fn(), getPlugins: jest.fn(), - getInjectedVar: jest.fn(), - getInjectedVars: jest.fn(), getKibanaBuildNumber: jest.fn(), getCustomBranding: jest.fn(), }; diff --git a/packages/core/injected-metadata/core-injected-metadata-common-internal/src/types.ts b/packages/core/injected-metadata/core-injected-metadata-common-internal/src/types.ts index 6d4e3df08a5efb..c2f1e85e1e60d6 100644 --- a/packages/core/injected-metadata/core-injected-metadata-common-internal/src/types.ts +++ b/packages/core/injected-metadata/core-injected-metadata-common-internal/src/types.ts @@ -71,7 +71,7 @@ export interface InjectedMetadata { warnLegacyBrowsers: boolean; }; externalUrl: { policy: InjectedMetadataExternalUrlPolicy[] }; - vars: Record; + apmConfig: Record | null; uiPlugins: InjectedMetadataPlugin[]; legacyMetadata: { uiSettings: { 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 69f534cf837b48..e92e760b400e5f 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 @@ -3,6 +3,9 @@ exports[`RenderingService preboot() render() renders "core" CDN url injected 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "http://foo.bar:1773", "basePath": "/mock-server-basepath", "branch": Any, @@ -75,7 +78,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -83,6 +85,9 @@ Object { exports[`RenderingService preboot() render() renders "core" page 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -151,7 +156,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -159,6 +163,9 @@ Object { exports[`RenderingService preboot() render() renders "core" page driven by settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -231,7 +238,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -239,6 +245,9 @@ Object { exports[`RenderingService preboot() render() renders "core" page for blank basepath 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "", "branch": Any, @@ -307,7 +316,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -315,6 +323,9 @@ Object { exports[`RenderingService preboot() render() renders "core" page for unauthenticated requests 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -383,7 +394,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -391,6 +401,9 @@ Object { exports[`RenderingService preboot() render() renders "core" page with global settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -463,7 +476,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -471,6 +483,9 @@ Object { exports[`RenderingService preboot() render() renders "core" with excluded global user settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -539,7 +554,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -547,6 +561,9 @@ Object { exports[`RenderingService preboot() render() renders "core" with excluded user settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -615,7 +632,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -623,6 +639,9 @@ Object { exports[`RenderingService setup() render() renders "core" CDN url injected 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -700,7 +719,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -708,6 +726,9 @@ Object { exports[`RenderingService setup() render() renders "core" page 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -776,7 +797,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -784,6 +804,9 @@ Object { exports[`RenderingService setup() render() renders "core" page driven by settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -861,7 +884,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -869,6 +891,9 @@ Object { exports[`RenderingService setup() render() renders "core" page for blank basepath 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "", "branch": Any, @@ -942,7 +967,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -950,6 +974,9 @@ Object { exports[`RenderingService setup() render() renders "core" page for unauthenticated requests 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -1018,7 +1045,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -1026,6 +1052,9 @@ Object { exports[`RenderingService setup() render() renders "core" page with global settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -1103,7 +1132,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -1111,6 +1139,9 @@ Object { exports[`RenderingService setup() render() renders "core" with excluded global user settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -1184,7 +1215,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; @@ -1192,6 +1222,9 @@ Object { exports[`RenderingService setup() render() renders "core" with excluded user settings 1`] = ` Object { "anonymousStatusPage": false, + "apmConfig": Object { + "stubApmConfig": true, + }, "assetsHrefBase": "/mock-server-basepath", "basePath": "/mock-server-basepath", "branch": Any, @@ -1265,7 +1298,6 @@ Object { "version": "v8", }, "uiPlugins": Array [], - "vars": Object {}, "version": Any, } `; diff --git a/packages/core/http/core-http-resources-server-internal/src/get_apm_config.test.mocks.ts b/packages/core/rendering/core-rendering-server-internal/src/get_apm_config.test.mocks.ts similarity index 100% rename from packages/core/http/core-http-resources-server-internal/src/get_apm_config.test.mocks.ts rename to packages/core/rendering/core-rendering-server-internal/src/get_apm_config.test.mocks.ts diff --git a/packages/core/http/core-http-resources-server-internal/src/get_apm_config.test.ts b/packages/core/rendering/core-rendering-server-internal/src/get_apm_config.test.ts similarity index 100% rename from packages/core/http/core-http-resources-server-internal/src/get_apm_config.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/get_apm_config.test.ts diff --git a/packages/core/http/core-http-resources-server-internal/src/get_apm_config.ts b/packages/core/rendering/core-rendering-server-internal/src/get_apm_config.ts similarity index 100% rename from packages/core/http/core-http-resources-server-internal/src/get_apm_config.ts rename to packages/core/rendering/core-rendering-server-internal/src/get_apm_config.ts diff --git a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.mocks.ts b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.mocks.ts index e7d95312ed56a5..96807a64b9560d 100644 --- a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.mocks.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.mocks.ts @@ -28,3 +28,10 @@ jest.doMock('./render_utils', () => ({ getScriptPaths: getScriptPathsMock, getBrowserLoggingConfig: getBrowserLoggingConfigMock, })); + +export const getApmConfigMock = jest.fn(); +jest.doMock('./get_apm_config', () => { + return { + getApmConfig: getApmConfigMock, + }; +}); diff --git a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts index b07b8a1cd6fa13..9adf0a0ea3d693 100644 --- a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts @@ -14,6 +14,7 @@ import { getThemeStylesheetPathsMock, getScriptPathsMock, getBrowserLoggingConfigMock, + getApmConfigMock, } from './rendering_service.test.mocks'; import { load } from 'cheerio'; @@ -259,6 +260,25 @@ function renderTestCases( expect(data.logging).toEqual(loggingConfig); }); + it('renders "core" with APM config injected', async () => { + const someApmConfig = { someConfig: 9000 }; + getApmConfigMock.mockReturnValue(someApmConfig); + + const request = createKibanaRequest(); + + const [render] = await getRender(); + const content = await render(createKibanaRequest(), uiSettings, { + isAnonymousPage: false, + }); + + expect(getApmConfigMock).toHaveBeenCalledTimes(1); + expect(getApmConfigMock).toHaveBeenCalledWith(request.url.pathname); + + const dom = load(content); + const data = JSON.parse(dom('kbn-injected-metadata').attr('data') ?? '""'); + expect(data.apmConfig).toEqual(someApmConfig); + }); + it('use the correct translation url when CDN is enabled', async () => { const userSettings = { 'theme:darkMode': { userValue: true } }; uiSettings.client.getUserProvided.mockResolvedValue(userSettings); @@ -511,6 +531,7 @@ describe('RenderingService', () => { getThemeStylesheetPathsMock.mockReturnValue(['/style-1.css', '/style-2.css']); getScriptPathsMock.mockReturnValue(['/script-1.js']); getBrowserLoggingConfigMock.mockReset().mockReturnValue({}); + getApmConfigMock.mockReset().mockReturnValue({ stubApmConfig: true }); }); describe('preboot()', () => { 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 7a7e6e56fb49fe..4b7e75ea9fb845 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 @@ -42,6 +42,7 @@ import { getBrowserLoggingConfig, } from './render_utils'; import { filterUiPlugins } from './filter_ui_plugins'; +import { getApmConfig } from './get_apm_config'; import type { InternalRenderingRequestHandlerContext } from './internal_types'; type RenderOptions = @@ -121,7 +122,7 @@ export class RenderingService { client: IUiSettingsClient; globalClient: IUiSettingsClient; }, - { isAnonymousPage = false, vars, includeExposedConfigKeys }: IRenderOptions = {} + { isAnonymousPage = false, includeExposedConfigKeys }: IRenderOptions = {} ) { const { elasticsearch, http, uiPlugins, status, customBranding, userSettings, i18n } = renderOptions; @@ -221,6 +222,7 @@ export class RenderingService { translationsUrl = `${serverBasePath}/translations/${translationHash}/${locale}.json`; } + const apmConfig = getApmConfig(request.url.pathname); const filteredPlugins = filterUiPlugins({ uiPlugins, isAnonymousPage }); const bootstrapScript = isAnonymousPage ? 'bootstrap-anonymous.js' : 'bootstrap.js'; const metadata: RenderingMetadata = { @@ -249,6 +251,7 @@ export class RenderingService { logging: loggingConfig, env, clusterInfo, + apmConfig, anonymousStatusPage: status?.isStatusPageAnonymous() ?? false, i18n: { translationsUrl, @@ -268,7 +271,6 @@ export class RenderingService { }, csp: { warnLegacyBrowsers: http.csp.warnLegacyBrowsers }, externalUrl: http.externalUrl, - vars: vars ?? {}, uiPlugins: await Promise.all( filteredPlugins.map(async ([id, plugin]) => { const { browserConfig, exposedConfigKeys } = await getUiConfig(uiPlugins, id); 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 ed6a45d0714236..98887a9f9da295 100644 --- a/packages/core/rendering/core-rendering-server-internal/src/types.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/types.ts @@ -64,13 +64,6 @@ export interface IRenderOptions { */ isAnonymousPage?: boolean; - /** - * Inject custom vars into the page metadata. - * @deprecated for legacy use only. Can be removed when https://github.com/elastic/kibana/issues/127733 is done. - * @internal - */ - vars?: Record; - /** * @internal * This is only used for integration tests that allow us to verify which config keys are exposed to the browser. diff --git a/packages/core/rendering/core-rendering-server-internal/tsconfig.json b/packages/core/rendering/core-rendering-server-internal/tsconfig.json index e306dca24059c8..2689069f79d799 100644 --- a/packages/core/rendering/core-rendering-server-internal/tsconfig.json +++ b/packages/core/rendering/core-rendering-server-internal/tsconfig.json @@ -44,6 +44,7 @@ "@kbn/core-i18n-server", "@kbn/core-i18n-server-internal", "@kbn/core-i18n-server-mocks", + "@kbn/apm-config-loader", ], "exclude": [ "target/**/*", diff --git a/packages/core/root/core-root-browser-internal/src/kbn_bootstrap.ts b/packages/core/root/core-root-browser-internal/src/kbn_bootstrap.ts index c1ca8cb752d2d7..f7a0685967ba84 100644 --- a/packages/core/root/core-root-browser-internal/src/kbn_bootstrap.ts +++ b/packages/core/root/core-root-browser-internal/src/kbn_bootstrap.ts @@ -7,6 +7,7 @@ */ import { i18n } from '@kbn/i18n'; +import type { InjectedMetadata } from '@kbn/core-injected-metadata-common-internal'; import { KBN_LOAD_MARKS } from './events'; import { CoreSystem } from './core_system'; import { ApmSystem } from './apm_system'; @@ -19,12 +20,15 @@ export async function __kbnBootstrap__() { detail: LOAD_BOOTSTRAP_START, }); - const injectedMetadata = JSON.parse( + const injectedMetadata: InjectedMetadata = JSON.parse( document.querySelector('kbn-injected-metadata')!.getAttribute('data')! ); let i18nError: Error | undefined; - const apmSystem = new ApmSystem(injectedMetadata.vars.apmConfig, injectedMetadata.basePath); + const apmSystem = new ApmSystem( + injectedMetadata.apmConfig ?? undefined, + injectedMetadata.basePath + ); await Promise.all([ // eslint-disable-next-line no-console diff --git a/packages/core/root/core-root-browser-internal/tsconfig.json b/packages/core/root/core-root-browser-internal/tsconfig.json index 152c7d3683e388..e576ecf8cf920e 100644 --- a/packages/core/root/core-root-browser-internal/tsconfig.json +++ b/packages/core/root/core-root-browser-internal/tsconfig.json @@ -66,6 +66,7 @@ "@kbn/core-security-browser-internal", "@kbn/core-user-profile-browser-mocks", "@kbn/core-user-profile-browser-internal", + "@kbn/core-injected-metadata-common-internal", ], "exclude": [ "target/**/*",