Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Stack management apps] Deprecate "enabled" Kibana setting #114768

Merged
merged 31 commits into from
Oct 19, 2021
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4ec0c8b
[Index management] Add ui.enabled kibana setting
sebelga Oct 13, 2021
8cfa25e
[Rolllup Add ui.enabled kibana setting
sebelga Oct 13, 2021
d58fd9c
[Snapshot and restore] Add ui.enabled kibana setting
sebelga Oct 13, 2021
d93ca8c
[UA] Align with other apps and use the "MAJOR_VERSION" constant
sebelga Oct 13, 2021
25bc566
[UA] Align with other apps and use the "MAJOR_VERSION" constant (2)
sebelga Oct 13, 2021
c7ac361
[UA] Add ui.enabled kibana setting
sebelga Oct 13, 2021
ed42009
[Console] Add ui.enabled kibana setting
sebelga Oct 14, 2021
020bbd7
Fix TS and i18n issues
sebelga Oct 14, 2021
cc60f00
[CCR] Add ui.enabled kibana setting
sebelga Oct 14, 2021
5fe7713
[ILM] Add deprecation for "enabled" setting
sebelga Oct 14, 2021
cf46649
[License management] Add deprecation for "enabled" setting
sebelga Oct 14, 2021
8f936a6
Fix i18n issue
sebelga Oct 14, 2021
d8b6909
Fix jest test
sebelga Oct 14, 2021
63df99c
[Remote clusters] Add deprecation for "enabled" setting
sebelga Oct 14, 2021
338488a
Fix i18n issue
sebelga Oct 14, 2021
8b932f4
Fix i18n issue
sebelga Oct 14, 2021
2fddef6
Fix TS issue
sebelga Oct 14, 2021
058a081
Merge remote-tracking branch 'upstream/master' into stack-managment-a…
sebelga Oct 18, 2021
972934e
Refactor to not extend schema and config objects
sebelga Oct 18, 2021
d7cb7e2
Fix TS issue
sebelga Oct 18, 2021
90f3227
Merge branch 'master' into stack-managment-apps-deprecate-enable
kibanamachine Oct 18, 2021
6813c6a
Improve deprecation message for console.proxyConfig and console.proxy…
sebelga Oct 18, 2021
29bf4c7
Merge branch 'stack-managment-apps-deprecate-enable' of github.com:se…
sebelga Oct 18, 2021
52739f8
Fix TS issue
sebelga Oct 18, 2021
83e0a7b
Add doc for the "<app>.ui.enabled" setting
sebelga Oct 18, 2021
183a1c3
Fix Console deprecations.
cjcenizal Oct 18, 2021
2e326e5
Add inline comments where we check if Console UI is enabled.
cjcenizal Oct 18, 2021
61b703e
Fix typo in docs.
cjcenizal Oct 18, 2021
596c605
Configure level and refine copy for other deprecations.
cjcenizal Oct 18, 2021
223d956
Merge branch 'master' into stack-managment-apps-deprecate-enable
kibanamachine Oct 18, 2021
d5e7e16
Merge branch 'master' into stack-managment-apps-deprecate-enable
kibanamachine Oct 19, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/dev-tools/console/console.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,12 @@ image::dev-tools/console/images/console-settings.png["Console Settings", width=6

For a list of available keyboard
shortcuts, click *Help*.

[float]
[[console-settings]]
=== Disable Console

If you don’t want to use *Console*, you can disable it by setting `console.ui.enabled`
to `false` in your `kibana.yml` configuration file. Changing this setting
causes the server to regenerate assets on the next startup,
which might cause a delay before pages start being served.
34 changes: 34 additions & 0 deletions docs/setup/settings.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ configuration using `${MY_ENV_VAR}` syntax.
[cols="2*<"]
|===

| `console.ui.enabled:`
Toggling this causes the server to regenerate assets on the next startup,
which may cause a delay before pages start being served.
Set to `false` to disable Console. *Default: `true`*

| `csp.rules:`
| deprecated:[7.14.0,"In 8.0 and later, this setting will no longer be supported."]
A https://w3c.github.io/webappsec-csp/[Content Security Policy] template
Expand Down Expand Up @@ -681,6 +686,10 @@ out through *Advanced Settings*. *Default: `true`*
| Set this value to true to allow Vega to use any URL to access external data
sources and images. When false, Vega can only get data from {es}. *Default: `false`*

| `xpack.ccr.ui.enabled`
Set this value to false to disable the Cross-Cluster Replication UI.
*Default: `true`*

|[[settings-explore-data-in-context]] `xpack.discoverEnhanced.actions.`
`exploreDataInContextMenu.enabled`
| Enables the *Explore underlying data* option that allows you to open *Discover* from a dashboard panel and view the panel data. *Default: `false`*
Expand All @@ -689,6 +698,31 @@ sources and images. When false, Vega can only get data from {es}. *Default: `fal
`exploreDataInChart.enabled`
| Enables you to view the underlying documents in a data series from a dashboard panel. *Default: `false`*

| `xpack.ilm.ui.enabled`
Set this value to false to disable the Index Lifecycle Policies UI.
*Default: `true`*

| `xpack.index_management.ui.enabled`
Set this value to false to disable the Index Management UI.
*Default: `true`*

| `xpack.license_management.ui.enabled`
Set this value to false to disable the License Management UI.
*Default: `true`*

| `xpack.remote_clusters.ui.enabled`
Set this value to false to disable the Remote Clusters UI.
*Default: `true`*

| `xpack.rollup.ui.enabled:`
Set this value to false to disable the Rollup Jobs UI. *Default: true*

| `xpack.snapshot_restore.ui.enabled:`
Set this value to false to disable the Snapshot and Restore UI. *Default: true*

| `xpack.upgrade_assistant.ui.enabled:`
Set this value to false to disable the Upgrade Assistant UI. *Default: true*

| `i18n.locale` {ess-icon}
| Set this value to change the {kib} interface language.
Valid locales are: `en`, `zh-CN`, `ja-JP`. *Default: `en`*
Expand Down
7 changes: 4 additions & 3 deletions src/plugins/console/public/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
*/

import './index.scss';
import { PluginInitializerContext } from 'src/core/public';

import { ConsoleUIPlugin } from './plugin';

export type { ConsoleUILocatorParams } from './plugin';
export type { ConsoleUILocatorParams, ConsolePluginSetup } from './types';

export { ConsoleUIPlugin as Plugin };

export function plugin() {
return new ConsoleUIPlugin();
export function plugin(ctx: PluginInitializerContext) {
return new ConsoleUIPlugin(ctx);
}
122 changes: 66 additions & 56 deletions src/plugins/console/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,77 +7,87 @@
*/

import { i18n } from '@kbn/i18n';
import { SerializableRecord } from '@kbn/utility-types';
import { Plugin, CoreSetup } from 'src/core/public';
import { Plugin, CoreSetup, PluginInitializerContext } from 'src/core/public';

import { FeatureCatalogueCategory } from '../../home/public';
import { AppSetupUIPluginDependencies } from './types';

export interface ConsoleUILocatorParams extends SerializableRecord {
loadFrom?: string;
}
import {
AppSetupUIPluginDependencies,
ClientConfigType,
ConsolePluginSetup,
ConsoleUILocatorParams,
} from './types';

export class ConsoleUIPlugin implements Plugin<void, void, AppSetupUIPluginDependencies> {
constructor(private ctx: PluginInitializerContext) {}

public setup(
{ notifications, getStartServices, http }: CoreSetup,
{ devTools, home, share, usageCollection }: AppSetupUIPluginDependencies
) {
if (home) {
home.featureCatalogue.register({
): ConsolePluginSetup {
const {
ui: { enabled: isConsoleUiEnabled },
} = this.ctx.config.get<ClientConfigType>();

if (isConsoleUiEnabled) {
if (home) {
home.featureCatalogue.register({
id: 'console',
title: i18n.translate('console.devToolsTitle', {
defaultMessage: 'Interact with the Elasticsearch API',
}),
description: i18n.translate('console.devToolsDescription', {
defaultMessage: 'Skip cURL and use a JSON interface to work with your data in Console.',
}),
icon: 'consoleApp',
path: '/app/dev_tools#/console',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
});
}

devTools.register({
id: 'console',
title: i18n.translate('console.devToolsTitle', {
defaultMessage: 'Interact with the Elasticsearch API',
}),
description: i18n.translate('console.devToolsDescription', {
defaultMessage: 'Skip cURL and use a JSON interface to work with your data in Console.',
order: 1,
title: i18n.translate('console.consoleDisplayName', {
defaultMessage: 'Console',
}),
icon: 'consoleApp',
path: '/app/dev_tools#/console',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
});
}
enableRouting: false,
mount: async ({ element }) => {
const [core] = await getStartServices();

devTools.register({
id: 'console',
order: 1,
title: i18n.translate('console.consoleDisplayName', {
defaultMessage: 'Console',
}),
enableRouting: false,
mount: async ({ element }) => {
const [core] = await getStartServices();
const {
i18n: { Context: I18nContext },
docLinks: { DOC_LINK_VERSION },
} = core;

const {
i18n: { Context: I18nContext },
docLinks: { DOC_LINK_VERSION },
} = core;
const { renderApp } = await import('./application');

const { renderApp } = await import('./application');
return renderApp({
http,
docLinkVersion: DOC_LINK_VERSION,
I18nContext,
notifications,
usageCollection,
element,
});
},
});

return renderApp({
http,
docLinkVersion: DOC_LINK_VERSION,
I18nContext,
notifications,
usageCollection,
element,
});
},
});
const locator = share.url.locators.create<ConsoleUILocatorParams>({
id: 'CONSOLE_APP_LOCATOR',
getLocation: async ({ loadFrom }) => {
return {
app: 'dev_tools',
path: `#/console${loadFrom ? `?load_from=${loadFrom}` : ''}`,
state: { loadFrom },
};
},
});

