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.
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.
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:
Normally, when there are no logs in the configured indices, the experience would look like this:
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?
Change the hard-coded message that is used when the user has been determined to not have access to Fleet
Allow noDataConfig to specify a message for this scenario
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.
Details
When using the shared
KibanaPageTemplate
and its associated components, there is a flow for providing so-callednoDataConfig
to tell the page template that no data has been found. Here is an example of this in the Logs app inside of theinfra
plugin.When that
noDataConfig
prop is present (i.e. NOTundefined
), it triggers a NoDataPage component in the shared UX world.The
NoDataPage
uses a component called theActionCard
(link), which appears to be an abstraction around theNoDataCard
(link). TheNoDataCard
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:
Normally, when there are no logs in the configured indices, the experience would look like this:
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?
noDataConfig
to specify a message for this scenario