08 June 2018

Keeping up with Kibana: This week in Kibana for June 4th, 2018

By Lee Drengenberg

Welcome to Keeping up with Kibana! This is a series of posts on new developments in the Kibana project and any related learning resources and events.


Job Openings in Kibana:


TypeScript Support Completed In Platform

By John Dorlus

In a previous blog post we announced the coming support of TypeScript to the Kibana stack. The first roll out is here. We have officially added TypeScript support to the Kibana platform! What does that mean and why should you care?

More Thoughtful JS Design

TypeScript changes the way you think as a JavaScript developer. For example, more thoughtful planning goes into writing classes and functions, and in designing an object’s shape.

You Can Create A Contract For The Data You Expect

For those familiar with programming languages like Java or C#, interfaces are a nice contract (or agreement) on what data for certain objects should look like. For an author of a plugin, this can be valuable if there are changes to Kibana's core that changes the way the data looks, you get a descriptive error informing you as to where the contract was violated.

interface Address {
    houseNumber: int;
    streetName: string;
    city: string;
    state: string;
    zip: string;
}

Should the zip code come back as a number instead of a string, you get a nice, descriptive error along the lines of:

src/hello.ts(2,5): error TS2322: Type 94040 is not assignable to type 'string'.

Server Side Developers Feel At Home

Ever want to create a Kibana plugin but find JavaScript a bit intimidating? TypeScript takes a definitive step toward blurring the lines between front-end and server side code by allowing for the static typing with many of the constructs you are already familiar with.

Our TypeScript Tooling Is Flexible

If a team prefers to use their own TypeScript tooling, they can continue doing so. Our implementation of support for TypeScript is flexible in that way. If they want to use our tooling, they can hook into that and enjoy consistency with the Kibana Platform.

Go ahead and get started developing your own plugin


Other News this Week

APIs

With the merge of the saved object API docs into 6.3, we now have the first formal REST APIs in Kibana documented for public use. The logstash config API and dashboard import API are not far behind.

RBAC:

The platform specific PRs that were separated out from RBAC Phase 1 have been merged, and we’re working on preparing the PR for RBAC Phase 1 after addressing the required filtering for finding without specifying a type.

Design:

EUI is now up to date with React 16.3. On the component front we made changes to EuiCard and EuiPanel to allow for horizontal layouts and proper badging.

PRs of note

Platform

  • Replace express with hapi in HTTP service implementation in anticipation of the initial merge of the new platform #18562
  • Add support for aliases to es_archiver #19350
  • Basic license no longer logs with “invalid date” expiry #19565
  • Saved object API documentation #19513

Sharing

  • Convert Dashboard save dialog to react/EUI 19531
  • Remove react-select from kibana 18876
  • Removed padding that accidentally was in 6.x but not master 19547
  • Updated reporting timestamps to be completed time if status is completed or failed  19551
  • Cleaned up context menu in view mode 19558
  • Accessibility fixes 19561

Visualizations

  • The new inspector PR is now up for review (#16387)
  • Remove react-select from kibana (#18876)
  • Update markdown-it to 8.4.1 (#19470)

Management

  • Disable watcher dirty prompt due to routing bug with recent fix for IE11 (#19595)
  • Fix bug where internal indices were not showing properly on index pattern creation (#19618)
  • Fixing console autocompletion so only endpoints that match HTTP verbs are shown
  • Fixing console autocompletion so strings starting with _ are not mistaken for strings (https://github.com/elastic/kibana/pull/19654)

GIS

  • Maintenance fixes
    • Tooltips on region maps now show correctly when joins mix integer and string fields #19447
    • Coordinate maps no longer cause shard failures when some documents do not contain geo_point fields #19416
  • Coding work on the new GIS app has started

Canvas

Canvas no longer duplicates uploaded assets


More EUI form treatment


  • Reporting integration continues, incomplete PDFs can be generated and it should be fully functional soon
  • SQL support is ready once 6.3.0 goes GA

Until next week,

Kibana Team