Работа с параметрами URL в кастомном плагине Kibana

Я работаю над настраиваемым плагином для Kibana (7.5.2). Плагин имеет тип "приложение". Я хотел бы иметь возможность передавать параметры этому плагину, чтобы предварительно загрузить некоторые данные из Elasticsearch. То есть мне нужно предоставить пользователям некоторые конкретные URL-адреса, содержащие параметры, которые будут использоваться плагином для отображения только соответствующей части данных.

Моя проблема в том, что мне не удалось найти достаточную документацию по этому поводу и я не знаю, каким должен быть правильный подход. Я попытаюсь обобщить то, что я знаю / сделал на данный момент:

  1. Я прочитал официальные ресурсы по разработке плагинов

  2. Мне известно о том, что параметры URL _g и _a используются для передачи состояния в приложениях Kibana. Однако а) я не уверен, что это правильный подход в моем случае и б) мне также не удалось найти никакой информации о том, как мой плагин должен получать доступ к данным из этих параметров.

  3. Я проверил источники других известных плагинов, но опять же не смог найти никаких подсказок.

  4. Я могу ввести некоторые значения конфигурации, используя injectUiAppVars в init метод моего плагина (index.js) и получить эти значения в моем приложении (main.js):

    index.js:


export default function (kibana) {
 return new kibana.Plugin({
   require: ['elasticsearch'],
   name: ...,
   uiExports: {
     ...
   },

   ...

   init(server, options) { // eslint-disable-line no-unused-vars
     server.injectUiAppVars('logviewer', async () => {
       var kibana_vars = await server.getInjectedUiAppVars('kibana');
       var aggregated_vars = { ...kibana_vars, ...{ mycustomparameter: "some value" } }
       return aggregated_vars
     });

   ...
   }
 });
}

main.js

   import chrome from 'ui/chrome';
   . . . 
   const mycustomparameter = chrome.getInjected('mycustomparameter');

Если мне удастся получить параметры из URL-адреса, это позволит мне передать их моему приложению (через mycustomparameter), но опять же, я не уверен, верен ли этот подход.

  1. Я пытался получить помощь через форум Elastic, но пока не получил ответа.

Мои вопросы1. Есть ли какой-нибудь источник информации по данной теме? Мне известно, что API плагинов часто меняется, поэтому не ожидаю найти обширную документацию. Может, хороший пример?

  1. Я полностью сбился с курса в том, как я пытаюсь этого достичь?

Спасибо, что прочитали это, мы будем благодарны за любую помощь!

0 ответов

Другие вопросы по тегам