Building applications (Plugins) Inside Kibana (Dev process & best practices)

Hello Guys,

Can you share your experiences regarding creation of custom applications (plugins) inside Kibana ?

Many existing known plugins are most of them not updated and not working with new versions of Kibana (starting version 5.2 i guess where majors changes happened).

I wan reading some guidlines on github for the new kibana platform, and i guess things has been changed and now there are some interfaces & new ways of creating plugins with minimum breaking changes especially when upgrading the stack from version to new one.

@fbaligand has been maintaining the enhanced-table plugin and is doing great job to port it the the latest Kibana version (7.2), if he can share his experince with the new kibana plateform process and how that can be used as a great tool to develop & maintain new apps inside kibana ?

@dadoonet @Court @timroes @fbaligand can you please share with the community the best prcatcices for that and some advice on how to add sucessfull apps to Kiabana ?

Thanks to everybody for sharing ideas

Hi! There's no "inside" :slight_smile: Kibana is open source as in, there are no secrets about the code.

I write Kibana plugins sometimes as a developer to manually test modules that have no UI. The most reliable way is to use the plugin generator: https://github.com/elastic/kibana/blob/083ed43/packages/kbn-plugin-generator/README.md

The biggest advice I find myself repeating: always develop against master. Often, devs tell themselves they won't be able to actually run their code against master for their job / task / short-term goals. They say, "my company uses Kibana 6.x, so I have to check the 6.x branch out of the Kibana repo and work on this plugin." But not working off master puts you in the past in terms of the development tools you need, which is bad for your mental health.

When your code is ready to deliver for your job / task / goal, use the yarn build command, and that will prompt to you answer which version you need the plugin built for.

Thanks Tim for your answer.

Hi,

I didn’t migrate enhanced table plugin yet to new Kibana platform.
So I can’t really give you feedback about that.

As Tim say, using the plugin generator is a good start.
Then, I advice you to develop your plugin in React; as Angular is, piece by piece, abandoned by Kibana team.
Then, despite you use the new platform, be prepared to have to regularly have breaking changes in Kibana that require that your plugin code must be changed.
Personally, I create a branch per Kibana minor version where I have breaking changes to do.
For each minor version, Kibana team publishes a blog post explaining the major Kibana changes, that is helpful to know what to change.
Then, you have to generate a package for each Kibana version (patch included). This is a Kibana requirement, as Kibana code changes a lot.

Contrary to Tim, I don’t advice you to use master version, but the Kibana minor version branch you target.
I say that because of breaking changes for each minor version.
This is what I do.

Here were my tips :slight_smile:

Thanks Fabien for the update

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.