Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow "locking" of dashboards/visualization/searches #1610

Closed
Vineeth-Mohan opened this issue Oct 9, 2014 · 149 comments
Closed

Allow "locking" of dashboards/visualization/searches #1610

Vineeth-Mohan opened this issue Oct 9, 2014 · 149 comments
Labels

Comments

@Vineeth-Mohan
Copy link

After creating a dashboard , i want to publish a dashboard link which don't have an configuration options but just the dashboard , its visualization and ability to do queries. This would be greatly useful to make dashboard and provide the link to end user who wants only to use and query the existing visualizations but dont want to edit them or add new visualization.

@rashidkpc rashidkpc changed the title Ability to publish dashboards with no configuration capability. Allow "locking" of dashboards Oct 9, 2014
@rashidkpc
Copy link
Contributor

Thanks, this is something we have planned for the future, though haven't had a chance to figure out where it fits on the roadmap just yet.

@sqpdln
Copy link

sqpdln commented Feb 10, 2015

Could it be possible to have a Shield-config to provide a read-only-state on the .kibana-index for some users? I tried with different subsets of the default kibana4 shield config, but haven't succeeded.

@w33ble
Copy link
Contributor

w33ble commented Mar 14, 2015

Also related to this are #3046 and #2503

@w33ble w33ble added the discuss label Mar 14, 2015
@cedosw
Copy link

cedosw commented Mar 19, 2015

Still looking forward to this. I really put a lot of work into my dashboards, so I obviously want to share them with other people but dont want anything to be changeable. Is this already in work or are there any workarounds maybe? Would appreciate some help.

@radiumx3
Copy link

👍 Looking for this as well

@xavierromero
Copy link

I'm also very interested on this. I would add an "extra" feature: ability to share a FILTERED dashboard so that the end user can't edit/see the filter.
Right now I can share the filtered dashboard but the user can see and remove the filter.

Best regards,
Xavier Romero.

@crudbug
Copy link

crudbug commented Apr 15, 2015

@xavierromero You are right on the money.

"Sharing the State of a Dashboard/Visualization" is the most generic solution.

@peterhawkins
Copy link

Looking for this also. May have to resort to a custom proxy to strip out the header... You definitely have 2 distinct classes of user, dashboard designers and chart ooglers.

@immunochomik
Copy link

I do need that +1

@srijiths
Copy link

srijiths commented May 6, 2015

This would be a useful feature +1

@lhorsky
Copy link

lhorsky commented May 6, 2015

This is definitely needed!

@random1223
Copy link

+1

@cburkins
Copy link

Anxious to use Kibana with a large group, but worried about having to maintain the dashboard. Would love a way to create a read-only dashboard/link

@ni-ka
Copy link

ni-ka commented Jun 17, 2015

+1 same requirement for our project

@andreoid
Copy link

+1 here too. I want to share my dashboards with a non-technical audience!

@yehosef
Copy link

yehosef commented Jul 1, 2015

+1

2 similar comments
@JAGAxIMO
Copy link

JAGAxIMO commented Jul 1, 2015

+1

@shadowcodex
Copy link

+1

@ssoto
Copy link

ssoto commented Jul 8, 2015

👍 here. It is annoying when clic and charts move and resize. Nice job!

@aldanor
Copy link

aldanor commented Jul 18, 2015

+1!

@sayakb
Copy link

sayakb commented Jul 20, 2015

+1

@Tomato-
Copy link

Tomato- commented Jul 29, 2015

+10086

@giri786
Copy link

giri786 commented Dec 6, 2016

+1

@awashbrook
Copy link

+1 Read-only dashboards are a key feature of my bespoke angular dashboard solution right now, we are are looking to migrate to Elastic 5, this will be a blocker for us.

@cjfpainter
Copy link

+1

@godson2006
Copy link

run this curl command to lock kibana (Dashboards, visualizations, discovery, soup to nuts)
curl -i -X PUT http://$ELASTIC_HOSTNAME:9200/.kibana/_settings -d "cat /app/platform/elasticsearch/index/lockKibanaIndex.json"

lockKibanaIndex.json
{ "index":{ "blocks":{"read_only":true}}}

Tested with Kibana 4.6.0, will not work with Kibana 5.1.1 which i just found out :). Shield is buggy in my opinion, although I last used it with Kibana 4+

@spalger spalger removed the discuss label Jan 2, 2017
@tullydwyer
Copy link

+1

1 similar comment
@obudiman
Copy link

+1

@korczis
Copy link

korczis commented Jan 28, 2017

Is there any plan to implement this feature?

@stacey-gammon
Copy link
Contributor

This is definitely on our radar. As a first step we are working on implementing View and Edit modes. Once that is complete we are going to further investigate these use cases and possible solutions.

@kokojumbo
Copy link

kokojumbo commented Jan 31, 2017

+1
Are there any workarounds with usage of nginx proxy for kibana 5?

@olivierlambert
Copy link

