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

Interactive setup mode UI/UX #102538

Closed
azasypkin opened this issue Jun 17, 2021 · 1 comment · Fixed by #106881
Closed

Interactive setup mode UI/UX #102538

azasypkin opened this issue Jun 17, 2021 · 1 comment · Fixed by #106881
Assignees
Labels
Feature:New Feature New feature not correlating to an existing feature label impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. loe:small Small Level of Effort Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! v8.0.0

Comments

@azasypkin
Copy link
Member

azasypkin commented Jun 17, 2021

Interactive setup mode is the mode Kibana enters to on the first launch if it detects that user hasn't explicitly configured their own connection to Elasticsearch. In this mode, Kibana will present an interface to the user that would allow them to provide Elasticsearch connection information and potentially any other configuration information. Once the information is verified, Kibana will write it to the disk and allow the rest of Kibana to start.

This issue is solely dedicated to the UI/UX aspects of the interactive setup mode.

Not all requirements are clearly defined yet, and it will surely take several iterations before we get to the ideal UI/UX state. The goal is to start from the minimal functional UI which we can gradually improve.

Below is a brain dump of the requirements we're aware of to date and a very rough UI mockup:

106000839-2ca8d880-60a7-11eb-82c0-444b4b19ad14

The interactive setup mode UI (later just "UI") is basically a standalone application without Kibana chrome and other standard navigation elements. It proposes two separate flows to a user:

  • The first flow or enrollment flow is a recommended flow that allows user to enter a special enrollment token to automatically configure connection to the Elasticsearch
  • The second flow or manual configuration flow is a fallback that allows user to manually configure connection the Elasticsearch

Enrollment flow

In this flow user is prompted to enter a special enrollment token (long opaque string generated by the Elasticsearch node, named as magic string at the mockup above). Kibana validates and parses this token, and displays some of the extracted information in the UI:

  • The read-only list of the Elasticsearch IP addresses Kibana can try to connect to

Once enrollment token is validated, user can click on the Connect to cluster button to trigger Kibana automatic configuration. Under the hood Kibana tries to connect to Elasticsearch, calls a number of enrollment APIs, stores configuration information to the disk. This process can take some time and once it's complete user is automatically redirected to a home page (or originally requested URL).

Before we finally redirect user to a fully functional Kibana we might want to display some of the configuration information that user, for example, can copy and use to automatically configure other Kibana instances without going through setup UI again.

Manual configuration flow

In this flow user is prompted to enter the following information:

  • Elasticsearch address (probably prefilled with `https://localhost:9200)
  • A name and a password of the "service user" Kibana should use to connect to Elasticsearch
  • A certificate authority (CA) certificate chain for Elasticsearch (probably via uploading the necessary file(s)?)

Once all required fields are filled, user can click on the Connect to cluster button to let Kibana validate connection information and save it to the disk. This process can take some time and once it's complete user is automatically redirected to a home page (or originally requested URL).

Errors

There are a variety of things that can go wrong during any of the aforementioned flows: the enrollment token can be malformed, the Elasticsearch can have an incompatible version or be unavailable at the moment, Kibana process may lack permissions to store configuration information to the disk, etc.

For some of the failures we can offer recovery steps, for others we cannot. But in case we should try to make errors as much clear and actionable as possible.

Miscellaneous

If Kibana is properly configured, interactive setup mode won't be activated during next restart. But Kibana bootstrap can still take a considerable amount of time and we'd like to display a special Kibana server is not ready UI that we may or may not want to make somewhat visually similar to the interactive setup mode UI.

Related: #89287, #104068

@legrego @arisonl @ryankeairns @andreadelrio @MichaelMarcialis

@azasypkin azasypkin added Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! Feature:New Feature New feature not correlating to an existing feature label v8.0.0 labels Jun 17, 2021
@exalate-issue-sync exalate-issue-sync bot added impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:small Small Level of Effort impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. and removed impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. labels Aug 4, 2021
@andreadelrio
Copy link
Contributor

address_tooltip

The above and all related designs can be found here.

@exalate-issue-sync exalate-issue-sync bot added loe:medium Medium Level of Effort and removed loe:small Small Level of Effort labels Sep 28, 2021
@exalate-issue-sync exalate-issue-sync bot added loe:small Small Level of Effort and removed loe:medium Medium Level of Effort labels Nov 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:New Feature New feature not correlating to an existing feature label impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. loe:small Small Level of Effort Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! v8.0.0
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants