UNPKG

kibana-123

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

137 lines (126 loc) 4.21 kB
import Promise from 'bluebird'; import { mkdirp as mkdirpNode } from 'mkdirp'; import manageUuid from './server/lib/manage_uuid'; import ingest from './server/routes/api/ingest'; import search from './server/routes/api/search'; import settings from './server/routes/api/settings'; import scripts from './server/routes/api/scripts'; import * as systemApi from './server/lib/system_api'; const mkdirp = Promise.promisify(mkdirpNode); module.exports = function (kibana) { const kbnBaseUrl = '/app/kibana'; return new kibana.Plugin({ id: 'kibana', config: function (Joi) { return Joi.object({ enabled: Joi.boolean().default(true), defaultAppId: Joi.string().default('discover'), index: Joi.string().default('.kibana') }).default(); }, uiExports: { hacks: ['plugins/kibana/dev_tools/hacks/hide_empty_tools'], app: { id: 'kibana', title: 'Kibana', listed: false, description: 'the kibana you know and love', main: 'plugins/kibana/kibana', uses: [ 'visTypes', 'spyModes', 'fieldFormats', 'navbarExtensions', 'managementSections', 'devTools', 'docViews' ], injectVars: function (server) { const serverConfig = server.config(); //DEPRECATED SETTINGS //if the url is set, the old settings must be used. //keeping this logic for backward compatibilty. const configuredUrl = server.config().get('tilemap.url'); const isOverridden = typeof configuredUrl === 'string' && configuredUrl !== ''; const tilemapConfig = serverConfig.get('tilemap'); return { kbnDefaultAppId: serverConfig.get('kibana.defaultAppId'), tilemapsConfig: { deprecated: { isOverridden: isOverridden, config: tilemapConfig, }, manifestServiceUrl: serverConfig.get('tilemap.manifestServiceUrl') }, }; }, }, links: [ { id: 'kibana:discover', title: 'Discover', order: -1003, url: `${kbnBaseUrl}#/discover`, description: 'interactively explore your data', icon: 'plugins/kibana/assets/discover.svg', }, { id: 'kibana:visualize', title: 'Visualize', order: -1002, url: `${kbnBaseUrl}#/visualize`, description: 'design data visualizations', icon: 'plugins/kibana/assets/visualize.svg', }, { id: 'kibana:dashboard', title: 'Dashboard', order: -1001, url: `${kbnBaseUrl}#/dashboard`, description: 'compose visualizations for much win', icon: 'plugins/kibana/assets/dashboard.svg', }, { id: 'kibana:dev_tools', title: 'Dev Tools', order: 9001, url: '/app/kibana#/dev_tools', description: 'development tools', icon: 'plugins/kibana/assets/wrench.svg' }, { id: 'kibana:management', title: 'Management', order: 9003, url: `${kbnBaseUrl}#/management`, description: 'define index patterns, change config, and more', icon: 'plugins/kibana/assets/settings.svg', linkToLastSubUrl: false }, ], injectDefaultVars(server, options) { return { kbnIndex: options.index, kbnBaseUrl }; }, }, preInit: async function (server) { try { // Create the data directory (recursively, if the a parent dir doesn't exist). // If it already exists, does nothing. await mkdirp(server.config().get('path.data')); } catch (err) { server.log(['error', 'init'], err); // Stop the server startup with a fatal error throw err; } }, init: function (server, options) { // uuid manageUuid(server); // routes ingest(server); search(server); settings(server); scripts(server); server.expose('systemApi', systemApi); } }); };