[9.0] [Search] Remove website search guided onboarding (#224538) (#224665)

# Backport

This will backport the following commits from `main` to `9.0`:
- [[Search] Remove website search guided onboarding
(#224538)](https://github.com/elastic/kibana/pull/224538)

<!--- Backport version: 10.0.1 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Sander
Philipse","email":"94373878+sphilipse@users.noreply.github.com"},"sourceCommit":{"committedDate":"2025-06-19T17:34:32Z","message":"[Search]
Remove website search guided onboarding (#224538)\n\n## Summary\n\nThis
removes the deprecated website search guided onboarding from\nKibana.
Deprecated because we no longer offer a managed web
crawler.\n\n---------\n\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"9171743e8368a47503cf5892a8b7e47d35b42319","branchLabelMapping":{"^v9.1.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Search","backport:prev-minor","v9.1.0","v9.0.1"],"title":"[Search]
Remove website search guided
onboarding","number":224538,"url":"https://github.com/elastic/kibana/pull/224538","mergeCommit":{"message":"[Search]
Remove website search guided onboarding (#224538)\n\n## Summary\n\nThis
removes the deprecated website search guided onboarding from\nKibana.
Deprecated because we no longer offer a managed web
crawler.\n\n---------\n\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"9171743e8368a47503cf5892a8b7e47d35b42319"}},"sourceBranch":"main","suggestedTargetBranches":["9.0"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/224538","number":224538,"mergeCommit":{"message":"[Search]
Remove website search guided onboarding (#224538)\n\n## Summary\n\nThis
removes the deprecated website search guided onboarding from\nKibana.
Deprecated because we no longer offer a managed web
crawler.\n\n---------\n\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"9171743e8368a47503cf5892a8b7e47d35b42319"}},{"branch":"9.0","label":"v9.0.1","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Sander Philipse 2025-06-20 15:07:25 +02:00 committed by GitHub
parent fcc2006167
commit 2ba56a55a4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 7 additions and 110 deletions

View file

@ -36,13 +36,7 @@ interface MainProps {
notifications: CoreStart['notifications']; notifications: CoreStart['notifications'];
} }
const exampleGuideIds: GuideId[] = [ const exampleGuideIds: GuideId[] = ['databaseSearch', 'siem', 'kubernetes', 'testGuide'];
'websiteSearch',
'databaseSearch',
'siem',
'kubernetes',
'testGuide',
];
const selectOptions: EuiSelectOption[] = exampleGuideIds.map((guideId) => ({ const selectOptions: EuiSelectOption[] = exampleGuideIds.map((guideId) => ({
value: guideId, value: guideId,
text: guideId, text: guideId,

View file

@ -93,30 +93,6 @@ exports[`guide cards snapshots should render all cards 1`] = `
size="m" size="m"
/> />
</EuiFlexItem> </EuiFlexItem>
<EuiFlexItem
grow={false}
key="3"
>
<GuideCard
activateGuide={[MockFunction]}
activeFilter="all"
card={
Object {
"guideId": "websiteSearch",
"icon": "search",
"order": 13,
"solution": "search",
"telemetryId": "onboarding--search--website",
"title": "Add search to my website",
}
}
guidesState={Array []}
navigateToApp={[MockFunction]}
/>
<EuiSpacer
size="m"
/>
</EuiFlexItem>
</EuiFlexGroup> </EuiFlexGroup>
</EuiFlexItem> </EuiFlexItem>
<EuiFlexItem <EuiFlexItem

View file

@ -72,16 +72,6 @@ export const guideCards: GuideCardConstants[] = [
telemetryId: 'onboarding--search--ai', telemetryId: 'onboarding--search--ai',
order: 7, order: 7,
}, },
{
solution: 'search',
icon: 'search',
title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.websiteSearch.title', {
defaultMessage: 'Add search to my website',
}),
guideId: 'websiteSearch',
telemetryId: 'onboarding--search--website',
order: 13,
},
{ {
solution: 'observability', solution: 'observability',
icon: 'logstashInput', icon: 'logstashInput',

View file

@ -84,16 +84,6 @@ export const guideCards: GuideCardConstants[] = [
telemetryId: 'onboarding--search--ai', telemetryId: 'onboarding--search--ai',
order: 7, order: 7,
}, },
{
solution: 'search',
icon: 'search',
title: i18n.translate('guidedOnboardingPackage.gettingStarted.cards.websiteSearch.title', {
defaultMessage: 'Add search to my website',
}),
guideId: 'websiteSearch',
telemetryId: 'onboarding--search--website',
order: 13,
},
{ {
solution: 'observability', solution: 'observability',
icon: 'logstashInput', icon: 'logstashInput',

View file

@ -7,7 +7,7 @@
* License v3.0 only", or the "Server Side Public License, v 1". * License v3.0 only", or the "Server Side Public License, v 1".
*/ */
export type GuideId = 'kubernetes' | 'siem' | 'websiteSearch' | 'databaseSearch' | 'testGuide'; export type GuideId = 'kubernetes' | 'siem' | 'databaseSearch' | 'testGuide';
type KubernetesStepIds = 'add_data' | 'view_dashboard' | 'tour_observability'; type KubernetesStepIds = 'add_data' | 'view_dashboard' | 'tour_observability';
type SiemStepIds = 'add_data' | 'rules' | 'alertsCases'; type SiemStepIds = 'add_data' | 'rules' | 'alertsCases';

View file

@ -29,16 +29,5 @@ export default function testGetGuideConfig({ getService }: FtrProviderContext) {
expect(config).to.not.be.empty(); expect(config).to.not.be.empty();
}); });
}); });
// expecting websiteSearch to be disabled for now, but adding this test to ensure
// it's added back to the above list when support for web crawlers is added back.
['websiteSearch'].map((guideId) => {
it(`does not returns config for ${guideId}`, async () => {
await supertest
.get(`${getConfigsPath}/${guideId}`)
.set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana')
.expect(404);
});
});
}); });
} }

View file

@ -13,7 +13,6 @@ import {
guideStateSavedObjectsType, guideStateSavedObjectsType,
pluginStateSavedObjectsType, pluginStateSavedObjectsType,
} from '@kbn/guided-onboarding-plugin/server/saved_objects/guided_setup'; } from '@kbn/guided-onboarding-plugin/server/saved_objects/guided_setup';
import { websiteSearchGuideId } from '@kbn/enterprise-search-plugin/common/guided_onboarding/search_guide_config';
import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common'; import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common';
import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common';
import type { FtrProviderContext } from '../../ftr_provider_context'; import type { FtrProviderContext } from '../../ftr_provider_context';
@ -42,19 +41,13 @@ export default function testGetGuidesState({ getService }: FtrProviderContext) {
}); });
it('returns all created guides (active and inactive)', async () => { it('returns all created guides (active and inactive)', async () => {
await createGuides(kibanaServer, [ await createGuides(kibanaServer, [testGuideStep1ActiveState]);
testGuideStep1ActiveState,
{ ...testGuideStep1ActiveState, guideId: websiteSearchGuideId },
]);
const response = await supertest const response = await supertest
.get(getGuidesPath) .get(getGuidesPath)
.set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana')
.expect(200); .expect(200);
expect(response.body).not.to.be.empty(); expect(response.body).not.to.be.empty();
expect(response.body.state).to.eql([ expect(response.body.state).to.eql([testGuideStep1ActiveState]);
testGuideStep1ActiveState,
{ ...testGuideStep1ActiveState, guideId: websiteSearchGuideId },
]);
}); });
}); });
} }

View file

@ -21,7 +21,6 @@ import {
guideStateSavedObjectsType, guideStateSavedObjectsType,
} from '@kbn/guided-onboarding-plugin/server/saved_objects/guided_setup'; } from '@kbn/guided-onboarding-plugin/server/saved_objects/guided_setup';
import { testGuideId } from '@kbn/guided-onboarding'; import { testGuideId } from '@kbn/guided-onboarding';
import { websiteSearchGuideId } from '@kbn/enterprise-search-plugin/common/guided_onboarding/search_guide_config';
import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common'; import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common';
import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common';
import type { FtrProviderContext } from '../../ftr_provider_context'; import type { FtrProviderContext } from '../../ftr_provider_context';
@ -134,11 +133,8 @@ export default function testPutState({ getService }: FtrProviderContext) {
}); });
it('updates any existing active guides to inactive', async () => { it('updates any existing active guides to inactive', async () => {
// create an active guide and an inactive guide // create an active guide
await createGuides(kibanaServer, [ await createGuides(kibanaServer, [testGuideStep1ActiveState]);
testGuideStep1ActiveState,
{ ...testGuideNotActiveState, guideId: websiteSearchGuideId },
]);
// Create a new guide with isActive: true // Create a new guide with isActive: true
await supertest await supertest
@ -160,12 +156,6 @@ export default function testPutState({ getService }: FtrProviderContext) {
}); });
expect(testGuideSO.attributes.isActive).to.eql(false); expect(testGuideSO.attributes.isActive).to.eql(false);
const searchGuideSO = await kibanaServer.savedObjects.get({
type: guideStateSavedObjectsType,
id: websiteSearchGuideId,
});
expect(searchGuideSO.attributes.isActive).to.eql(false);
const kubernetesGuide = await kibanaServer.savedObjects.get({ const kubernetesGuide = await kibanaServer.savedObjects.get({
type: guideStateSavedObjectsType, type: guideStateSavedObjectsType,
id: 'kubernetes', id: 'kubernetes',

View file

@ -60,7 +60,6 @@
"@kbn/dev-utils", "@kbn/dev-utils",
"@kbn/utility-types", "@kbn/utility-types",
"@kbn/dev-proc-runner", "@kbn/dev-proc-runner",
"@kbn/enterprise-search-plugin",
"@kbn/core-saved-objects-server", "@kbn/core-saved-objects-server",
"@kbn/core-http-common", "@kbn/core-http-common",
"@kbn/event-annotation-plugin", "@kbn/event-annotation-plugin",

View file

@ -4063,7 +4063,6 @@
"guidedOnboardingPackage.gettingStarted.cards.syntheticsObservability.title": "Créer un moniteur synthétique", "guidedOnboardingPackage.gettingStarted.cards.syntheticsObservability.title": "Créer un moniteur synthétique",
"guidedOnboardingPackage.gettingStarted.cards.universalProfilingObservability.title": "Optimiser mes charges de travail avec Universal Profiling", "guidedOnboardingPackage.gettingStarted.cards.universalProfilingObservability.title": "Optimiser mes charges de travail avec Universal Profiling",
"guidedOnboardingPackage.gettingStarted.cards.vectorSearch.title": "Configurer une recherche vectorielle", "guidedOnboardingPackage.gettingStarted.cards.vectorSearch.title": "Configurer une recherche vectorielle",
"guidedOnboardingPackage.gettingStarted.cards.websiteSearch.title": "Ajouter la recherche à mon site web",
"guidedOnboardingPackage.gettingStarted.guideFilter.all.buttonLabel": "Tous", "guidedOnboardingPackage.gettingStarted.guideFilter.all.buttonLabel": "Tous",
"guidedOnboardingPackage.gettingStarted.guideFilter.observability.buttonLabel": "Observabilité", "guidedOnboardingPackage.gettingStarted.guideFilter.observability.buttonLabel": "Observabilité",
"guidedOnboardingPackage.gettingStarted.guideFilter.search.buttonLabel": "Elasticsearch", "guidedOnboardingPackage.gettingStarted.guideFilter.search.buttonLabel": "Elasticsearch",

View file

@ -4058,7 +4058,6 @@
"guidedOnboardingPackage.gettingStarted.cards.syntheticsObservability.title": "シンセティック監視を作成", "guidedOnboardingPackage.gettingStarted.cards.syntheticsObservability.title": "シンセティック監視を作成",
"guidedOnboardingPackage.gettingStarted.cards.universalProfilingObservability.title": "ユニバーサルプロファイリングでワークロードを最適化", "guidedOnboardingPackage.gettingStarted.cards.universalProfilingObservability.title": "ユニバーサルプロファイリングでワークロードを最適化",
"guidedOnboardingPackage.gettingStarted.cards.vectorSearch.title": "ベクトル検索を設定", "guidedOnboardingPackage.gettingStarted.cards.vectorSearch.title": "ベクトル検索を設定",
"guidedOnboardingPackage.gettingStarted.cards.websiteSearch.title": "検索をWebサイトに追加",
"guidedOnboardingPackage.gettingStarted.guideFilter.all.buttonLabel": "すべて", "guidedOnboardingPackage.gettingStarted.guideFilter.all.buttonLabel": "すべて",
"guidedOnboardingPackage.gettingStarted.guideFilter.observability.buttonLabel": "Observability", "guidedOnboardingPackage.gettingStarted.guideFilter.observability.buttonLabel": "Observability",
"guidedOnboardingPackage.gettingStarted.guideFilter.search.buttonLabel": "Elasticsearch", "guidedOnboardingPackage.gettingStarted.guideFilter.search.buttonLabel": "Elasticsearch",

View file

@ -4064,7 +4064,6 @@
"guidedOnboardingPackage.gettingStarted.cards.syntheticsObservability.title": "创建 Synthetic 监测", "guidedOnboardingPackage.gettingStarted.cards.syntheticsObservability.title": "创建 Synthetic 监测",
"guidedOnboardingPackage.gettingStarted.cards.universalProfilingObservability.title": "使用 Universal Profiling 优化我的工作负载", "guidedOnboardingPackage.gettingStarted.cards.universalProfilingObservability.title": "使用 Universal Profiling 优化我的工作负载",
"guidedOnboardingPackage.gettingStarted.cards.vectorSearch.title": "设置矢量搜索", "guidedOnboardingPackage.gettingStarted.cards.vectorSearch.title": "设置矢量搜索",
"guidedOnboardingPackage.gettingStarted.cards.websiteSearch.title": "添加搜索到我的网站",
"guidedOnboardingPackage.gettingStarted.guideFilter.all.buttonLabel": "全部", "guidedOnboardingPackage.gettingStarted.guideFilter.all.buttonLabel": "全部",
"guidedOnboardingPackage.gettingStarted.guideFilter.observability.buttonLabel": "Observability", "guidedOnboardingPackage.gettingStarted.guideFilter.observability.buttonLabel": "Observability",
"guidedOnboardingPackage.gettingStarted.guideFilter.search.buttonLabel": "Elasticsearch", "guidedOnboardingPackage.gettingStarted.guideFilter.search.buttonLabel": "Elasticsearch",

View file

@ -8,15 +8,13 @@
import type { GuideConfig, StepConfig } from '@kbn/guided-onboarding'; import type { GuideConfig, StepConfig } from '@kbn/guided-onboarding';
import { i18n } from '@kbn/i18n'; import { i18n } from '@kbn/i18n';
export const websiteSearchGuideId = 'websiteSearch';
export const databaseSearchGuideId = 'databaseSearch'; export const databaseSearchGuideId = 'databaseSearch';
const apiRoutes = { const apiRoutes = {
[databaseSearchGuideId]: '/connectors/select_connector', [databaseSearchGuideId]: '/connectors/select_connector',
[websiteSearchGuideId]: '/crawlers',
}; };
export type EnterpriseSearchGuideIds = typeof websiteSearchGuideId | typeof databaseSearchGuideId; export type EnterpriseSearchGuideIds = typeof databaseSearchGuideId;
const getAddDataStep: (method?: EnterpriseSearchGuideIds) => StepConfig = (method) => { const getAddDataStep: (method?: EnterpriseSearchGuideIds) => StepConfig = (method) => {
return { return {
@ -83,6 +81,4 @@ const getGuideConfig: (telemetryId: EnterpriseSearchGuideIds) => GuideConfig = (
}; };
}; };
export const websiteSearchGuideConfig: GuideConfig = getGuideConfig(websiteSearchGuideId);
export const databaseSearchGuideConfig: GuideConfig = getGuideConfig(databaseSearchGuideId); export const databaseSearchGuideConfig: GuideConfig = getGuideConfig(databaseSearchGuideId);

View file

@ -73,17 +73,6 @@ export const SearchIndex: React.FC = () => {
updateSideNavDefinition, updateSideNavDefinition,
} = useValues(KibanaLogic); } = useValues(KibanaLogic);
useEffect(() => {
const subscription = guidedOnboarding?.guidedOnboardingApi
?.isGuideStepActive$('websiteSearch', 'add_data')
.subscribe((isStepActive) => {
if (isStepActive && index?.count) {
guidedOnboarding?.guidedOnboardingApi?.completeGuideStep('websiteSearch', 'add_data');
}
});
return () => subscription?.unsubscribe();
}, [guidedOnboarding, index?.count]);
useEffect(() => { useEffect(() => {
const subscription = guidedOnboarding?.guidedOnboardingApi const subscription = guidedOnboarding?.guidedOnboardingApi
?.isGuideStepActive$('databaseSearch', 'add_data') ?.isGuideStepActive$('databaseSearch', 'add_data')

View file

@ -36,9 +36,7 @@ import {
} from '../common/constants'; } from '../common/constants';
import { import {
websiteSearchGuideId,
databaseSearchGuideId, databaseSearchGuideId,
websiteSearchGuideConfig,
databaseSearchGuideConfig, databaseSearchGuideConfig,
} from '../common/guided_onboarding/search_guide_config'; } from '../common/guided_onboarding/search_guide_config';
@ -303,10 +301,6 @@ export class EnterpriseSearchPlugin implements Plugin<void, void, PluginsSetup,
/** /**
* Register a config for the search guide * Register a config for the search guide
*/ */
if (config.hasWebCrawler) {
// TODO: Do we remove this guide with the removal of native crawler?
guidedOnboarding?.registerGuideConfig(websiteSearchGuideId, websiteSearchGuideConfig);
}
if (config.hasConnectors) { if (config.hasConnectors) {
guidedOnboarding?.registerGuideConfig(databaseSearchGuideId, databaseSearchGuideConfig); guidedOnboarding?.registerGuideConfig(databaseSearchGuideId, databaseSearchGuideConfig);
} }