Keeping up with Kibana: This week in Kibana for June 10, 2019

Lots of good progress on some exciting new features!


Kibana - Visualisations & Vega Engineer

Kibana - GIS Data Engineer

Kibana - Senior JavaScript Engineer

Kibana - Senior Software Engineer - Operations

Kibana - Platform JavaScript Engineer (Node.js)

Director / Sr Director Product Management - Kibana


Feature Controls

This week for Feature Controls was dedicated to crafting release highlights and a blog post introducing the feature. We expect to have the blog post drafted early next week!

New Platform Migration

We previously began work on migrating the spaces plugin to the new platform, and we continued this effort this week. Aleh also began looking into migrating the security plugin’s authentication to the new platform. Once authentication is migrated, we’ll then be focusing on moving over the authorization components of both the spaces and security plugins.

Copy Saved Objects to Spaces (#37286)

We started an exploratory PR for the API that will power this feature. After discussions, we decided to work on preparing the underlying infrastructure for this API in a series of smaller PRs to make the work more manageable. Specifically:

  • Refactoring & simplifying `savedObjectsManagement` UI Capabilities
  • Re-order the Saved Objects Client Wrappers that security and spaces implement to allow the spaces plugin to inform the security plugin which space to authorize against, without the security plugin having to derive this information from the request itself.


New Platform Services

Unblocking Security Integration

  • Support for route tags has been merged (#37344)
  • Exposing session storage to auth providers is in review (#37992)

Migrating Saved Objects to NP

  • Saved Objects conversion to TypeScript has been merged (#36829)
  • Work has begun on migrating the SavedObjectClient to the NP (no PR yet)


  • The Handler Context (#36509) and ApplicationService RFCs (#36477) are in the final comment period
  • Removal of the last legacy dependencies for the Header UI is in review (#38175)
  • An end-to-end proof-of-concept prototype of frontend routing and integration with the legacy platform has been proven out. Implementation of this will begin once the Header UI is moved to the new platform. We expect this effort to require many PRs to complete.

Licensing Plugin

  • Investigation and planning for this plugin will begin next week.


  • Simplifying the integration between legacy and new platforms on the client has been merged (#37734)
  • Moving the Chrome and I18n APIs to the start phase was merged (#37915)
  • Making the basePath API on the server consistent with the client is in review (#38237)

Kibana Clustering

To met with the Code team this week to go over the in-progress proxy implementation (#36907). We’re on the same page and got some good feedback on a few more necessary asks for the initial beta release in 7.3.

Next week, we’re meeting with the Security team to review authorization, authentication, TLS and PKI protection for this new HTTP port. We want to explore getting as close to Elasticsearch’s security model for cluster access while making it a smooth experience for plugin developers wanting to use Kibana Clustering.


During the course of the week we continued our efforts on updating our dependencies merging and auditing the continuous PRs automatically created by renovate. A lot of those are still expected in the next week. We have also merged a patched version of the relative cache loader which has now fixed the windows development bugs introduced when we merged it the first time. Worth it to mention that we also shipped to useful scripts for developers: one to merge the base branch into the prs (which is a super common operation) with a simple script call and the other to generate the renovate config which will make it easier to others update the renovate config. We are now also using babel 7 to compile x-pack as we replaced the typescript compiler by the babel compiler in the @kbn/plugin-helpers package


  • Declare @kbn/babel-preset as peerDependency for @kbn/plugin-helpers #37710
  • [dev/license_checker][dev/npm] reactor, ts-ify, de-grunt #37807
  • [dev/failed_tests] try to ignore irrelevant failures #37902
  • [scripts/update_prs] implement script to merge base branch into prs #38302
  • [jest] don't be crazy, run with caching enabled #38332
  • Implement renovate config generator #38369
  • Fix typo in failure filtering #38374
  • Relative cache loader #36131

Geo-Maps App


Geo-Elastic Maps Service

  • Updated EMS landing page with themed tiles
  • Updated Dark theme tiles to better align with Kibana dark theming

App Architecture

EmbeddableAPI branch was merged and we are now ready to move dashboard over to the new embeddable API. Dashboard code was typescripted as well.

More interpreter types are being moved from canvas to OSS and error handling was added to expression runner.

Migration to new platform is moving as planned, a lot of angular was removed and our plan on how to migrate is close to ready.

Kibana App (Visulizations, Sharing, Discover, Reporting)

Lens (New visual editor)

Began integrating our work this week, getting our first configurable chart with real data:

This screenshot is not based on the feature branch yet, but it shows that our individual work is adding up to something larger.

This week we:

Elastic Charts


Using KQL with the autocomplete it offers makes it easier to create a query for a visualization without the need to remember the exact field name and it assists with operators and values.

KQL has been added to the Visual Builder using components that update as a query is entered (having immediate effect on the visualization rendered) with the option of using Kuery syntax with autocomplete or Lucene syntax (defaulting to the syntax set in the Kibana advanced settings).

Previously saved visualizations are migrated to accommodate the change. We assume that if the query language is not present, it is Lucene syntax.

Design + Docs

Kibana now has EUI 11.0.1 (The icons one!), and EUI 11.3.1 (The color picker one!) is merging soon

You can now utilize custom icons on Kibana using EUI. This helps us so that we no longer need to package the entirety of the Internet’s logos in EUI directly and gives you flexibility when you might need something custom for you application. Please read the docs to learn how this works.

Data grids

We are still very very early into our work on data grids. Right now we’re finishing up a feature spec for the component and doing some very rough proof of concepts for the rendering layer.

Check the demo showing how we might handle resizing rows and columns.

And then another demo showing how we might utilize React hooks for subscribing to updates for the style and content of the cells.

Compressed panels experiments

One comment we’ve head as we build more and more complicated “panel editors” (think the right side of Canvas and Maps) is that the forms we use for EUI are a little too beefy when jammed into those sidebars. We’ve started some initial experiments trying to compress them down. Likely these won’t involve too many new formal components but more a guideline for how to create slimmer forms utilizing our popover and label append / prepend mechanics. Here’s a screen to show how some of this might be done in the Maps application.

Starting to think about embeds

This is a week of taking stabs at early concepts. We’re doing some thinking about app to app embeds and how we can make generic systems (like a button that leads to a flyout) that allows one app to pull saved objects from another.


Cloud Testing

Visual Testing


  • Team continues to test 7.2.0 Release Build candidates.

Stack Services


This week good progress has been made on creating a basic alerting plugin, we are finalizing testing before the PR is good to merge (#37043). There are some final adjustments on error handling and validation to be made next week.


  • Some “behind-the-scenes” work on Scheduled reports … stay tuned!
  • CSV’s with special characters now show a special warning in Kibana as they’re a method of attack injection.
  • More work and docs forthcoming for SDH/Support issues. We’ve noticed an uptick in incoming SDH issues that are reporting based (largely due to the new version of Chromium that we’ve bundled).>html here
  • We're hiring

    Work for a global, distributed team where finding someone like you is just a Zoom meeting away. Flexible work with impact? Development opportunities from the start?