diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx index 9998589996b1c..54bf2df8d31fb 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/index.tsx @@ -49,6 +49,7 @@ import { useGetSettingsQuery, } from '../../../../hooks'; import { useAgentless } from '../../../../../fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/setup_technology'; +import { isOnlyAgentlessIntegration } from '../../../../../../../common/services/agentless_policy_helper'; import { INTEGRATIONS_ROUTING_PATHS } from '../../../../constants'; import { useGetPackageInfoByKeyQuery, useLink, useAgentPolicyContext } from '../../../../hooks'; import { ExperimentalFeaturesService, pkgKeyFromPackageInfo } from '../../../../services'; @@ -436,6 +437,11 @@ export function Detail() { integration ?? undefined ); + const isAgentlessByDefault = + agentlessStatus.isAgentless && + (isOnlyAgentlessIntegration(packageInfo ?? undefined, integration ?? undefined) || + agentlessStatus.isDefaultDeploymentMode); + const defaultNavigateOptions: InstallPkgRouteOptions = getInstallPkgRouteOptions({ agentPolicyId: agentPolicyIdFromContext, currentPath, @@ -445,7 +451,7 @@ export function Detail() { pkgkey, prerelease, isAgentlessIntegration: agentlessStatus.isAgentless, - isAgentlessDefault: agentlessStatus.isDefaultDeploymentMode, + isAgentlessByDefault, }); /** Users from Security and Observability Solution onboarding pages will have returnAppId and returnPath diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.test.ts b/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.test.ts index c05ab885ec564..cecfc1b875cb7 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.test.ts +++ b/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.test.ts @@ -222,7 +222,7 @@ describe('getInstallPkgRouteOptions', () => { expect(getInstallPkgRouteOptions(opts)[1]).toMatchObject(expectedOptions); }); - it('should not use multi-page layout if isAgentlessDefault is true', () => { + it('should not use multi-page layout if isAgentlessByDefault is true', () => { const opts = { currentPath: 'currentPath', integration: 'myintegration', @@ -230,7 +230,7 @@ describe('getInstallPkgRouteOptions', () => { isFirstTimeAgentUser: true, isCloud: true, isExperimentalAddIntegrationPageEnabled: true, - isAgentlessDefault: true, + isAgentlessByDefault: true, }; const expectedOptions = { diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.ts b/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.ts index 9286187cc8695..ff78397221255 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.ts +++ b/x-pack/platform/plugins/shared/fleet/public/applications/integrations/sections/epm/screens/detail/utils/get_install_route_options.ts @@ -30,7 +30,7 @@ interface GetInstallPkgRouteOptionsParams { isCloud: boolean; isFirstTimeAgentUser: boolean; isAgentlessIntegration?: boolean; - isAgentlessDefault?: boolean; + isAgentlessByDefault?: boolean; prerelease?: boolean; } @@ -53,13 +53,16 @@ export const getInstallPkgRouteOptions = ({ isFirstTimeAgentUser, isCloud, isAgentlessIntegration, - isAgentlessDefault, + isAgentlessByDefault, prerelease, }: GetInstallPkgRouteOptionsParams): InstallPkgRouteOptions => { const integrationOpts: { integration?: string } = integration ? { integration } : {}; const packageExemptFromStepsLayout = isPackageExemptFromStepsLayout(pkgkey); + // Multi-page layout leads with "Install Elastic Agent" — not applicable when + // agentless is the effective default for this integration (agentless-only or + // agentless marked as default). const useMultiPageLayout = - isCloud && isFirstTimeAgentUser && !packageExemptFromStepsLayout && !isAgentlessDefault; + isCloud && isFirstTimeAgentUser && !packageExemptFromStepsLayout && !isAgentlessByDefault; const path = pagePathGetters.add_integration_to_policy({ pkgkey, useMultiPageLayout,