@kokojumbo IIRC, you can use a dedicated URL that filter all POST request, therefore it will be in read only. Use another URL with a passwd (for example) with all request allowed for R/W.

@kokojumbo
Copy link

Filtering POST requests doesn't help. Then it blocks POST requests to /elasticsearch which are necessary to show visualizations.

@kokojumbo
Copy link

kokojumbo commented Feb 1, 2017

I found a workaround using nginx. It blocks savings and edits, but still public users can access the kibana panel. This solution provides read-only proxy.

Nginx configuration proxy
Blocking POST requests to elasticsearch except search and get (kibana uses POST request in js to show charts)

server {

    listen 80;
    server_name localhost;

        location ~ (/elasticsearch/.kibana/index-pattern/_search|/elasticsearch/_mget|/elasticsearch/.kibana/_mapping|/elasticsearch/_msearch)  {
		proxy_pass http://kibana:5601;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
		proxy_set_header Host $host;
		rewrite /(.*)$ /$1 break;
	}
	location ~ (/elasticsearch/)  {
		return 405;
    	}
	location ~ (|/app/kibana|/bundles/|/status|/plugins|)  {
		if ( $request_method !~ ^(GET)$ ) {
			return 405;
		}
		proxy_pass http://kibana:5601;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
		proxy_set_header Host $host;
		rewrite /(.*)$ /$1 break;
	}
}

Nevertheless, I hope you provide this feature in the near future.

@olivierlambert
Copy link

Thanks for the workaround @kokojumbo !

@DPPWurd
Copy link

DPPWurd commented Jul 31, 2017

Nice solution by @kokojumbo, thought I did end up putting in a few more allowed routes to get everything in Dashboard working. Would really like to see this feature properly implemented, additionally with security options around which users would be allowed to see which report etc.

@doprdele
Copy link

Is this supposed to be in 6.0?

@stacey-gammon
Copy link
Contributor

We've introduced "Dashboard only mode" in 6.0, available in x-pack (it relies on security features). You can read more about it here. You can also play around with it in the 6.0.0-beta1 preview release. Note however that those docs will be changing very shortly, as will the set up portion, in 6.0.0-beta2.

x-pack security already comes with the ability to set up read only users, this new feature just improves the UI that certain users with limited credentials see.

We also want to improve embedded options, such as allowing the search bar to appear in embed mode, so if your goal is to hide all of the chrome, but expose some additional features that aren't available in embed mode today, that will hopefully help.

@doprdele
Copy link

@stacey-gammon However, the kibana_user role right now in X-Pack is allowed to delete all the index mappings and the kibana.* index, will that fix this? Users aren't able to perform searches without at least the kibana_user role

@stacey-gammon
Copy link
Contributor

You shouldn't need the kibana_user role to perform searches. If you want to set up a read only user, you just need to create a new role and give it permissions on your .kibana index, along with the privileges read and view_index_metadata. Something like this:

screen shot 2017-08-23 at 11 35 35 am

Then assign that to your user, and they will be able to log in to Kibana and perform searches. You should also give your user access to the data indices as well, or nothing will turn up.

Let me know if that helps.

@ThomasFlanaghan
Copy link

The link you posted for the details of the dashboard only mode no longer exists. Is this still coming in 6.0? I saw it mentioned in the keeping up with kibana blog posts a couple of months ago.

@stacey-gammon
Copy link
Contributor

yep @ThomasFlanaghan, we just changed the implementation and docs a bit in 6.0-beta2. The new docs are here: https://www.elastic.co/guide/en/kibana/6.0/xpack-dashboard-only-mode.html

Let me know if you have any questions or run into any issues.

@danieljsc
Copy link

+1
Think it would be great having a share link/token where end-user could only see the dashboard without having access to another kibana areas/configuration. embed=true is a nice workaround in the URL, but is not secure as anyone who inspects the code can remove it.

@Idanatcox
Copy link

Hi @kokojumbo I've tried to set up the workaround you proposed on Kibana 5.5.1 and Kibana is trying to do a POST request to es_admin/.kibana/index-pattern/_search?stored_fields= which returns 405 (Not Allowed)
Any idea what could be the cause?
what version of Kibana your workaround works no?
Thanks!

@JohannesHartmanTR
Copy link

JohannesHartmanTR commented Oct 25, 2017

In cases where you have many regional ES-clusters where each is multi-tenant in nature, it would be cumbersome to grant roles to users. The option of having Kibana add a last_modified_timestamp property to any saved UI objects (visualizations, dashboards, searches etc.) that could be inspected to determine whether any changes were performed (and if so, reload them from the source repo) seems like a fairly low-effort implementation effort that could be used to control any configuration drift without the user-management overhead.

Would it be possible to add such a property (last_modifed_timestamp)? [Amendment: like in #9377]

@TheExploringDev
Copy link

+1.

Also, maybe a better Dashboard UI with lesser empty spaces would do wonders :)

@stacey-gammon
Copy link
Contributor

Closing in favor of #18473. This will be handled in one form or another with granular RBAC to all saved objects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests