Kibana User Roles, kibana_dashboard_only and Limit Spaces?

The kibana_dashboard_only_user from the permissions perspective gives the user read-only access to all of Kibana. To have Kibana hide all of the other applications besides the Dashboards app, the Kibana advanced setting: xpackDashboardMode:roles should be configured to list this role so that all other applications are hidden.

To create a new custom role which grants read-only access to a single space, you can use a cURL request similar to the following against the Kibana Role API

curl -H "kbn-xsrf:true" -H "content-type:application/json" -u elastic:changeme -X PUT http://localhost:5601/api/security/role/engineering_dashboard_only_mode -d '
{
  "kibana": {
    "space": {
      "engineering": ["read"]
    }
  }
}
'

Then, to configure dashboard only mode to be enabled for this role, you'll want to log into Kibana, select the Space which you're just granted access to, and go to Management -> Advanced Settings. On the advanced settings page, you'll want to change the xpackDashboardMode:roles setting to list your newly created role: