自定义配置

获取配置文件中内容

在程序入口文件index.js 中可以在init方法中获取server对象,通过该server可以获取config,具体方式如下:
1
init(server, options) {
2
const config = server.config();
3
const url = config.get('elasticsearch.url');
4
}
Copied!

自定义配置

1.配置校验与默认值

在index.js new kibana.Plugin中可以传入config方法,如下:
1
config(Joi) {
2
return Joi.object({
3
enabled: Joi.boolean().default(true),
4
scheduleTime: Joi.number().default(60),
5
mergePattern: Joi.string().default('[^a-z]+#x27;),
6
}).default();
7
},
Copied!
这里使用的Joi,通过它可以设置配置参数的数据类型,以及默认值。参数默认格式是[pluginName].enabled等。

2.参数注入

参数注入的目的是前端可以使用该参数,对于server端获取参数,完全可以使用server.config().get('elasticsearch.url').
注入的方式是在uiExports中injectDefaultVars:
1
export default function (kibana) {
2
return new kibana.Plugin({
3
require: ['elasticsearch'],
4
name: 'cleaner',
5
uiExports: {
6
injectDefaultVars: function (server) {
7
const config = server.config();
8
const pattern = config.get('cleaner.mergePattern');
9
return {
10
mergePattern: pattern,
11
};
12
}
13
},
14
});
15
}
Copied!

3.前端获取参数

1
import chrome from 'ui/chrome';
2
const mergePattern = chrome.getInjected('mergePattern');
Copied!