mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Deprecate kibana.index
setting (#83988)
* Deprecating `kibana.index` setting * Using ela.st service so this can be changed to the blog in the future * Adding unit tests * Revising deprecation log message * Changing the deprecation log message to be more consistent with others * Updating kibana.index docs also * Using rename deprecation as the "standard" for the deprecation messages * /s/'/`
This commit is contained in:
parent
cc35065f5a
commit
13808e019e
3 changed files with 84 additions and 2 deletions
|
@ -214,10 +214,12 @@ Please use the `defaultRoute` advanced setting instead.
|
|||
The default application to load. *Default: `"home"`*
|
||||
|
||||
|[[kibana-index]] `kibana.index:`
|
||||
| {kib} uses an index in {es} to store saved searches, visualizations, and
|
||||
| *deprecated* This setting is deprecated and will be removed in 8.0. Multitenancy by changing
|
||||
`kibana.index` will not be supported starting in 8.0. See https://ela.st/kbn-remove-legacy-multitenancy[8.0 Breaking Changes]
|
||||
for more details. {kib} uses an index in {es} to store saved searches, visualizations, and
|
||||
dashboards. {kib} creates a new index if the index doesn’t already exist.
|
||||
If you configure a custom index, the name must be lowercase, and conform to the
|
||||
{es} {ref}/indices-create-index.html[index name limitations].
|
||||
{es} {ref}/indices-create-index.html[index name limitations].
|
||||
*Default: `".kibana"`*
|
||||
|
||||
| `kibana.autocompleteTimeout:` {ess-icon}
|
||||
|
|
66
src/core/server/kibana_config.test.ts
Normal file
66
src/core/server/kibana_config.test.ts
Normal file
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { config } from './kibana_config';
|
||||
import { applyDeprecations, configDeprecationFactory } from '@kbn/config';
|
||||
|
||||
const CONFIG_PATH = 'kibana';
|
||||
|
||||
const applyKibanaDeprecations = (settings: Record<string, any> = {}) => {
|
||||
const deprecations = config.deprecations!(configDeprecationFactory);
|
||||
const deprecationMessages: string[] = [];
|
||||
const _config: any = {};
|
||||
_config[CONFIG_PATH] = settings;
|
||||
const migrated = applyDeprecations(
|
||||
_config,
|
||||
deprecations.map((deprecation) => ({
|
||||
deprecation,
|
||||
path: CONFIG_PATH,
|
||||
})),
|
||||
(msg) => deprecationMessages.push(msg)
|
||||
);
|
||||
return {
|
||||
messages: deprecationMessages,
|
||||
migrated,
|
||||
};
|
||||
};
|
||||
|
||||
it('set correct defaults ', () => {
|
||||
const configValue = config.schema.validate({});
|
||||
expect(configValue).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"autocompleteTerminateAfter": "PT1M40S",
|
||||
"autocompleteTimeout": "PT1S",
|
||||
"enabled": true,
|
||||
"index": ".kibana",
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
describe('deprecations', () => {
|
||||
['.foo', '.kibana'].forEach((index) => {
|
||||
it('logs a warning if index is set', () => {
|
||||
const { messages } = applyKibanaDeprecations({ index });
|
||||
expect(messages).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
"\\"kibana.index\\" is deprecated. Multitenancy by changing \\"kibana.index\\" will not be supported starting in 8.0. See https://ela.st/kbn-remove-legacy-multitenancy for more details",
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -18,9 +18,22 @@
|
|||
*/
|
||||
|
||||
import { schema, TypeOf } from '@kbn/config-schema';
|
||||
import { ConfigDeprecationProvider } from '@kbn/config';
|
||||
|
||||
export type KibanaConfigType = TypeOf<typeof config.schema>;
|
||||
|
||||
const deprecations: ConfigDeprecationProvider = () => [
|
||||
(settings, fromPath, log) => {
|
||||
const kibana = settings[fromPath];
|
||||
if (kibana?.index) {
|
||||
log(
|
||||
`"kibana.index" is deprecated. Multitenancy by changing "kibana.index" will not be supported starting in 8.0. See https://ela.st/kbn-remove-legacy-multitenancy for more details`
|
||||
);
|
||||
}
|
||||
return settings;
|
||||
},
|
||||
];
|
||||
|
||||
export const config = {
|
||||
path: 'kibana',
|
||||
schema: schema.object({
|
||||
|
@ -29,4 +42,5 @@ export const config = {
|
|||
autocompleteTerminateAfter: schema.duration({ defaultValue: 100000 }),
|
||||
autocompleteTimeout: schema.duration({ defaultValue: 1000 }),
|
||||
}),
|
||||
deprecations,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue