How to add action buttons to a Kibana DashBoard table?

Hello everyone,

I currently have a Kibana ( 8.3.3 ) DashBoard that uses data from Elastic Search ( Data View ).
In this DashBoard I have a table that shows flows, the number of messages sent through each flow etc.

I would like to add to this table a multi row selection, that would allow me to select some rows if I want to, and ( 3 ) buttons on the top of the table that would send a JSON payload to an endpoint of my API to replay those flows ( this endpoint is done and will update by itself the data to Elastic ).

Moreover these buttons should send a special JSON payload for each selected row ( and the information that's needed to create the JSON payload is in the table, like the ID of the flow )

It is to be noted that the table should still act as a normal table and I should be able to sort etc.

To acheive this I thought about multiple solutions and need new ideas from your part and / or your opinion ( on feasibility ) for the other solutions.

  1. Using VEGA Kibana, recreate from scratch the "table" from Kibana DashBoard and add buttons and multiple rows selection.
    This solution has a feasibility issue since I couldn't wrap my head around a way to execute code or script from inside VEGA and I would need to recreate my data view using Elastic language.

  2. Add 3 columns per row in order to add embedded URL
    This solution has a problem with the mutliselection and I'm not sure I'll be able to change the url for each row automatically.

  3. Create a Chrome Extension to modify the DOM of the Kibana Page.
    Issues with versionning and feasibility

  4. SPA with embedded Kibana dashboard into it
    Issue with cross filtering and dashboard update

  5. Custom plugin in Kibana like Enhanced Table but with buttons

This is all I could think about and I'm heager to hear from your advices !!

Thanks again.

@Hannah_Mudge @devon.thomson any inputs here? or a feature request?


My instinct says that option 2 is probably the easiest + quickest by using runtime fields - but as mentioned, this would not support any sort of multi-select. The next best option would be number 5, but this would definitely be a pretty large undertaking.

There are a number of security concerns with allowing users to call third party APIs from within Kibana, so I don't see this being implemented on a larger scale.


Thanks for your answer and opinion on the option 2 and 5.

Do you have any input on the feasibility for the other solutions ? Or simply other ideas, that could work ?

Thanks again for your time.

The only option I'm unsure about is number 1 - it may be possible, but I'm not a Vega expert so I can't really confirm :slight_smile: 2, 3, 4, and 5 all seem feasible to me, with the recommendations of 2 or 5 I gave in my comments. I think all of the caveats + considerations you mentioned are accurate IMO.

1 Like

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