const locator = share.url.locators.create<ConsoleUILocatorParams>({
id: 'CONSOLE_APP_LOCATOR',
getLocation: async ({ loadFrom }) => {
return {
app: 'dev_tools',
path: `#/console${loadFrom ? `?load_from=${loadFrom}` : ''}`,
state: { loadFrom },
};
},
});
return { locator };
}

return { locator };
return {};
}

public start() {}
Expand Down
13 changes: 13 additions & 0 deletions src/plugins/console/public/types/config.ts
Original file line number Diff line number Diff line change
@@ -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.
*/

export interface ClientConfigType {
ui: {
enabled: boolean;
};
}
2 changes: 2 additions & 0 deletions src/plugins/console/public/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ export * from './core_editor';
export * from './token';
export * from './tokens_provider';
export * from './common';
export { ClientConfigType } from './config';
export { ConsoleUILocatorParams } from './locator';
12 changes: 12 additions & 0 deletions src/plugins/console/public/types/locator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* 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 { SerializableRecord } from '@kbn/utility-types';

export interface ConsoleUILocatorParams extends SerializableRecord {
loadFrom?: string;
}
8 changes: 7 additions & 1 deletion src/plugins/console/public/types/plugin_dependencies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,17 @@
import { HomePublicPluginSetup } from '../../../home/public';
import { DevToolsSetup } from '../../../dev_tools/public';
import { UsageCollectionSetup } from '../../../usage_collection/public';
import { SharePluginSetup } from '../../../share/public';
import { SharePluginSetup, LocatorPublic } from '../../../share/public';

import { ConsoleUILocatorParams } from './locator';

export interface AppSetupUIPluginDependencies {
home?: HomePublicPluginSetup;
devTools: DevToolsSetup;
share: SharePluginSetup;
usageCollection?: UsageCollectionSetup;
}

export interface ConsolePluginSetup {
locator?: LocatorPublic<ConsoleUILocatorParams>;
}
Loading