kibana-riya
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
157 lines (130 loc) • 6.92 kB
JavaScript
'use strict';
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _joi = require('joi');
var _joi2 = _interopRequireDefault(_joi);
var _lodash = require('lodash');
var _crypto = require('crypto');
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
var _utils = require('../../utils');
var _path = require('../path');
var _srcUtilsPackage_json = require('../../../src/utils/package_json');
var _srcUtilsPackage_json2 = _interopRequireDefault(_srcUtilsPackage_json);
module.exports = function () {
return _joi2['default'].object({
pkg: _joi2['default'].object({
version: _joi2['default'].string()['default'](_joi2['default'].ref('$version')),
buildNum: _joi2['default'].number()['default'](_joi2['default'].ref('$buildNum')),
buildSha: _joi2['default'].string()['default'](_joi2['default'].ref('$buildSha'))
})['default'](),
env: _joi2['default'].object({
name: _joi2['default'].string()['default'](_joi2['default'].ref('$env')),
dev: _joi2['default'].boolean()['default'](_joi2['default'].ref('$dev')),
prod: _joi2['default'].boolean()['default'](_joi2['default'].ref('$prod'))
})['default'](),
dev: _joi2['default'].object({
basePathProxyTarget: _joi2['default'].number()['default'](5603)
})['default'](),
pid: _joi2['default'].object({
file: _joi2['default'].string(),
exclusive: _joi2['default'].boolean()['default'](false)
})['default'](),
server: _joi2['default'].object({
uuid: _joi2['default'].string().guid()['default'](),
name: _joi2['default'].string()['default'](_os2['default'].hostname()),
host: _joi2['default'].string().hostname()['default']('localhost'),
port: _joi2['default'].number()['default'](5601),
maxPayloadBytes: _joi2['default'].number()['default'](1048576),
autoListen: _joi2['default'].boolean()['default'](true),
defaultRoute: _joi2['default'].string()['default']('/app/kibana').regex(/^\//, 'start with a slash'),
basePath: _joi2['default'].string()['default']('').allow('').regex(/(^$|^\/.*[^\/]$)/, 'start with a slash, don\'t end with one'),
ssl: _joi2['default'].object({
cert: _joi2['default'].string(),
key: _joi2['default'].string()
})['default'](),
cors: _joi2['default'].when('$dev', {
is: true,
then: _joi2['default'].object()['default']({
origin: ['*://localhost:9876'] // karma test server
}),
otherwise: _joi2['default'].boolean()['default'](false)
}),
xsrf: _joi2['default'].object({
disableProtection: _joi2['default'].boolean()['default'](false),
token: _joi2['default'].string().optional().notes('Deprecated')
})['default']()
})['default'](),
logging: _joi2['default'].object().keys({
silent: _joi2['default'].boolean()['default'](false),
quiet: _joi2['default'].boolean().when('silent', {
is: true,
then: _joi2['default']['default'](true).valid(true),
otherwise: _joi2['default']['default'](false)
}),
verbose: _joi2['default'].boolean().when('quiet', {
is: true,
then: _joi2['default'].valid(false)['default'](false),
otherwise: _joi2['default']['default'](false)
}),
events: _joi2['default'].any()['default']({}),
dest: _joi2['default'].string()['default']('stdout'),
filter: _joi2['default'].any()['default']({}),
json: _joi2['default'].boolean().when('dest', {
is: 'stdout',
then: _joi2['default']['default'](!process.stdout.isTTY),
otherwise: _joi2['default']['default'](true)
})
})['default'](),
ops: _joi2['default'].object({
interval: _joi2['default'].number()['default'](5000)
})['default'](),
plugins: _joi2['default'].object({
paths: _joi2['default'].array().items(_joi2['default'].string())['default']([]),
scanDirs: _joi2['default'].array().items(_joi2['default'].string())['default']([]),
initialize: _joi2['default'].boolean()['default'](true)
})['default'](),
path: _joi2['default'].object({
data: _joi2['default'].string()['default']((0, _path.getData)())
})['default'](),
optimize: _joi2['default'].object({
enabled: _joi2['default'].boolean()['default'](true),
bundleFilter: _joi2['default'].string()['default']('!tests'),
bundleDir: _joi2['default'].string()['default']((0, _utils.fromRoot)('optimize/bundles')),
viewCaching: _joi2['default'].boolean()['default'](_joi2['default'].ref('$prod')),
lazy: _joi2['default'].boolean()['default'](false),
lazyPort: _joi2['default'].number()['default'](5602),
lazyHost: _joi2['default'].string().hostname()['default']('localhost'),
lazyPrebuild: _joi2['default'].boolean()['default'](false),
lazyProxyTimeout: _joi2['default'].number()['default'](5 * 60000),
useBundleCache: _joi2['default'].boolean()['default'](_joi2['default'].ref('$prod')),
unsafeCache: _joi2['default'].alternatives()['try'](_joi2['default'].boolean(), _joi2['default'].string().regex(/^\/.+\/$/))['default']('/[\\/\\\\](node_modules|bower_components)[\\/\\\\]/'),
sourceMaps: _joi2['default'].alternatives()['try'](_joi2['default'].string().required(), _joi2['default'].boolean())['default'](_joi2['default'].ref('$dev')),
profile: _joi2['default'].boolean()['default'](false)
})['default'](),
status: _joi2['default'].object({
allowAnonymous: _joi2['default'].boolean()['default'](false)
})['default'](),
tilemap: _joi2['default'].object({
manifestServiceUrl: _joi2['default'].string()['default']('https://tiles.elastic.co/v2/manifest'),
url: _joi2['default'].string(),
options: _joi2['default'].object({
attribution: _joi2['default'].string(),
minZoom: _joi2['default'].number().min(1, 'Must not be less than 1')['default'](1),
maxZoom: _joi2['default'].number()['default'](10),
tileSize: _joi2['default'].number(),
subdomains: _joi2['default'].array().items(_joi2['default'].string()).single(),
errorTileUrl: _joi2['default'].string().uri(),
tms: _joi2['default'].boolean(),
reuseTiles: _joi2['default'].boolean(),
bounds: _joi2['default'].array().items(_joi2['default'].array().items(_joi2['default'].number()).min(2).required()).min(2)
})['default']()
})['default'](),
uiSettings: _joi2['default'].object({
// this is used to prevent the uiSettings from initializing. Since they
// require the elasticsearch plugin in order to function we need to turn
// them off when we turn off the elasticsearch plugin (like we do in the
// optimizer half of the dev server)
enabled: _joi2['default'].boolean()['default'](true)
})['default']()
})['default']();
};