Skip to content

[Discover][Research] Extensible state management for Discover profiles research and issue breakdown #254681

@kertal

Description

@kertal

We need to do research to determine exactly which changes are needed for extensible state management for Discover profiles, and break down the individual issues for the work. This will give us a better idea of the overall effort, the order of tasks, and which changes are most crucial.

As cited in #242987

Background

Discover currently uses a standard set of interfaces for its state management, but Discover profiles require a more flexible and extensible system in order to customize the state for each experience. For example, the metrics profile needs to persist state such as the current dimension breakdown and value selections when switching between Discover tabs, sharing links, and as part of saved Discover sessions.

Goal

Introduce an extensible state management system allowing Discover profiles to define and manage the following custom state:

  • Ephemeral UI state which is restored when switching between initialized Discover tabs (e.g. input values, pagination, and scroll positions).
  • Application URL state which is restored after page refreshes, and when copy/pasting the current Discover URL (e.g. dropdown selections and view configs).
  • Internal application state which is persisted to local browser storage and restored after page refreshes, and when duplicating/restoring tabs (e.g. larger pieces of state that aren't appropriate for the URL, like chart configs).
  • Locator state allowing pieces of the application URL state and internal application state to be embedded in Discover locator URLs (e.g. links generated via the share button or using the locator within Kibana code).
  • Saved object state which is persisted to the Discover session saved object and restored whenever the session is opened (e.g. pieces of the application URL state and internal application state that need to be saved).

Metadata

Metadata

Assignees

Labels

Feature:DiscoverDiscover ApplicationProject:OneDiscoverEnrich Discover with contextual awarenessTeam:DataDiscoveryDiscover, search (data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL. t//impact:highAddressing this issue will have a high level of impact on the quality/strength of our product.loe:mediumMedium Level of Effort
No fields configured for Discovery.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions