Migrate server-side uiSettings domain to packages (#140468)

* create empty packages

* move types to public package

* move implementation to packages

* move mocks to package

* start adapting usages

* adapt more usages

* update readmes

* [CI] Auto-commit changed files from 'node scripts/generate codeowners'

* fix test usages

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Pierre Gayvallet 2022-09-14 10:11:27 +02:00 committed by GitHub
parent 59ea09f9ee
commit 15270a5bc9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
101 changed files with 787 additions and 164 deletions

3
.github/CODEOWNERS vendored
View file

@ -785,6 +785,9 @@ packages/core/ui-settings/core-ui-settings-browser @elastic/kibana-core
packages/core/ui-settings/core-ui-settings-browser-internal @elastic/kibana-core packages/core/ui-settings/core-ui-settings-browser-internal @elastic/kibana-core
packages/core/ui-settings/core-ui-settings-browser-mocks @elastic/kibana-core packages/core/ui-settings/core-ui-settings-browser-mocks @elastic/kibana-core
packages/core/ui-settings/core-ui-settings-common @elastic/kibana-core packages/core/ui-settings/core-ui-settings-common @elastic/kibana-core
packages/core/ui-settings/core-ui-settings-server @elastic/kibana-core
packages/core/ui-settings/core-ui-settings-server-internal @elastic/kibana-core
packages/core/ui-settings/core-ui-settings-server-mocks @elastic/kibana-core
packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-core
packages/core/usage-data/core-usage-data-server @elastic/kibana-core packages/core/usage-data/core-usage-data-server @elastic/kibana-core
packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core

View file

@ -285,6 +285,9 @@
"@kbn/core-ui-settings-browser-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-internal", "@kbn/core-ui-settings-browser-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-internal",
"@kbn/core-ui-settings-browser-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-mocks", "@kbn/core-ui-settings-browser-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-mocks",
"@kbn/core-ui-settings-common": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-common", "@kbn/core-ui-settings-common": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-common",
"@kbn/core-ui-settings-server": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server",
"@kbn/core-ui-settings-server-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-internal",
"@kbn/core-ui-settings-server-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-mocks",
"@kbn/core-usage-data-base-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-base-server-internal", "@kbn/core-usage-data-base-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-base-server-internal",
"@kbn/core-usage-data-server": "link:bazel-bin/packages/core/usage-data/core-usage-data-server", "@kbn/core-usage-data-server": "link:bazel-bin/packages/core/usage-data/core-usage-data-server",
"@kbn/core-usage-data-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-server-internal", "@kbn/core-usage-data-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-server-internal",
@ -980,6 +983,9 @@
"@types/kbn__core-ui-settings-browser-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-internal/npm_module_types", "@types/kbn__core-ui-settings-browser-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-internal/npm_module_types",
"@types/kbn__core-ui-settings-browser-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-mocks/npm_module_types", "@types/kbn__core-ui-settings-browser-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-mocks/npm_module_types",
"@types/kbn__core-ui-settings-common": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-common/npm_module_types", "@types/kbn__core-ui-settings-common": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-common/npm_module_types",
"@types/kbn__core-ui-settings-server": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server/npm_module_types",
"@types/kbn__core-ui-settings-server-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-internal/npm_module_types",
"@types/kbn__core-ui-settings-server-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-mocks/npm_module_types",
"@types/kbn__core-usage-data-base-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-base-server-internal/npm_module_types", "@types/kbn__core-usage-data-base-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-base-server-internal/npm_module_types",
"@types/kbn__core-usage-data-server": "link:bazel-bin/packages/core/usage-data/core-usage-data-server/npm_module_types", "@types/kbn__core-usage-data-server": "link:bazel-bin/packages/core/usage-data/core-usage-data-server/npm_module_types",
"@types/kbn__core-usage-data-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-server-internal/npm_module_types", "@types/kbn__core-usage-data-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-server-internal/npm_module_types",

View file

@ -151,6 +151,9 @@ filegroup(
"//packages/core/ui-settings/core-ui-settings-browser-internal:build", "//packages/core/ui-settings/core-ui-settings-browser-internal:build",
"//packages/core/ui-settings/core-ui-settings-browser-mocks:build", "//packages/core/ui-settings/core-ui-settings-browser-mocks:build",
"//packages/core/ui-settings/core-ui-settings-common:build", "//packages/core/ui-settings/core-ui-settings-common:build",
"//packages/core/ui-settings/core-ui-settings-server:build",
"//packages/core/ui-settings/core-ui-settings-server-internal:build",
"//packages/core/ui-settings/core-ui-settings-server-mocks:build",
"//packages/core/usage-data/core-usage-data-base-server-internal:build", "//packages/core/usage-data/core-usage-data-base-server-internal:build",
"//packages/core/usage-data/core-usage-data-server:build", "//packages/core/usage-data/core-usage-data-server:build",
"//packages/core/usage-data/core-usage-data-server-internal:build", "//packages/core/usage-data/core-usage-data-server-internal:build",
@ -461,6 +464,9 @@ filegroup(
"//packages/core/ui-settings/core-ui-settings-browser-internal:build_types", "//packages/core/ui-settings/core-ui-settings-browser-internal:build_types",
"//packages/core/ui-settings/core-ui-settings-browser-mocks:build_types", "//packages/core/ui-settings/core-ui-settings-browser-mocks:build_types",
"//packages/core/ui-settings/core-ui-settings-common:build_types", "//packages/core/ui-settings/core-ui-settings-common:build_types",
"//packages/core/ui-settings/core-ui-settings-server:build_types",
"//packages/core/ui-settings/core-ui-settings-server-internal:build_types",
"//packages/core/ui-settings/core-ui-settings-server-mocks:build_types",
"//packages/core/usage-data/core-usage-data-base-server-internal:build_types", "//packages/core/usage-data/core-usage-data-base-server-internal:build_types",
"//packages/core/usage-data/core-usage-data-server:build_types", "//packages/core/usage-data/core-usage-data-server:build_types",
"//packages/core/usage-data/core-usage-data-server-internal:build_types", "//packages/core/usage-data/core-usage-data-server-internal:build_types",

View file

@ -0,0 +1,129 @@
load("@npm//@bazel/typescript:index.bzl", "ts_config")
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project")
PKG_DIRNAME = "core-ui-settings-server-internal"
PKG_REQUIRE_NAME = "@kbn/core-ui-settings-server-internal"
SOURCE_FILES = glob(
[
"**/*.ts",
],
exclude = [
"**/*.config.js",
"**/*.mock.*",
"**/*.test.*",
"**/*.stories.*",
"**/__snapshots__/**",
"**/integration_tests/**",
"**/mocks/**",
"**/scripts/**",
"**/storybook/**",
"**/test_fixtures/**",
"**/test_helpers/**",
],
)
SRCS = SOURCE_FILES
filegroup(
name = "srcs",
srcs = SRCS,
)
NPM_MODULE_EXTRA_FILES = [
"package.json",
]
RUNTIME_DEPS = [
"@npm//lodash",
"@npm//semver",
"@npm//moment-timezone",
"//packages/kbn-std",
"//packages/kbn-i18n",
"//packages/kbn-config-schema",
"//packages/core/saved-objects/core-saved-objects-utils-server",
]
TYPES_DEPS = [
"@npm//@types/node",
"@npm//@types/jest",
"@npm//@types/semver",
"@npm//@types/moment-timezone",
"@npm//lodash",
"//packages/kbn-ui-shared-deps-npm:npm_module_types",
"//packages/kbn-logging:npm_module_types",
"//packages/kbn-std:npm_module_types",
"//packages/kbn-i18n:npm_module_types",
"//packages/kbn-config-schema:npm_module_types",
"//packages/core/base/core-base-server-internal:npm_module_types",
"//packages/core/http/core-http-server:npm_module_types",
"//packages/core/http/core-http-server-internal:npm_module_types",
"//packages/core/saved-objects/core-saved-objects-api-server:npm_module_types",
"//packages/core/saved-objects/core-saved-objects-server:npm_module_types",
"//packages/core/saved-objects/core-saved-objects-server-internal:npm_module_types",
"//packages/core/saved-objects/core-saved-objects-utils-server:npm_module_types",
"//packages/core/ui-settings/core-ui-settings-common:npm_module_types",
"//packages/core/ui-settings/core-ui-settings-server:npm_module_types",
]
jsts_transpiler(
name = "target_node",
srcs = SRCS,
build_pkg_name = package_name(),
)
ts_config(
name = "tsconfig",
src = "tsconfig.json",
deps = [
"//:tsconfig.base.json",
"//:tsconfig.bazel.json",
],
)
ts_project(
name = "tsc_types",
args = ['--pretty'],
srcs = SRCS,
deps = TYPES_DEPS,
declaration = True,
declaration_map = True,
emit_declaration_only = True,
out_dir = "target_types",
tsconfig = ":tsconfig",
)
js_library(
name = PKG_DIRNAME,
srcs = NPM_MODULE_EXTRA_FILES,
deps = RUNTIME_DEPS + [":target_node"],
package_name = PKG_REQUIRE_NAME,
visibility = ["//visibility:public"],
)
pkg_npm(
name = "npm_module",
deps = [":" + PKG_DIRNAME],
)
filegroup(
name = "build",
srcs = [":npm_module"],
visibility = ["//visibility:public"],
)
pkg_npm_types(
name = "npm_module_types",
srcs = SRCS,
deps = [":tsc_types"],
package_name = PKG_REQUIRE_NAME,
tsconfig = ":tsconfig",
visibility = ["//visibility:public"],
)
filegroup(
name = "build_types",
srcs = [":npm_module_types"],
visibility = ["//visibility:public"],
)

View file

@ -0,0 +1,3 @@
# @kbn/core-ui-settings-server-internal
This package contains the internal types and implementation for Core's server-side uiSettings service.

View file

@ -0,0 +1,23 @@
/*
* 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 {
uiSettingsConfig,
UiSettingsClient,
UiSettingsService,
CoreUiSettingsRouteHandlerContext,
} from './src';
export type {
InternalUiSettingsServicePreboot,
InternalUiSettingsServiceSetup,
InternalUiSettingsServiceStart,
UiSettingsServiceOptions,
} from './src';
// only exported for integration tests
export { createOrUpgradeSavedConfig } from './src/create_or_upgrade_saved_config';

View file

@ -0,0 +1,13 @@
/*
* 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.
*/
module.exports = {
preset: '@kbn/test/jest_node',
rootDir: '../../../..',
roots: ['<rootDir>/packages/core/ui-settings/core-ui-settings-server-internal'],
};

View file

@ -0,0 +1,7 @@
{
"type": "shared-common",
"id": "@kbn/core-ui-settings-server-internal",
"owner": "@elastic/kibana-core",
"runtimeDeps": [],
"typeDeps": [],
}

View file

@ -0,0 +1,8 @@
{
"name": "@kbn/core-ui-settings-server-internal",
"private": true,
"version": "1.0.0",
"main": "./target_node/index.js",
"author": "Kibana Core",
"license": "SSPL-1.0 OR Elastic License 2.0"
}

View file

@ -7,14 +7,13 @@
*/ */
import { omit } from 'lodash'; import { omit } from 'lodash';
import type { Logger } from '@kbn/logging'; import type { Logger } from '@kbn/logging';
import { import type {
IUiSettingsClient,
UiSettingsParams, UiSettingsParams,
PublicUiSettingsParams, PublicUiSettingsParams,
UserProvidedValues, UserProvidedValues,
} from './types'; } from '@kbn/core-ui-settings-common';
import type { IUiSettingsClient } from '@kbn/core-ui-settings-server';
export interface BaseUiSettingsDefaultsClientOptions { export interface BaseUiSettingsDefaultsClientOptions {
overrides?: Record<string, any>; overrides?: Record<string, any>;
@ -26,9 +25,9 @@ export interface BaseUiSettingsDefaultsClientOptions {
* Base implementation of the {@link IUiSettingsClient}. * Base implementation of the {@link IUiSettingsClient}.
*/ */
export abstract class BaseUiSettingsClient implements IUiSettingsClient { export abstract class BaseUiSettingsClient implements IUiSettingsClient {
private readonly defaults: NonNullable<BaseUiSettingsDefaultsClientOptions['defaults']>; private readonly defaults: Record<string, UiSettingsParams>;
private readonly defaultValues: Record<string, unknown>; private readonly defaultValues: Record<string, unknown>;
protected readonly overrides: NonNullable<BaseUiSettingsDefaultsClientOptions['overrides']>; protected readonly overrides: Record<string, any>;
protected readonly log: Logger; protected readonly log: Logger;
protected constructor(options: BaseUiSettingsDefaultsClientOptions) { protected constructor(options: BaseUiSettingsDefaultsClientOptions) {
@ -86,8 +85,12 @@ export abstract class BaseUiSettingsClient implements IUiSettingsClient {
} }
abstract getUserProvided<T = any>(): Promise<Record<string, UserProvidedValues<T>>>; abstract getUserProvided<T = any>(): Promise<Record<string, UserProvidedValues<T>>>;
abstract setMany(changes: Record<string, any>): Promise<void>; abstract setMany(changes: Record<string, any>): Promise<void>;
abstract set(key: string, value: any): Promise<void>; abstract set(key: string, value: any): Promise<void>;
abstract remove(key: string): Promise<void>; abstract remove(key: string): Promise<void>;
abstract removeMany(keys: string[]): Promise<void>; abstract removeMany(keys: string[]): Promise<void>;
} }

View file

@ -8,6 +8,7 @@
const oneSec = 1000; const oneSec = 1000;
const defMaxAge = 5 * oneSec; const defMaxAge = 5 * oneSec;
/** /**
* @internal * @internal
*/ */

View file

@ -6,23 +6,13 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
export type { UiSettingsClient, UiSettingsServiceOptions } from './ui_settings_client'; export { uiSettingsConfig } from './ui_settings_config';
export { config } from './ui_settings_config';
export { UiSettingsService } from './ui_settings_service'; export { UiSettingsService } from './ui_settings_service';
export { CoreUiSettingsRouteHandlerContext } from './ui_settings_route_handler_context'; export { CoreUiSettingsRouteHandlerContext } from './ui_settings_route_handler_context';
export type { UiSettingsRequestHandlerContext } from './ui_settings_route_handler_context'; export { UiSettingsClient } from './ui_settings_client';
export type { UiSettingsServiceOptions } from './ui_settings_client';
export type { export type {
UiSettingsServiceSetup,
UiSettingsServiceStart,
IUiSettingsClient,
UiSettingsParams,
PublicUiSettingsParams,
InternalUiSettingsServicePreboot, InternalUiSettingsServicePreboot,
InternalUiSettingsServiceSetup, InternalUiSettingsServiceSetup,
InternalUiSettingsServiceStart, InternalUiSettingsServiceStart,
UiSettingsType,
UserProvidedValues,
DeprecationSettings,
} from './types'; } from './types';

View file

@ -7,7 +7,7 @@
*/ */
import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server'; import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server';
import type { UiSettingsRequestHandlerContext } from './ui_settings_route_handler_context'; import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server';
/** /**
* Request handler context used by core's uiSetting routes. * Request handler context used by core's uiSetting routes.

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { SavedObjectUnsanitizedDoc } from '../..'; import type { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server';
import { migrations } from './migrations'; import { migrations } from './migrations';
describe('ui_settings 7.9.0 migrations', () => { describe('ui_settings 7.9.0 migrations', () => {

View file

@ -6,7 +6,10 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { SavedObjectUnsanitizedDoc, SavedObjectSanitizedDoc } from '../..'; import type {
SavedObjectUnsanitizedDoc,
SavedObjectSanitizedDoc,
} from '@kbn/core-saved-objects-server';
export const migrations = { export const migrations = {
'7.9.0': (doc: SavedObjectUnsanitizedDoc<any>): SavedObjectSanitizedDoc<any> => ({ '7.9.0': (doc: SavedObjectUnsanitizedDoc<any>): SavedObjectSanitizedDoc<any> => ({

View file

@ -6,9 +6,9 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { savedObjectsClientMock } from '../../mocks'; import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks';
import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server'; import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server';
import { SavedObject } from '../../types'; import type { SavedObject } from '@kbn/core-saved-objects-common';
import type { UpgradeableConfigAttributes } from '../create_or_upgrade_saved_config'; import type { UpgradeableConfigAttributes } from '../create_or_upgrade_saved_config';
import { transformDefaultIndex } from './transforms'; import { transformDefaultIndex } from './transforms';

View file

@ -7,7 +7,7 @@
*/ */
import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server'; import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server';
import type { SavedObjectsClientContract } from '../../types'; import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server';
import type { UpgradeableConfigAttributes } from '../create_or_upgrade_saved_config'; import type { UpgradeableConfigAttributes } from '../create_or_upgrade_saved_config';
/** /**

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getAccessibilitySettings } from './accessibility'; import { getAccessibilitySettings } from './accessibility';
describe('accessibility settings', () => { describe('accessibility settings', () => {

View file

@ -8,7 +8,7 @@
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
export const getAccessibilitySettings = (): Record<string, UiSettingsParams> => { export const getAccessibilitySettings = (): Record<string, UiSettingsParams> => {
return { return {

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getAnnouncementsSettings } from './announcements'; import { getAnnouncementsSettings } from './announcements';
describe('announcements settings', () => { describe('announcements settings', () => {

View file

@ -8,7 +8,7 @@
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
export const getAnnouncementsSettings = (): Record<string, UiSettingsParams> => { export const getAnnouncementsSettings = (): Record<string, UiSettingsParams> => {
return { return {

View file

@ -7,7 +7,7 @@
*/ */
import moment from 'moment-timezone'; import moment from 'moment-timezone';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getDateFormatSettings } from './date_formats'; import { getDateFormatSettings } from './date_formats';
describe('accessibility settings', () => { describe('accessibility settings', () => {

View file

@ -9,7 +9,7 @@
import moment from 'moment-timezone'; import moment from 'moment-timezone';
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
export const getDateFormatSettings = (): Record<string, UiSettingsParams> => { export const getDateFormatSettings = (): Record<string, UiSettingsParams> => {
const weekdays = moment.weekdays().slice(); const weekdays = moment.weekdays().slice();

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getAccessibilitySettings } from './accessibility'; import { getAccessibilitySettings } from './accessibility';
import { getDateFormatSettings } from './date_formats'; import { getDateFormatSettings } from './date_formats';
import { getMiscUiSettings } from './misc'; import { getMiscUiSettings } from './misc';

View file

@ -7,7 +7,7 @@
*/ */
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { UiSettingsParams } from '../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
export const getMiscUiSettings = (): Record<string, UiSettingsParams> => { export const getMiscUiSettings = (): Record<string, UiSettingsParams> => {
return { return {

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getNavigationSettings } from './navigation'; import { getNavigationSettings } from './navigation';
describe('navigation settings', () => { describe('navigation settings', () => {

View file

@ -9,7 +9,7 @@
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
import { isRelativeUrl } from '@kbn/std'; import { isRelativeUrl } from '@kbn/std';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
export const getNavigationSettings = (): Record<string, UiSettingsParams> => { export const getNavigationSettings = (): Record<string, UiSettingsParams> => {
return { return {

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getNotificationsSettings } from './notifications'; import { getNotificationsSettings } from './notifications';
describe('notifications settings', () => { describe('notifications settings', () => {

View file

@ -8,7 +8,7 @@
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
export const getNotificationsSettings = (): Record<string, UiSettingsParams> => { export const getNotificationsSettings = (): Record<string, UiSettingsParams> => {
return { return {

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getStateSettings } from './state'; import { getStateSettings } from './state';
describe('state settings', () => { describe('state settings', () => {

View file

@ -8,7 +8,7 @@
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
export const getStateSettings = (): Record<string, UiSettingsParams> => { export const getStateSettings = (): Record<string, UiSettingsParams> => {
return { return {

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { getThemeSettings } from './theme'; import { getThemeSettings } from './theme';
describe('theme settings', () => { describe('theme settings', () => {

View file

@ -9,7 +9,7 @@
import { schema } from '@kbn/config-schema'; import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
import type { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import type { ThemeVersion } from '@kbn/ui-shared-deps-npm';
import { UiSettingsParams } from '../../../types'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
function parseThemeTags() { function parseThemeTags() {
if (!process.env.KBN_OPTIMIZER_THEMES || process.env.KBN_OPTIMIZER_THEMES === '*') { if (!process.env.KBN_OPTIMIZER_THEMES || process.env.KBN_OPTIMIZER_THEMES === '*') {

View file

@ -0,0 +1,27 @@
/*
* 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.
*/
import type {
IUiSettingsClient,
UiSettingsServiceSetup,
UiSettingsServiceStart,
} from '@kbn/core-ui-settings-server';
/** @internal */
export interface InternalUiSettingsServicePreboot {
/**
* Creates a {@link IUiSettingsClient} that returns default values for the Core uiSettings.
*/
createDefaultsClient(): IUiSettingsClient;
}
/** @internal */
export type InternalUiSettingsServiceSetup = UiSettingsServiceSetup;
/** @internal */
export type InternalUiSettingsServiceStart = UiSettingsServiceStart;

View file

@ -9,8 +9,8 @@
import type { Logger } from '@kbn/logging'; import type { Logger } from '@kbn/logging';
import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server';
import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server'; import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server';
import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { createOrUpgradeSavedConfig } from './create_or_upgrade_saved_config'; import { createOrUpgradeSavedConfig } from './create_or_upgrade_saved_config';
import { UiSettingsParams } from './types';
import { CannotOverrideError } from './ui_settings_errors'; import { CannotOverrideError } from './ui_settings_errors';
import { Cache } from './cache'; import { Cache } from './cache';
import { BaseUiSettingsClient } from './base_ui_settings_client'; import { BaseUiSettingsClient } from './base_ui_settings_client';

View file

@ -21,7 +21,7 @@ const configSchema = schema.object({
export type UiSettingsConfigType = TypeOf<typeof configSchema>; export type UiSettingsConfigType = TypeOf<typeof configSchema>;
export const config: ServiceConfigDescriptor<UiSettingsConfigType> = { export const uiSettingsConfig: ServiceConfigDescriptor<UiSettingsConfigType> = {
path: 'uiSettings', path: 'uiSettings',
schema: configSchema, schema: configSchema,
deprecations, deprecations,

View file

@ -7,7 +7,7 @@
*/ */
import type { Logger } from '@kbn/logging'; import type { Logger } from '@kbn/logging';
import { UiSettingsParams, UserProvidedValues } from './types'; import type { UiSettingsParams, UserProvidedValues } from '@kbn/core-ui-settings-common';
import { BaseUiSettingsClient } from './base_ui_settings_client'; import { BaseUiSettingsClient } from './base_ui_settings_client';
export interface UiSettingsDefaultsClientOptions { export interface UiSettingsDefaultsClientOptions {

View file

@ -7,15 +7,11 @@
*/ */
import type { CoreSavedObjectsRouteHandlerContext } from '@kbn/core-saved-objects-server-internal'; import type { CoreSavedObjectsRouteHandlerContext } from '@kbn/core-saved-objects-server-internal';
import type { IUiSettingsClient, InternalUiSettingsServiceStart } from './types'; import type {
UiSettingsRequestHandlerContext,
/** IUiSettingsClient,
* Core's `uiSettings` request handler context. } from '@kbn/core-ui-settings-server';
* @public import type { InternalUiSettingsServiceStart } from './types';
*/
export interface UiSettingsRequestHandlerContext {
client: IUiSettingsClient;
}
/** /**
* The {@link UiSettingsRequestHandlerContext} implementation. * The {@link UiSettingsRequestHandlerContext} implementation.

View file

@ -13,20 +13,20 @@ import type { Logger } from '@kbn/logging';
import type { CoreContext, CoreService } from '@kbn/core-base-server-internal'; import type { CoreContext, CoreService } from '@kbn/core-base-server-internal';
import type { InternalHttpServiceSetup } from '@kbn/core-http-server-internal'; import type { InternalHttpServiceSetup } from '@kbn/core-http-server-internal';
import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server';
import { InternalSavedObjectsServiceSetup } from '@kbn/core-saved-objects-server-internal'; import type { InternalSavedObjectsServiceSetup } from '@kbn/core-saved-objects-server-internal';
import { UiSettingsConfigType, config as uiConfigDefinition } from './ui_settings_config'; import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import { UiSettingsConfigType, uiSettingsConfig as uiConfigDefinition } from './ui_settings_config';
import { UiSettingsClient } from './ui_settings_client'; import { UiSettingsClient } from './ui_settings_client';
import { import type {
InternalUiSettingsServicePreboot, InternalUiSettingsServicePreboot,
InternalUiSettingsServiceSetup, InternalUiSettingsServiceSetup,
InternalUiSettingsServiceStart, InternalUiSettingsServiceStart,
UiSettingsParams,
} from './types'; } from './types';
import type { InternalUiSettingsRequestHandlerContext } from './internal_types';
import { uiSettingsType } from './saved_objects'; import { uiSettingsType } from './saved_objects';
import { registerRoutes } from './routes'; import { registerRoutes } from './routes';
import { getCoreSettings } from './settings'; import { getCoreSettings } from './settings';
import { UiSettingsDefaultsClient } from './ui_settings_defaults_client'; import { UiSettingsDefaultsClient } from './ui_settings_defaults_client';
import type { InternalUiSettingsRequestHandlerContext } from './internal_types';
export interface SetupDeps { export interface SetupDeps {
http: InternalHttpServiceSetup; http: InternalHttpServiceSetup;

View file

@ -0,0 +1,17 @@
{
"extends": "../../../../tsconfig.bazel.json",
"compilerOptions": {
"declaration": true,
"declarationMap": true,
"emitDeclarationOnly": true,
"outDir": "target_types",
"stripInternal": false,
"types": [
"jest",
"node"
]
},
"include": [
"**/*.ts",
]
}

View file

@ -0,0 +1,107 @@
load("@npm//@bazel/typescript:index.bzl", "ts_config")
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project")
PKG_DIRNAME = "core-ui-settings-server-mocks"
PKG_REQUIRE_NAME = "@kbn/core-ui-settings-server-mocks"
SOURCE_FILES = glob(
[
"**/*.ts",
],
exclude = [
"**/*.config.js",
"**/*.test.*",
"**/*.stories.*",
"**/__snapshots__/**",
"**/integration_tests/**",
"**/mocks/**",
"**/scripts/**",
"**/storybook/**",
"**/test_fixtures/**",
"**/test_helpers/**",
],
)
SRCS = SOURCE_FILES
filegroup(
name = "srcs",
srcs = SRCS,
)
NPM_MODULE_EXTRA_FILES = [
"package.json",
]
RUNTIME_DEPS = [
]
TYPES_DEPS = [
"@npm//@types/node",
"@npm//@types/jest",
"//packages/kbn-utility-types:npm_module_types",
"//packages/core/ui-settings/core-ui-settings-server:npm_module_types",
"//packages/core/ui-settings/core-ui-settings-server-internal:npm_module_types",
]
jsts_transpiler(
name = "target_node",
srcs = SRCS,
build_pkg_name = package_name(),
)
ts_config(
name = "tsconfig",
src = "tsconfig.json",
deps = [
"//:tsconfig.base.json",
"//:tsconfig.bazel.json",
],
)
ts_project(
name = "tsc_types",
args = ['--pretty'],
srcs = SRCS,
deps = TYPES_DEPS,
declaration = True,
declaration_map = True,
emit_declaration_only = True,
out_dir = "target_types",
tsconfig = ":tsconfig",
)
js_library(
name = PKG_DIRNAME,
srcs = NPM_MODULE_EXTRA_FILES,
deps = RUNTIME_DEPS + [":target_node"],
package_name = PKG_REQUIRE_NAME,
visibility = ["//visibility:public"],
)
pkg_npm(
name = "npm_module",
deps = [":" + PKG_DIRNAME],
)
filegroup(
name = "build",
srcs = [":npm_module"],
visibility = ["//visibility:public"],
)
pkg_npm_types(
name = "npm_module_types",
srcs = SRCS,
deps = [":tsc_types"],
package_name = PKG_REQUIRE_NAME,
tsconfig = ":tsconfig",
visibility = ["//visibility:public"],
)
filegroup(
name = "build_types",
srcs = [":npm_module_types"],
visibility = ["//visibility:public"],
)

View file

@ -0,0 +1,4 @@
# @kbn/core-ui-settings-server-mocks
This package contains the mocks for the server-side uiSettings service:
- `uiSettingsServiceMock`

View file

@ -0,0 +1,9 @@
/*
* 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 { uiSettingsServiceMock } from './src';

View file

@ -0,0 +1,13 @@
/*
* 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.
*/
module.exports = {
preset: '@kbn/test/jest_node',
rootDir: '../../../..',
roots: ['<rootDir>/packages/core/ui-settings/core-ui-settings-server-mocks'],
};

View file

@ -0,0 +1,7 @@
{
"type": "shared-common",
"id": "@kbn/core-ui-settings-server-mocks",
"owner": "@elastic/kibana-core",
"runtimeDeps": [],
"typeDeps": [],
}

View file

@ -0,0 +1,8 @@
{
"name": "@kbn/core-ui-settings-server-mocks",
"private": true,
"version": "1.0.0",
"main": "./target_node/index.js",
"author": "Kibana Core",
"license": "SSPL-1.0 OR Elastic License 2.0"
}

View file

@ -0,0 +1,9 @@
/*
* 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 { uiSettingsServiceMock } from './ui_settings_service.mock';

View file

@ -7,13 +7,13 @@
*/ */
import type { PublicMethodsOf } from '@kbn/utility-types'; import type { PublicMethodsOf } from '@kbn/utility-types';
import { import type { IUiSettingsClient } from '@kbn/core-ui-settings-server';
IUiSettingsClient, import type {
InternalUiSettingsServiceSetup, InternalUiSettingsServiceSetup,
InternalUiSettingsServiceStart, InternalUiSettingsServiceStart,
InternalUiSettingsServicePreboot, InternalUiSettingsServicePreboot,
} from './types'; UiSettingsService,
import type { UiSettingsService } from './ui_settings_service'; } from '@kbn/core-ui-settings-server-internal';
const createClientMock = () => { const createClientMock = () => {
const mocked: jest.Mocked<IUiSettingsClient> = { const mocked: jest.Mocked<IUiSettingsClient> = {

View file

@ -0,0 +1,17 @@
{
"extends": "../../../../tsconfig.bazel.json",
"compilerOptions": {
"declaration": true,
"declarationMap": true,
"emitDeclarationOnly": true,
"outDir": "target_types",
"stripInternal": false,
"types": [
"jest",
"node"
]
},
"include": [
"**/*.ts",
]
}

View file

@ -0,0 +1,107 @@
load("@npm//@bazel/typescript:index.bzl", "ts_config")
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project")
PKG_DIRNAME = "core-ui-settings-server"
PKG_REQUIRE_NAME = "@kbn/core-ui-settings-server"
SOURCE_FILES = glob(
[
"**/*.ts",
],
exclude = [
"**/*.config.js",
"**/*.mock.*",
"**/*.test.*",
"**/*.stories.*",
"**/__snapshots__/**",
"**/integration_tests/**",
"**/mocks/**",
"**/scripts/**",
"**/storybook/**",
"**/test_fixtures/**",
"**/test_helpers/**",
],
)
SRCS = SOURCE_FILES
filegroup(
name = "srcs",
srcs = SRCS,
)
NPM_MODULE_EXTRA_FILES = [
"package.json",
]
RUNTIME_DEPS = [
]
TYPES_DEPS = [
"@npm//@types/node",
"@npm//@types/jest",
"//packages/core/saved-objects/core-saved-objects-api-server:npm_module_types",
"//packages/core/ui-settings/core-ui-settings-common:npm_module_types",
]
jsts_transpiler(
name = "target_node",
srcs = SRCS,
build_pkg_name = package_name(),
)
ts_config(
name = "tsconfig",
src = "tsconfig.json",
deps = [
"//:tsconfig.base.json",
"//:tsconfig.bazel.json",
],
)
ts_project(
name = "tsc_types",
args = ['--pretty'],
srcs = SRCS,
deps = TYPES_DEPS,
declaration = True,
declaration_map = True,
emit_declaration_only = True,
out_dir = "target_types",
tsconfig = ":tsconfig",
)
js_library(
name = PKG_DIRNAME,
srcs = NPM_MODULE_EXTRA_FILES,
deps = RUNTIME_DEPS + [":target_node"],
package_name = PKG_REQUIRE_NAME,
visibility = ["//visibility:public"],
)
pkg_npm(
name = "npm_module",
deps = [":" + PKG_DIRNAME],
)
filegroup(
name = "build",
srcs = [":npm_module"],
visibility = ["//visibility:public"],
)
pkg_npm_types(
name = "npm_module_types",
srcs = SRCS,
deps = [":tsc_types"],
package_name = PKG_REQUIRE_NAME,
tsconfig = ":tsconfig",
visibility = ["//visibility:public"],
)
filegroup(
name = "build_types",
srcs = [":npm_module_types"],
visibility = ["//visibility:public"],
)

View file

@ -0,0 +1,3 @@
# @kbn/core-ui-settings-server
This package contains the public types for the server-side ui-settings service.

View file

@ -0,0 +1,14 @@
/*
* 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 type {
IUiSettingsClient,
UiSettingsServiceSetup,
UiSettingsServiceStart,
UiSettingsRequestHandlerContext,
} from './src';

View file

@ -0,0 +1,13 @@
/*
* 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.
*/
module.exports = {
preset: '@kbn/test/jest_node',
rootDir: '../../../..',
roots: ['<rootDir>/packages/core/ui-settings/core-ui-settings-server'],
};

View file

@ -0,0 +1,7 @@
{
"type": "shared-common",
"id": "@kbn/core-ui-settings-server",
"owner": "@elastic/kibana-core",
"runtimeDeps": [],
"typeDeps": [],
}

View file

@ -0,0 +1,8 @@
{
"name": "@kbn/core-ui-settings-server",
"private": true,
"version": "1.0.0",
"main": "./target_node/index.js",
"author": "Kibana Core",
"license": "SSPL-1.0 OR Elastic License 2.0"
}

View file

@ -0,0 +1,52 @@
/*
* 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.
*/
import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server';
import type { IUiSettingsClient } from './ui_settings_client';
/** @public */
export interface UiSettingsServiceSetup {
/**
* Sets settings with default values for the uiSettings.
* @param settings
*
* @example
* ```ts
* setup(core: CoreSetup){
* core.uiSettings.register([{
* foo: {
* name: i18n.translate('my foo settings'),
* value: true,
* description: 'add some awesomeness',
* },
* }]);
* }
* ```
*/
register(settings: Record<string, UiSettingsParams>): void;
}
/** @public */
export interface UiSettingsServiceStart {
/**
* Creates a {@link IUiSettingsClient} with provided *scoped* saved objects client.
*
* This should only be used in the specific case where the client needs to be accessed
* from outside of the scope of a {@link RequestHandler}.
*
* @example
* ```ts
* start(core: CoreStart) {
* const soClient = core.savedObjects.getScopedClient(arbitraryRequest);
* const uiSettingsClient = core.uiSettings.asScopedToClient(soClient);
* }
* ```
*/
asScopedToClient(savedObjectsClient: SavedObjectsClientContract): IUiSettingsClient;
}

View file

@ -0,0 +1,11 @@
/*
* 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 type { IUiSettingsClient } from './ui_settings_client';
export type { UiSettingsServiceSetup, UiSettingsServiceStart } from './contracts';
export type { UiSettingsRequestHandlerContext } from './request_handler_context';

View file

@ -0,0 +1,17 @@
/*
* 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.
*/
import type { IUiSettingsClient } from './ui_settings_client';
/**
* Core's `uiSettings` request handler context.
* @public
*/
export interface UiSettingsRequestHandlerContext {
client: IUiSettingsClient;
}

View file

@ -6,20 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { import type { UserProvidedValues, PublicUiSettingsParams } from '@kbn/core-ui-settings-common';
UiSettingsParams,
UserProvidedValues,
PublicUiSettingsParams,
} from '@kbn/core-ui-settings-common';
import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server';
export type {
UiSettingsParams,
DeprecationSettings,
PublicUiSettingsParams,
UiSettingsType,
UserProvidedValues,
} from '@kbn/core-ui-settings-common';
/** /**
* Server-side client that provides access to the advanced settings stored in elasticsearch. * Server-side client that provides access to the advanced settings stored in elasticsearch.
@ -71,64 +58,3 @@ export interface IUiSettingsClient {
*/ */
isSensitive: (key: string) => boolean; isSensitive: (key: string) => boolean;
} }
/** @internal */
export interface InternalUiSettingsServicePreboot {
/**
* Creates a {@link IUiSettingsClient} that returns default values for the Core uiSettings.
*/
createDefaultsClient(): IUiSettingsClient;
}
/** @internal */
export interface InternalUiSettingsServiceSetup {
/**
* Sets settings with default values for the uiSettings.
* @param settings
*/
register(settings: Record<string, UiSettingsParams>): void;
}
/** @public */
export interface UiSettingsServiceSetup {
/**
* Sets settings with default values for the uiSettings.
* @param settings
*
* @example
* ```ts
* setup(core: CoreSetup){
* core.uiSettings.register([{
* foo: {
* name: i18n.translate('my foo settings'),
* value: true,
* description: 'add some awesomeness',
* },
* }]);
* }
* ```
*/
register(settings: Record<string, UiSettingsParams>): void;
}
/** @public */
export interface UiSettingsServiceStart {
/**
* Creates a {@link IUiSettingsClient} with provided *scoped* saved objects client.
*
* This should only be used in the specific case where the client needs to be accessed
* from outside of the scope of a {@link RequestHandler}.
*
* @example
* ```ts
* start(core: CoreStart) {
* const soClient = core.savedObjects.getScopedClient(arbitraryRequest);
* const uiSettingsClient = core.uiSettings.asScopedToClient(soClient);
* }
* ```
*/
asScopedToClient(savedObjectsClient: SavedObjectsClientContract): IUiSettingsClient;
}
/** @internal */
export type InternalUiSettingsServiceStart = UiSettingsServiceStart;

View file

@ -0,0 +1,17 @@
{
"extends": "../../../../tsconfig.bazel.json",
"compilerOptions": {
"declaration": true,
"declarationMap": true,
"emitDeclarationOnly": true,
"outDir": "target_types",
"stripInternal": false,
"types": [
"jest",
"node"
]
},
"include": [
"**/*.ts",
]
}

View file

@ -7,7 +7,7 @@
*/ */
import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server'; import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server';
import type { UiSettingsRequestHandlerContext } from '../ui_settings'; import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server';
/** /**
* Request handler context used by core's coreApp routes. * Request handler context used by core's coreApp routes.

View file

@ -13,7 +13,8 @@ import type { SavedObjectsRequestHandlerContext } from '@kbn/core-saved-objects-
import { CoreSavedObjectsRouteHandlerContext } from '@kbn/core-saved-objects-server-internal'; import { CoreSavedObjectsRouteHandlerContext } from '@kbn/core-saved-objects-server-internal';
import type { DeprecationsRequestHandlerContext } from '@kbn/core-deprecations-server'; import type { DeprecationsRequestHandlerContext } from '@kbn/core-deprecations-server';
import { CoreDeprecationsRouteHandlerContext } from '@kbn/core-deprecations-server-internal'; import { CoreDeprecationsRouteHandlerContext } from '@kbn/core-deprecations-server-internal';
import { CoreUiSettingsRouteHandlerContext, UiSettingsRequestHandlerContext } from './ui_settings'; import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server';
import { CoreUiSettingsRouteHandlerContext } from '@kbn/core-ui-settings-server-internal';
import type { InternalCoreStart } from './internal_types'; import type { InternalCoreStart } from './internal_types';
/** /**

View file

@ -68,10 +68,10 @@ import type { DeprecationsServiceSetup } from '@kbn/core-deprecations-server';
import type { CoreUsageDataStart, CoreUsageDataSetup } from '@kbn/core-usage-data-server'; import type { CoreUsageDataStart, CoreUsageDataSetup } from '@kbn/core-usage-data-server';
import type { I18nServiceSetup } from '@kbn/core-i18n-server'; import type { I18nServiceSetup } from '@kbn/core-i18n-server';
import type { StatusServiceSetup } from '@kbn/core-status-server'; import type { StatusServiceSetup } from '@kbn/core-status-server';
import type { UiSettingsServiceSetup, UiSettingsServiceStart } from '@kbn/core-ui-settings-server';
import { HttpResources } from './http_resources'; import { HttpResources } from './http_resources';
import { PluginsServiceSetup, PluginsServiceStart, PluginOpaqueId } from './plugins'; import { PluginsServiceSetup, PluginsServiceStart, PluginOpaqueId } from './plugins';
import { UiSettingsServiceSetup, UiSettingsServiceStart } from './ui_settings';
import type { CoreRequestHandlerContext } from './core_route_handler_context'; import type { CoreRequestHandlerContext } from './core_route_handler_context';
import type { PrebootCoreRequestHandlerContext } from './preboot_core_route_handler_context'; import type { PrebootCoreRequestHandlerContext } from './preboot_core_route_handler_context';
@ -397,16 +397,18 @@ export type {
} from '@kbn/core-saved-objects-import-export-server-internal'; } from '@kbn/core-saved-objects-import-export-server-internal';
export type { export type {
IUiSettingsClient,
UiSettingsParams, UiSettingsParams,
PublicUiSettingsParams, PublicUiSettingsParams,
UiSettingsType, UiSettingsType,
UiSettingsServiceSetup,
UiSettingsServiceStart,
UserProvidedValues, UserProvidedValues,
DeprecationSettings, DeprecationSettings,
} from '@kbn/core-ui-settings-common';
export type {
IUiSettingsClient,
UiSettingsServiceSetup,
UiSettingsServiceStart,
UiSettingsRequestHandlerContext, UiSettingsRequestHandlerContext,
} from './ui_settings'; } from '@kbn/core-ui-settings-server';
export type { export type {
OpsMetrics, OpsMetrics,

View file

@ -13,11 +13,12 @@ import {
TestKibanaUtils, TestKibanaUtils,
TestUtils, TestUtils,
} from '../../../test_helpers/kbn_server'; } from '../../../test_helpers/kbn_server';
import { createOrUpgradeSavedConfig } from '../../ui_settings/create_or_upgrade_saved_config';
import { loggingSystemMock } from '@kbn/core-logging-server-mocks'; import { loggingSystemMock } from '@kbn/core-logging-server-mocks';
import { httpServerMock } from '@kbn/core-http-server-mocks'; import { httpServerMock } from '@kbn/core-http-server-mocks';
import { createOrUpgradeSavedConfig } from '@kbn/core-ui-settings-server-internal';
const logger = loggingSystemMock.create().get(); const logger = loggingSystemMock.create().get();
describe('createOrUpgradeSavedConfig()', () => { describe('createOrUpgradeSavedConfig()', () => {
let savedObjectsClient: SavedObjectsClientContract; let savedObjectsClient: SavedObjectsClientContract;
let servers: TestUtils; let servers: TestUtils;

View file

@ -53,11 +53,11 @@ import type { CoreUsageDataStart } from '@kbn/core-usage-data-server';
import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal';
import type { I18nServiceSetup } from '@kbn/core-i18n-server'; import type { I18nServiceSetup } from '@kbn/core-i18n-server';
import type { InternalStatusServiceSetup } from '@kbn/core-status-server-internal'; import type { InternalStatusServiceSetup } from '@kbn/core-status-server-internal';
import { import type {
InternalUiSettingsServicePreboot, InternalUiSettingsServicePreboot,
InternalUiSettingsServiceSetup, InternalUiSettingsServiceSetup,
InternalUiSettingsServiceStart, InternalUiSettingsServiceStart,
} from './ui_settings'; } from '@kbn/core-ui-settings-server-internal';
import { InternalRenderingServiceSetup } from './rendering'; import { InternalRenderingServiceSetup } from './rendering';
import { InternalHttpResourcesPreboot, InternalHttpResourcesSetup } from './http_resources'; import { InternalHttpResourcesPreboot, InternalHttpResourcesSetup } from './http_resources';

View file

@ -30,6 +30,7 @@ import { deprecationsServiceMock } from '@kbn/core-deprecations-server-mocks';
import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks'; import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks';
import { i18nServiceMock } from '@kbn/core-i18n-server-mocks'; import { i18nServiceMock } from '@kbn/core-i18n-server-mocks';
import { statusServiceMock } from '@kbn/core-status-server-mocks'; import { statusServiceMock } from '@kbn/core-status-server-mocks';
import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks';
import type { import type {
PluginInitializerContext, PluginInitializerContext,
CoreSetup, CoreSetup,
@ -40,7 +41,6 @@ import type {
} from '.'; } from '.';
import { httpResourcesMock } from './http_resources/http_resources_service.mock'; import { httpResourcesMock } from './http_resources/http_resources_service.mock';
import { renderingMock } from './rendering/rendering_service.mock'; import { renderingMock } from './rendering/rendering_service.mock';
import { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock';
import { SharedGlobalConfig } from './plugins'; import { SharedGlobalConfig } from './plugins';
export { configServiceMock, configDeprecationsMock } from '@kbn/config-mocks'; export { configServiceMock, configDeprecationsMock } from '@kbn/config-mocks';
@ -55,7 +55,7 @@ export {
savedObjectsRepositoryMock, savedObjectsRepositoryMock,
} from '@kbn/core-saved-objects-api-server-mocks'; } from '@kbn/core-saved-objects-api-server-mocks';
export { migrationMocks } from '@kbn/core-saved-objects-migration-server-mocks'; export { migrationMocks } from '@kbn/core-saved-objects-migration-server-mocks';
export { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock'; export { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks';
export { metricsServiceMock } from '@kbn/core-metrics-server-mocks'; export { metricsServiceMock } from '@kbn/core-metrics-server-mocks';
export { renderingMock } from './rendering/rendering_service.mock'; export { renderingMock } from './rendering/rendering_service.mock';
export { statusServiceMock } from '@kbn/core-status-server-mocks'; export { statusServiceMock } from '@kbn/core-status-server-mocks';

View file

@ -7,8 +7,8 @@
*/ */
// eslint-disable-next-line max-classes-per-file // eslint-disable-next-line max-classes-per-file
import { InternalCorePreboot } from './internal_types'; import type { IUiSettingsClient } from '@kbn/core-ui-settings-server';
import { IUiSettingsClient } from './ui_settings'; import type { InternalCorePreboot } from './internal_types';
/** /**
* @public * @public

View file

@ -17,7 +17,7 @@ import { PackageInfo } from '@kbn/config';
import { AuthStatus } from '@kbn/core-http-server'; import { AuthStatus } from '@kbn/core-http-server';
import { UiPlugins } from '../../plugins'; import { UiPlugins } from '../../plugins';
import { httpServiceMock, httpServerMock } from '@kbn/core-http-server-mocks'; import { httpServiceMock, httpServerMock } from '@kbn/core-http-server-mocks';
import { uiSettingsServiceMock } from '../../ui_settings/ui_settings_service.mock'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks';
import { bootstrapRendererFactory, BootstrapRenderer } from './bootstrap_renderer'; import { bootstrapRendererFactory, BootstrapRenderer } from './bootstrap_renderer';
const createPackageInfo = (parts: Partial<PackageInfo> = {}): PackageInfo => ({ const createPackageInfo = (parts: Partial<PackageInfo> = {}): PackageInfo => ({

View file

@ -10,8 +10,8 @@ import { createHash } from 'crypto';
import { PackageInfo } from '@kbn/config'; import { PackageInfo } from '@kbn/config';
import { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import { ThemeVersion } from '@kbn/ui-shared-deps-npm';
import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server'; import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server';
import type { IUiSettingsClient } from '@kbn/core-ui-settings-server';
import { UiPlugins } from '../../plugins'; import { UiPlugins } from '../../plugins';
import { IUiSettingsClient } from '../../ui_settings';
import { getPluginsBundlePaths } from './get_plugin_bundle_paths'; import { getPluginsBundlePaths } from './get_plugin_bundle_paths';
import { getJsDependencyPaths } from './get_js_dependency_paths'; import { getJsDependencyPaths } from './get_js_dependency_paths';
import { getThemeTag } from './get_theme_tag'; import { getThemeTag } from './get_theme_tag';

View file

@ -7,7 +7,7 @@
*/ */
import type { RequestHandlerContextBase, IRouter } from '@kbn/core-http-server'; import type { RequestHandlerContextBase, IRouter } from '@kbn/core-http-server';
import type { UiSettingsRequestHandlerContext } from '../ui_settings'; import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server';
/** /**
* Request handler context used by core's rendering routes. * Request handler context used by core's rendering routes.

View file

@ -8,7 +8,7 @@
import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm';
import * as UiSharedDepsSrc from '@kbn/ui-shared-deps-src'; import * as UiSharedDepsSrc from '@kbn/ui-shared-deps-src';
import { PublicUiSettingsParams, UserProvidedValues } from '../ui_settings'; import type { PublicUiSettingsParams, UserProvidedValues } from '@kbn/core-ui-settings-common';
export const getSettingValue = <T>( export const getSettingValue = <T>(
settingName: string, settingName: string,

View file

@ -17,7 +17,7 @@ import { load } from 'cheerio';
import { mockRouter } from '@kbn/core-http-router-server-mocks'; import { mockRouter } from '@kbn/core-http-router-server-mocks';
import { httpServerMock } from '@kbn/core-http-server-mocks'; import { httpServerMock } from '@kbn/core-http-server-mocks';
import { uiSettingsServiceMock } from '../ui_settings/ui_settings_service.mock'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks';
import { import {
mockRenderingServiceParams, mockRenderingServiceParams,
mockRenderingPrebootDeps, mockRenderingPrebootDeps,

View file

@ -15,6 +15,7 @@ import type { ThemeVersion } from '@kbn/ui-shared-deps-npm';
import { firstValueFrom, of } from 'rxjs'; import { firstValueFrom, of } from 'rxjs';
import type { CoreContext } from '@kbn/core-base-server-internal'; import type { CoreContext } from '@kbn/core-base-server-internal';
import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server'; import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server';
import type { IUiSettingsClient } from '@kbn/core-ui-settings-server';
import type { UiPlugins } from '../plugins'; import type { UiPlugins } from '../plugins';
import { Template } from './views'; import { Template } from './views';
import { import {
@ -27,7 +28,6 @@ import {
} from './types'; } from './types';
import { registerBootstrapRoute, bootstrapRendererFactory } from './bootstrap'; import { registerBootstrapRoute, bootstrapRendererFactory } from './bootstrap';
import { getSettingValue, getStylesheetPaths } from './render_utils'; import { getSettingValue, getStylesheetPaths } from './render_utils';
import { IUiSettingsClient } from '../ui_settings';
import { filterUiPlugins } from './filter_ui_plugins'; import { filterUiPlugins } from './filter_ui_plugins';
import type { InternalRenderingRequestHandlerContext } from './internal_types'; import type { InternalRenderingRequestHandlerContext } from './internal_types';

View file

@ -16,8 +16,8 @@ import type {
} from '@kbn/core-http-server-internal'; } from '@kbn/core-http-server-internal';
import type { InternalElasticsearchServiceSetup } from '@kbn/core-elasticsearch-server-internal'; import type { InternalElasticsearchServiceSetup } from '@kbn/core-elasticsearch-server-internal';
import type { InternalStatusServiceSetup } from '@kbn/core-status-server-internal'; import type { InternalStatusServiceSetup } from '@kbn/core-status-server-internal';
import type { IUiSettingsClient } from '@kbn/core-ui-settings-server';
import { UiPlugins } from '../plugins'; import { UiPlugins } from '../plugins';
import { IUiSettingsClient } from '../ui_settings';
/** @internal */ /** @internal */
export interface RenderingMetadata { export interface RenderingMetadata {

View file

@ -51,10 +51,10 @@ jest.doMock('@kbn/core-http-context-server-internal', () => ({
ContextService: jest.fn(() => mockContextService), ContextService: jest.fn(() => mockContextService),
})); }));
import { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks';
export const mockUiSettingsService = uiSettingsServiceMock.create(); export const mockUiSettingsService = uiSettingsServiceMock.create();
jest.doMock('./ui_settings/ui_settings_service', () => ({ jest.doMock('@kbn/core-ui-settings-server-internal', () => ({
UiSettingsService: jest.fn(() => mockUiSettingsService), UiSettingsService: jest.fn(() => mockUiSettingsService),
})); }));

View file

@ -57,13 +57,12 @@ import {
} from '@kbn/core-deprecations-server-internal'; } from '@kbn/core-deprecations-server-internal';
import { CoreUsageDataService } from '@kbn/core-usage-data-server-internal'; import { CoreUsageDataService } from '@kbn/core-usage-data-server-internal';
import { StatusService, statusConfig } from '@kbn/core-status-server-internal'; import { StatusService, statusConfig } from '@kbn/core-status-server-internal';
import { UiSettingsService, uiSettingsConfig } from '@kbn/core-ui-settings-server-internal';
import { CoreApp } from './core_app'; import { CoreApp } from './core_app';
import { HttpResourcesService } from './http_resources'; import { HttpResourcesService } from './http_resources';
import { RenderingService } from './rendering'; import { RenderingService } from './rendering';
import { UiSettingsService } from './ui_settings';
import { PluginsService, config as pluginsConfig } from './plugins'; import { PluginsService, config as pluginsConfig } from './plugins';
import { config as uiSettingsConfig } from './ui_settings';
import { InternalCorePreboot, InternalCoreSetup, InternalCoreStart } from './internal_types'; import { InternalCorePreboot, InternalCoreSetup, InternalCoreStart } from './internal_types';
import { CoreRouteHandlerContext } from './core_route_handler_context'; import { CoreRouteHandlerContext } from './core_route_handler_context';
import { PrebootCoreRouteHandlerContext } from './preboot_core_route_handler_context'; import { PrebootCoreRouteHandlerContext } from './preboot_core_route_handler_context';

View file

@ -47,4 +47,16 @@ export type {
} from '@kbn/core-deprecations-common'; } from '@kbn/core-deprecations-common';
export type { ExternalUrlConfig } from '@kbn/core-http-server-internal'; export type { ExternalUrlConfig } from '@kbn/core-http-server-internal';
export type { SavedObjectStatusMeta } from '@kbn/core-saved-objects-server'; export type { SavedObjectStatusMeta } from '@kbn/core-saved-objects-server';
export * from './ui_settings/types'; export type {
UiSettingsParams,
PublicUiSettingsParams,
UiSettingsType,
UserProvidedValues,
DeprecationSettings,
} from '@kbn/core-ui-settings-common';
export type {
IUiSettingsClient,
UiSettingsServiceSetup,
UiSettingsServiceStart,
UiSettingsRequestHandlerContext,
} from '@kbn/core-ui-settings-server';

Some files were not shown because too many files have changed in this diff Show more