Skip to content

Drilldowns 7.7 tech debt #60254

@streamich

Description

@streamich

Technical debt that we accumulated during 7.7 drilldown development, which we should consider addressing before doing any further drilldown work:

  • Make React component receive DynamicActionStorage instead of DynamicActionManager?
  • Show dot instead of number of drilldowns in panel top-right corner in "edit" mode. Agreed to keep number.
  • Discuss how to filter out drilldowns only to ones that need to be displayed. Use places: ['dashboard'] in Dashboard-to-Dashboard drilldown.
  • Add React Error boundary support to UiComponent. Use it in drilldowns.
  • Create /containers folder.
  • Use .dynamicActions.state in drilldown components for subscribing to state.
  • Add JSDocs to all public interfaces.
  • Add ability to attach action to multiple triggers in the API.
  • Show "dot" icon in success toast.
  • Add ownFocus option to Core flyout.
  • Show DynamicActionManager errors in UI.

Discussed topics:

  • How/can drilldown implementations set their own isCompatible functions.
    • Will address in future.
  • How/can we conditionally display certain action factories depending on the "place" the drilldown management is being rendered:
    • do we actually need this functionality now?
    • if so, who should be in charge of what is displayed, the environment or the drilldown implementor?
  • Creating a commercial factory override and moving factories, dynamic action code to ui_actions_enhanced.
    • Preliminary plan:
      • Before: Stacey's EnhancedEmbeddable PR.
      • Then: move dynamic action manager.
      • Move actions factories.
  • need to add another trigger to embeddable panels to allow plugins to add clickable icons to the right side of the panel header.
  • Do we need two ways to create action factories, aka drilldowns. What is the difference? When should one be used and not the other?
    • Proceed with registerDrilldown, revisit API once creating example plugin.
  • How soon/do we need to implement attaching to other triggers? What is the priority? How will APM and ML use this feature?
  • Where should flyout opener actions live?
    • Move to embeddable_enhanced in 7.8.

Needs discussion:

  • Discuss useStateContainer generic.
  • Make ActionInternal to be Action.
  • In Dashboard app to navigate back one needs to click back button multiple times.
  • Sync on embeddable context interfaces with Lens. Schedule work for cleaning it up.
    • Remove or require context.embeddable, context.timeFieldName, context.data.e?
    • Should we standartize context.data.{data,range}?
    • Add correct types for context.data.{data,range}.
    • Not use context.embeddable. No other way to access query?
  • Find better way to extract filter from embeddable - Create dashboard drilldown - select dashboard via filtering combo box and navigate to dashboarrd #60087
  • Better way to express "go to xyz dashboard with its default time range"

Parent issue: #42845

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions