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

[Shared UX] No data card messaging is confusing #151903

Closed
jasonrhodes opened this issue Feb 22, 2023 · 2 comments
Closed

[Shared UX] No data card messaging is confusing #151903

jasonrhodes opened this issue Feb 22, 2023 · 2 comments
Assignees
Labels
bug Fixes for quality problems that affect the customer experience good first issue low hanging fruit papercut Small "burr" in the product that we should fix. Team:SharedUX Team label for AppEx-SharedUX (formerly Global Experience)

Comments

@jasonrhodes
Copy link
Member

Summary

When there is "no data" in a solution UI and (a) Fleet is disabled, or (b) the currently logged in user/space/role doesn't have permission to access Fleet, the resulting messaging makes it seem like the solution is disabled, when the message intends to say that Fleet/integations UI are not available.

Screenshot 2023-02-22 at 9 54 44 AM

Details

When using the shared KibanaPageTemplate and its associated components, there is a flow for providing so-called noDataConfig to tell the page template that no data has been found. Here is an example of this in the Logs app inside of the infra plugin.

const noDataConfig: NoDataConfig | undefined = hasData
  ? undefined
  : {
      solution: i18n.translate('xpack.infra.logs.noDataConfig.solutionName', {
        defaultMessage: 'Observability',
      }),
      action: {
        beats: {
          title: i18n.translate('xpack.infra.logs.noDataConfig.beatsCard.title', {
            defaultMessage: 'Add a logging integration',
          }),
          description: i18n.translate('xpack.infra.logs.noDataConfig.beatsCard.description', {
            defaultMessage:
              'Use the Elastic Agent or Beats to send logs to Elasticsearch. We make it easy with integrations for many popular systems and apps.',
          }),
          href: basePath + `/app/integrations/browse`,
        },
      },
      docsLink: docLinks.links.observability.guide,
    };

return (
  <PageTemplate
    data-test-subj={hasData ? _dataTestSubj : 'noDataPage'}
    noDataConfig={noDataConfig}
    isPageDataLoaded={isDataLoading === false}
    {...pageTemplateProps}
  />
);

When that noDataConfig prop is present (i.e. NOT undefined), it triggers a NoDataPage component in the shared UX world.

  1. https://github.com/elastic/kibana/blob/main/packages/shared-ux/page/kibana_template/impl/src/page_template.tsx#L30-L39
  2. https://github.com/elastic/kibana/blob/main/packages/shared-ux/page/no_data_config/impl/src/no_data_config_page.tsx#L56
  3. https://github.com/elastic/kibana/blob/main/packages/shared-ux/page/no_data_config/impl/src/no_data_config_page.tsx#L56

The NoDataPage uses a component called the ActionCard (link), which appears to be an abstraction around the NoDataCard (link). The NoDataCard component checks if the current user has access to Fleet (including whether Fleet is enabled at all) and, if not, defaults to a hard-coded "No permission description" which says "This integration is not yet enabled. Your administrator has the required permissions to turn it on."

What all of this means is that in a case where Fleet is disabled or the currently logged in user/role/space doesn't have access to Fleet, navigating to an observability page such as the Logs UI when there are no logs data in the configured indices, the experience looks like this:

Screenshot 2023-02-22 at 9 54 44 AM

Normally, when there are no logs in the configured indices, the experience would look like this:

Screenshot 2023-02-22 at 9 58 00 AM

The wording is confusing because "This integration is not yet enabled" sounds as though the Logs UI is not yet enabled, which isn't true. In addition, for a user who doesn't intend to use Fleet/Integrations or where Fleet is unavailable, this message is inaccurate.

Potential fixes?

  1. Change the hard-coded message that is used when the user has been determined to not have access to Fleet
  2. Allow noDataConfig to specify a message for this scenario
@jasonrhodes jasonrhodes added bug Fixes for quality problems that affect the customer experience Team:SharedUX Team label for AppEx-SharedUX (formerly Global Experience) labels Feb 22, 2023
@elasticmachine
Copy link
Contributor

Pinging @elastic/appex-sharedux (Team:SharedUX)

@petrklapka petrklapka added the good first issue low hanging fruit label Oct 10, 2024
@petrklapka petrklapka added the papercut Small "burr" in the product that we should fix. label Oct 17, 2024
@paulinashakirova paulinashakirova self-assigned this Oct 19, 2024
@paulinashakirova
Copy link
Contributor

I would like to close this issue, because since the ticket opening the UI has changed, and the described issue is no longer reproducible.

Right now the user with minimal permissions will be seeing this UI, which corresponds to the screenshot for a normal behavior in the original issue description.

Image

And if the user clicks on the "Add a logging integration" and chooses the desired option, they will see this

Image

@paulinashakirova paulinashakirova closed this as not planned Won't fix, can't repro, duplicate, stale Oct 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Fixes for quality problems that affect the customer experience good first issue low hanging fruit papercut Small "burr" in the product that we should fix. Team:SharedUX Team label for AppEx-SharedUX (formerly Global Experience)
Projects
None yet
Development

No branches or pull requests

5 participants