Can Kibana be used to power a public access data viz portal/platform?

I'm looking into the feasibility of setting up something as follows:

  • A website that hosts a self-service data visualisation library for presenting interesting datasets, and data, related to a specific field (sustainable finance).

On the backend, an admin user (me!) would provision the database connections.

On the frontend, there are one of two approaches I'm thinking about:

  • Totally open access: if this is even possible, an ephemeral GUI. Anyone on the internet can play around with the data (read only access on the backing database of course). But because this is acountless there's no way to preserve one's own tables etc for later work.

  • Option two is a kind of middle-ground solution. Users can create accounts. By default these are read only against the backing database. But they can come back and update their visualisations any time they please with the knowledge that they will be retained.

Can I use Kibana for either with reasonable ease?

I don't think Kibana's current content management capabilities fit your requirements. Some thoughts:

  • You can configure Kibana so an anonymous user can not only access existing dashboards and visualizations but also create new ones. But that also means anyone can edit or remove any dashboards/vizs in the shared space. The permission is not at dashboard level but for all of them.

  • The second option woud still allow any user to modify other users content, but at least you would be able to track their actions with the Kibana auditing (it's paid feature). There's a new feature in progress for the Dashboards listing to help on knowing the author of each dashboard.

  • In any case you would have to provide the data-views in advance since that is a stack management permission and you should only allow users to create visualizations and dashboards that will be based on those data views.

  • On the positive side, you could probably create some automation that clears the space on a schedule using the Saved Objects API, and maybe even maintain a set of "default" dashboards using Elastic Terraform Provider so after "clearing" the space you could restore any default entities (dashboards and visualizations).

Hope it helps