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

Disable Advanced Settings for serverless #159590

Closed
3 tasks done
alisonelizabeth opened this issue Jun 13, 2023 · 5 comments
Closed
3 tasks done

Disable Advanced Settings for serverless #159590

alisonelizabeth opened this issue Jun 13, 2023 · 5 comments
Assignees
Labels
Project:Serverless MVP Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more

Comments

@alisonelizabeth
Copy link
Contributor

alisonelizabeth commented Jun 13, 2023

Follow up to #157756.

We need to disable Advanced Settings for all project types in serverless.

@alisonelizabeth alisonelizabeth added the Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more label Jun 13, 2023
@elasticmachine
Copy link
Contributor

Pinging @elastic/platform-deployment-management (Team:Deployment Management)

@ElenaStoeva
Copy link
Contributor

Just to summarise what we discussed about this in the Deployment management team meeting:

We decided to disable the Advanced settings plugin and this will only disable the UI/the app in Stack Management. The routes to change/get the settings will still be available because they are registered in the core UI setting. Therefore, we will make these routes internal with the new config option added with #152404.

@pgayvallet
Copy link
Contributor

@alisonelizabeth

Just saw #159819 so I figured I would ask my question in this issue instead:

I feel like fully disabling the plugin and making the associated core routes internal may be slightly brutal? Disabling user access to some settings on serverless definitely makes sense to me, but I'm not sure about all of them?

Just to make sure, did we check with teams and solutions that they were fine with this and weren't expecting to let users edit at least some of their uiSettings in our managed environment?

@alisonelizabeth
Copy link
Contributor Author

Hi @pgayvallet! I'll share some background on this via Slack.

@alisonelizabeth
Copy link
Contributor Author

Summary: The current decision is to disable the existing Advanced Settings page, with the understanding that we plan to bring advanced settings back in some form for serverless. However, we will essentially start with a clean slate, i.e., there may be some settings we bring back or new settings specific for serverless. The requirements for what settings we do want to expose on the new page is still TBD.

ElenaStoeva added a commit that referenced this issue Jun 22, 2023
Partially addresses #159590

## Summary

This PR disables the Advanced settings plugin for all projects in
serverless.

**How to test:**

1. Start Elasticsearch with `yarn es snapshot` and Kibana with `yarn
serverless-{mode}` where {mode} can be `es`, `security`, or `oblt`.
2. Verify that the Advanced settings app is not accessible and its
endpoint (`app/management/kibana/settings`) leads to the Stack
Management landing page.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
ElenaStoeva added a commit that referenced this issue Jul 14, 2023
…in self-managed only (#160499)

Partially addresses #159590

## Summary

This PR adds an an internal uiSettings API that is a duplicate of the
public API and is intended for use by the browser-side uiSettings
client.

The PR also adds a config settings that is configured in serverless
context only and exposes the public uiSettings routes based on the value
of this setting (it defaults to false since we don't want to expose the
public routes in serverless).

**How to test:**

I. Verify that in serverless the internal routes are exposed but the
public ones aren't:
1. Start Es with `yarn es snapshot` and Kibana with `yarn
serverless-{mode}` where `{mode}` can be `es`, `oblt`, or `security`
(the public routes should be disabled for all projects).
2. Verify that the public endpoints are not accessible. For example,
`curl --user elastic:changeme
'http://localhost:5601/zhb/api/kibana/settings' -X 'GET'` should return
`{"statusCode":404,"error":"Not Found","message":"Not Found"}`.
3. Verify that the internal endpoints are accessible. For example, `curl
--user elastic:changeme
'http://localhost:5601/zhb/internal/kibana/settings' -X 'GET'` should
return
`{"settings":{"buildNum":{"userValue":9007199254740991},"isDefaultIndexMigrated":{"userValue":true},"defaultRoute":{"isOverridden":true,"userValue":"/app/elasticsearch"}}}`


II. Verify that the both public and internal routes are exposed in
self-managed:
1. Start Es with `yarn es snapshot` and Kibana with `yarn start`
2. Verify that the public endpoints are accessible. For example, `curl
--user elastic:changeme 'http://localhost:5601/zhb/api/kibana/settings'
-X 'GET'` should return
`{"settings":{"buildNum":{"userValue":9007199254740991},"isDefaultIndexMigrated":{"userValue":true}}}`
3. Verify that the internal endpoints are accessible. For example, `curl
--user elastic:changeme
'http://localhost:5601/zhb/internal/kibana/settings' -X 'GET'` should
return
`{"settings":{"buildNum":{"userValue":9007199254740991},"isDefaultIndexMigrated":{"userValue":true}}}`

III. Verify that the plugins/services that consume the internal
uiSettings endpoints work as expected in both self-managed and
serverless environment.

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Project:Serverless MVP Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more
Projects
None yet
Development

No branches or pull requests

5 participants