Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
b6fae2e
Move AI Assistants under new AI section
rbrtj Jul 9, 2025
75f8317
ObservabilityAiAssistantManagement: Update management capabilities
rbrtj Jul 10, 2025
f5530ba
ObservabilityAiAssistantManagement: Update mock management capabilities
rbrtj Jul 10, 2025
8606b9e
Update management section tests to not expect aiAssistantManagementSe…
rbrtj Jul 10, 2025
b187adb
Update management security test to expect 5 sections instead of 4
rbrtj Jul 11, 2025
cdcd060
GenAI Settings plugin initialization && Move AI Connector and AI Feat…
rbrtj Jul 14, 2025
5070880
GenAI Settings: Adjust descriptions
rbrtj Jul 14, 2025
d2e026a
Merge remote-tracking branch 'upstream/main' into stack-management-ai…
rbrtj Jul 14, 2025
6629f62
Merge remote-tracking branch 'upstream/main' into stack-management-ai…
rbrtj Jul 15, 2025
c4ba2a8
GenAI Settings: Create Serverless Context && Adjust view in serverless
rbrtj Jul 15, 2025
981d735
GenAI Settings: Navigate to the current space settings instead of spa…
rbrtj Jul 15, 2025
5d70632
GenAI Settings: Adjust breadcrumbs
rbrtj Jul 15, 2025
07d9b33
AI Assistants - Security: Remove connectors tab
rbrtj Jul 15, 2025
8f0153d
GenAI Settings: Adjust settings for non-serverless solution view
rbrtj Jul 16, 2025
57f09cc
AI Section: Enable AI section in solutions view
rbrtj Jul 16, 2025
64775c1
AI Section: Enable AI section in solutions view - search
rbrtj Jul 16, 2025
0eb441e
GenAI Settings: Get rid of observabilityAiAssistant dependency
rbrtj Jul 16, 2025
d680222
GenAI Settings: Enable in serverless
rbrtj Jul 16, 2025
6901bd1
AI Assistants: Navigate to the particular assistant in solution view
rbrtj Jul 17, 2025
5095cbc
[CI] Auto-commit changed files from 'node scripts/capture_oas_snapsho…
kibanamachine Jul 17, 2025
43919e5
[CI] Auto-commit changed files from 'node scripts/generate codeowners'
kibanamachine Jul 17, 2025
b9e5047
GenAI Settings: Update bundle size limit
rbrtj Jul 17, 2025
d74300e
GenAI Settings: Update jest config
rbrtj Jul 17, 2025
f94b017
Remove Unused Translations
rbrtj Jul 17, 2025
3f8b364
[CI] Auto-commit changed files from 'node scripts/yarn_deduplicate'
kibanamachine Jul 17, 2025
965e70f
Disable assistant selector in solution view
rbrtj Jul 17, 2025
810fdb4
GenAI Settings: ESlint fix
rbrtj Jul 17, 2025
41f5fe4
[CI] Auto-commit changed files from 'node scripts/yarn_deduplicate'
kibanamachine Jul 17, 2025
34cc40d
Update labels and icons for AI Assistant settings pages
rbrtj Jul 17, 2025
5e65aa1
AI Assistants: add GenAI Settings button
rbrtj Jul 18, 2025
d5ed534
Oblt Ai Assistant: Remove SearchConnector Tab
rbrtj Jul 18, 2025
f7b86bc
GenAI Settings: Update breadcrumbs
rbrtj Jul 18, 2025
220a491
GenAI Settings: Update tab title
rbrtj Jul 18, 2025
31fb003
Oblt Ai Assistant: Remove console log
rbrtj Jul 18, 2025
623392d
Merge remote-tracking branch 'upstream/main' into stack-management-ai…
rbrtj Jul 18, 2025
4ff581a
GenAI Settings: Rename isSolutionView
rbrtj Jul 21, 2025
4e6a74e
GenAI Settings: Use serverless config file
rbrtj Jul 22, 2025
d1d6b65
GenAI Settings: Basic unit tests
rbrtj Jul 22, 2025
bed9072
GenAI Settings: Rename serverless context
rbrtj Jul 22, 2025
1272f6a
GenAI Settings: Omit AI tip for now
rbrtj Jul 23, 2025
2bad0da
Merge branch 'main' into stack-management-ai-settings
rbrtj Jul 23, 2025
3086851
[CI] Auto-commit changed files from 'node scripts/notice'
kibanamachine Jul 23, 2025
d80fece
Remove unused translations
rbrtj Jul 23, 2025
070852c
Remove unused translation && Fix import path
rbrtj Jul 23, 2025
17efeec
Format kibnaa.jsonc files with json formatter
rbrtj Jul 23, 2025
bab6ef4
AI Assistant Management: Fix assistants not respecting feature settings
rbrtj Jul 24, 2025
8344dce
AI Assistant Management: Simplify redirect logic
rbrtj Jul 25, 2025
ac194c6
AI Assistant Management: Rename AI Assistant feature to AI Assistant …
rbrtj Jul 25, 2025
84f227a
[CI] Auto-commit changed files from 'node scripts/eslint_all_files --…
kibanamachine Jul 25, 2025
033e684
GenAI Settings: Disable plugin when no connectors privilege
rbrtj Jul 25, 2025
536000b
Merge branch 'main' into stack-management-ai-settings
rbrtj Jul 25, 2025
3b4781c
AI Assistant Management: Remove unnecessary redirect logic
rbrtj Jul 25, 2025
7891b26
AI Assistant Management: Cleanup
rbrtj Jul 25, 2025
fd6f444
GenAI Settings: Update tests
rbrtj Jul 25, 2025
80471ad
Fix jest tests
rbrtj Jul 25, 2025
599011e
GenAI Settings: Make plugin dependent on Connectors feature
rbrtj Jul 25, 2025
8eb6afb
Oblt Ai Assistant Settings: Enable Read mode based on aiAssistantMana…
rbrtj Jul 28, 2025
1eacb02
Security AI Assistant: Enable read only mode based on aiAssistantMana…
rbrtj Jul 28, 2025
b7ed808
Update tests
rbrtj Jul 28, 2025
fc0591f
Merge branch 'main' into stack-management-ai-settings
rbrtj Jul 28, 2025
116afcb
Update AI Assistant selection page to check for aiAssistantManagement…
rbrtj Jul 28, 2025
f623a9d
Fix CI errors
rbrtj Jul 28, 2025
d8f0b0f
AI Assistant Management: Get rid of unused spaces plugin dependency
rbrtj Jul 28, 2025
a65a2b6
AI Assistant Management: Update capabilities check
rbrtj Jul 28, 2025
a2ab64b
Security AI Assistant: Update assistant management capability
rbrtj Jul 28, 2025
469736c
Code review changes 1
rbrtj Jul 29, 2025
534e673
Security AI Assistant: Revert Read-only mode
rbrtj Aug 4, 2025
8446cbd
Oblt Ai Assistant Settings: Revert readonly mode changes
rbrtj Aug 4, 2025
556f875
GenAI Settings: AI Connector section - fix description
rbrtj Aug 4, 2025
8da509d
Merge branch 'main' into stack-management-ai-settings
rbrtj Aug 4, 2025
3d57380
AI Assistant Management: Revert checks & navigation updates
rbrtj Aug 5, 2025
5403268
GenAI Settings: Fix padding
rbrtj Aug 5, 2025
d04111a
Oblt Ai Assistant Settings: Revert Search Connector Tab
rbrtj Aug 6, 2025
bcfd1d3
AI Assistant Management: Fix security assistant check
rbrtj Aug 6, 2025
252afdc
Merge remote-tracking branch 'upstream/main' into stack-management-ai…
rbrtj Aug 6, 2025
35c18e5
Remove unused translations
rbrtj Aug 6, 2025
a253c7d
Security AI Assistant Management: Remove unused `Capabilities` mock f…
rbrtj Aug 7, 2025
39b1bf9
GenAI Settings: Add privilege checks for GenAI Settings button visibi…
rbrtj Aug 7, 2025
c7c48d0
GenAI Settings: Wrap component with KibanaContextProvider and update …
rbrtj Aug 7, 2025
74e1628
GenAI Settings: Add API client && connector route && elastic managed …
rbrtj Aug 8, 2025
71f17cc
Merge branch 'main' into stack-management-ai-settings
rbrtj Aug 8, 2025
325df14
[CI] Auto-commit changed files from 'node scripts/notice'
kibanamachine Aug 8, 2025
574e2a0
AI Assistant Management: Fix tests
rbrtj Aug 8, 2025
9d26a68
Merge branch 'main' into stack-management-ai-settings
rbrtj Aug 11, 2025
ca50eaf
Security AI Assistant: Fix test
rbrtj Aug 11, 2025
cc08d9e
GenAI Settings: CR changes
rbrtj Aug 11, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -941,6 +941,7 @@ x-pack/platform/plugins/private/data_visualizer @elastic/ml-ui
x-pack/platform/plugins/private/discover_enhanced @elastic/kibana-data-discovery
x-pack/platform/plugins/private/drilldowns/url_drilldown @elastic/appex-sharedux
x-pack/platform/plugins/private/file_upload @elastic/kibana-presentation @elastic/ml-ui
x-pack/platform/plugins/private/gen_ai_settings @elastic/appex-ai-infra
x-pack/platform/plugins/private/global_search_bar @elastic/appex-sharedux
x-pack/platform/plugins/private/global_search_providers @elastic/appex-sharedux
x-pack/platform/plugins/private/graph @elastic/kibana-visualizations
Expand Down
5 changes: 5 additions & 0 deletions config/serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -290,3 +290,8 @@ xpack.contentConnectors.enabled: true
## Enable Kibana Product Intercept
xpack.product_intercept.enabled: true
xpack.product_intercept.interval: '90d'

# Gen AI Settings plugin
xpack.genAiSettings:
showAiBreadcrumb: false
showSpacesIntegration: false
1 change: 1 addition & 0 deletions docs/extend/plugin-list.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ mapped_pages:
| [fieldsMetadata](https://github.com/elastic/kibana/blob/main/x-pack/platform/plugins/shared/fields_metadata/README.md) | The @kbn/fields-metadata-plugin is designed to provide a centralized and asynchronous way to consume field metadata across Kibana. This plugin addresses the need for on-demand retrieval of field metadata from static ECS/Metadata definitions and integration manifests, with the flexibility to extend to additional resolution sources in the future. |
| [fileUpload](https://github.com/elastic/kibana/blob/main/x-pack/platform/plugins/private/file_upload) | WARNING: Missing or empty README. |
| [fleet](https://github.com/elastic/kibana/blob/main/x-pack/platform/plugins/shared/fleet/README.md) | Fleet provides a web-based UI in Kibana for centrally managing Elastic Agents and their policies. |
| [genAiSettings](https://github.com/elastic/kibana/blob/main/x-pack/platform/plugins/private/gen_ai_settings/README.md) | This plugin provides a management interface for configuring generative AI settings within Kibana's Stack Management section. |
| [globalSearch](https://github.com/elastic/kibana/blob/main/x-pack/platform/plugins/shared/global_search/README.md) | The GlobalSearch plugin provides an easy way to search for various objects, such as applications or dashboards from the Kibana instance, from both server and client-side plugins |
| [globalSearchBar](https://github.com/elastic/kibana/blob/main/x-pack/platform/plugins/private/global_search_bar/README.md) | The GlobalSearchBar plugin provides a search interface for navigating Kibana. (It is the UI to the GlobalSearch plugin.) |
| [globalSearchProviders](https://github.com/elastic/kibana/blob/main/x-pack/platform/plugins/private/global_search_providers/README.md) | The globalSearchProviders plugin provides Kibana default search providers for the GlobalSearch plugin. |
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,7 @@
"@kbn/foo-plugin": "link:x-pack/platform/test/ui_capabilities/common/plugins/foo_plugin",
"@kbn/ftr-apis-plugin": "link:src/platform/plugins/private/ftr_apis",
"@kbn/functional-with-es-ssl-cases-test-plugin": "link:x-pack/platform/test/functional_with_es_ssl/plugins/cases",
"@kbn/gen-ai-settings-plugin": "link:x-pack/platform/plugins/private/gen_ai_settings",
"@kbn/gen-ai-streaming-response-example-plugin": "link:x-pack/examples/gen_ai_streaming_response_example",
"@kbn/generate-csv": "link:src/platform/packages/private/kbn-generate-csv",
"@kbn/global-search-bar-plugin": "link:x-pack/platform/plugins/private/global_search_bar",
Expand Down
1 change: 1 addition & 0 deletions packages/kbn-optimizer/limits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ pageLoadAssetSize:
filesManagement: 5270
fileUpload: 16910
fleet: 187942
genAiSettings: 4981
globalSearch: 6890
globalSearchBar: 26986
globalSearchProviders: 4646
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ export type NavigationID =
| 'ingest'
| 'data'
| 'alerts_and_insights'
| 'kibana';
| 'kibana'
| 'ai';

export type ManagementNodeDefinition = NodeDefinitionWithChildren<DeepLinkId, NavigationID>;

Expand Down Expand Up @@ -121,9 +122,7 @@ export const defaultNavigation: ManagementNodeDefinition = {
{
link: 'management:dataViews',
},
{
link: 'management:aiAssistantManagementSelection',
},

{
// Saved objects
link: 'management:objects',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ export type ManagementId =
| 'triggersActionsConnectors'
| 'upgrade_assistant'
| 'users'
| 'watcher';
| 'watcher'
| 'genAiSettings';

export type ManagementDeepLinkId = MonitoringAppId | `${ManagementAppId}:${ManagementId}`;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"type": "plugin",
"id": "@kbn/ai-assistant-management-plugin",
"owner": ["@elastic/obs-ai-assistant"],
"owner": [
"@elastic/obs-ai-assistant"
],
// This should probably be platform. While the code owner is currently observability, the package is a platform AI assistant selector.
"group": "platform",
"visibility": "shared",
Expand All @@ -13,7 +15,7 @@
"aiAssistantManagementSelection"
],
"requiredPlugins": [
"management",
"management"
],
"optionalPlugins": [
"home",
Expand All @@ -25,4 +27,4 @@
"kibanaReact"
]
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { type CoreSetup, Plugin, type CoreStart, PluginInitializerContext } from
import type { ManagementSetup } from '@kbn/management-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { ServerlessPluginSetup } from '@kbn/serverless/public';

import { BehaviorSubject, Observable } from 'rxjs';
import type { BuildFlavor } from '@kbn/config';
import { AIAssistantType } from '../common/ai_assistant_type';
Expand Down Expand Up @@ -68,22 +69,22 @@ export class AIAssistantManagementPlugin
defaultMessage: 'Manage your AI Assistants.',
}),
icon: 'sparkles',
path: '/app/management/kibana/aiAssistantManagementSelection',
path: '/app/management/ai/aiAssistantManagementSelection',
showOnHomePage: false,
category: 'admin',
});
}

management.sections.section.kibana.registerApp({
management.sections.section.ai.registerApp({
id: 'aiAssistantManagementSelection',
title: i18n.translate('aiAssistantManagementSelection.managementSectionLabel', {
defaultMessage: 'AI Assistants',
}),
order: 1,
order: 2,
keywords: ['ai'],
mount: async (mountParams) => {
const { mountManagementSection } = await import('./management_section/mount_section');
const securityAIAssistantEnabled = !!management?.sections.section.kibana
const securityAIAssistantEnabled = !!management?.sections.section.ai
.getAppsEnabled()
.find((app) => app.id === 'securityAiAssistantManagement' && app.enabled);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,13 @@ describe('AiAssistantSelectionPage', () => {
({
observabilityAIAssistant: { show: hasPermission },
management: {
kibana: {
ai: {
aiAssistantManagementSelection: hasPermission,
},
},
securitySolutionAssistant: {
'ai-assistant': hasPermission,
},
} as unknown as CoreStart['application']['capabilities']);

const testCapabilities = generateMockCapabilities(true);
Expand Down Expand Up @@ -57,7 +60,7 @@ describe('AiAssistantSelectionPage', () => {
renderComponent(testCapabilities);
expect(setBreadcrumbs).toHaveBeenCalledWith([
{
text: 'AI Assistant',
text: 'AI Assistants',
},
]);
});
Expand Down Expand Up @@ -95,7 +98,7 @@ describe('AiAssistantSelectionPage', () => {
renderComponent(testCapabilities);
fireEvent.click(screen.getByTestId('pluginsAiAssistantSelectionPageButton'));
expect(navigateToApp).toHaveBeenCalledWith('management', {
path: 'kibana/observabilityAiAssistantManagement',
path: 'ai/observabilityAiAssistantManagement',
});
});

Expand All @@ -116,7 +119,9 @@ describe('AiAssistantSelectionPage', () => {
expect(
screen.getByTestId('pluginsAiAssistantSelectionPageSecurityDocumentationCallout')
).toBeInTheDocument();
expect(screen.getByTestId('pluginsAiAssistantSelectionSecurityPageButton')).toBeDisabled();
expect(
screen.queryByTestId('pluginsAiAssistantSelectionSecurityPageButton')
).not.toBeInTheDocument();
});
});

Expand All @@ -139,7 +144,7 @@ describe('AiAssistantSelectionPage', () => {
renderComponent(testCapabilities);
fireEvent.click(screen.getByTestId('pluginsAiAssistantSelectionSecurityPageButton'));
expect(navigateToApp).toHaveBeenCalledWith('management', {
path: 'kibana/securityAiAssistantManagement',
path: 'ai/securityAiAssistantManagement',
});
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
EuiCallOut,
EuiCard,
EuiFlexGrid,
EuiFlexGroup,
EuiFlexItem,
EuiIcon,
EuiLink,
Expand All @@ -34,19 +35,23 @@ export function AiAssistantSelectionPage() {
kibanaBranch,
securityAIAssistantEnabled,
} = useAppContext();
const aiAssistantManagementSelection =
capabilities.management.kibana.aiAssistantManagementSelection;
const aiAssistantManagementSelection = capabilities.management.ai.aiAssistantManagementSelection;

const observabilityAIAssistantEnabled = capabilities.observabilityAIAssistant?.show;
const securityAIAssistantVisibility = Boolean(
capabilities.securitySolutionAssistant['ai-assistant']
);
const isSecurityAIAssistantEnabled =
securityAIAssistantEnabled && aiAssistantManagementSelection && securityAIAssistantVisibility;

const observabilityDoc = getDocLinks({ buildFlavor, kibanaBranch }).observability.aiAssistant;
const securityDoc = getDocLinks({ buildFlavor, kibanaBranch }).securitySolution.aiAssistant;
const isSecurityAIAssistantEnabled = securityAIAssistantEnabled && aiAssistantManagementSelection;

useEffect(() => {
setBreadcrumbs([
{
text: i18n.translate('aiAssistantManagementSelection.breadcrumb.index', {
defaultMessage: 'AI Assistant',
defaultMessage: 'AI Assistants',
}),
},
]);
Expand All @@ -59,7 +64,7 @@ export function AiAssistantSelectionPage() {
{i18n.translate(
'aiAssistantManagementSelection.aiAssistantSettingsPage.h2.aIAssistantLabel',
{
defaultMessage: 'AI Assistant',
defaultMessage: 'AI Assistants',
}
)}
</h2>
Expand Down Expand Up @@ -130,7 +135,7 @@ export function AiAssistantSelectionPage() {
data-test-subj="pluginsAiAssistantSelectionPageButton"
onClick={() =>
navigateToApp('management', {
path: 'kibana/observabilityAiAssistantManagement',
path: 'ai/observabilityAiAssistantManagement',
})
}
>
Expand All @@ -144,7 +149,16 @@ export function AiAssistantSelectionPage() {
}
display="plain"
hasBorder
icon={<EuiIcon size="xxl" type="logoObservability" />}
icon={
<EuiFlexGroup alignItems="center" justifyContent="center" gutterSize="m">
<EuiFlexItem grow={false}>
<EuiIcon size="xxl" type="logoObservability" />
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiIcon size="xxl" type="logoEnterpriseSearch" />
</EuiFlexItem>
</EuiFlexGroup>
}
isDisabled={!observabilityAIAssistantEnabled}
title={i18n.translate(
'aiAssistantManagementSelection.aiAssistantSelectionPage.observabilityLabel',
Expand Down Expand Up @@ -196,21 +210,20 @@ export function AiAssistantSelectionPage() {
}}
/>
</p>
{
{isSecurityAIAssistantEnabled && (
<EuiButton
data-test-subj="pluginsAiAssistantSelectionSecurityPageButton"
iconType="gear"
onClick={() =>
navigateToApp('management', { path: 'kibana/securityAiAssistantManagement' })
navigateToApp('management', { path: 'ai/securityAiAssistantManagement' })
}
disabled={!isSecurityAIAssistantEnabled}
>
{i18n.translate(
'aiAssistantManagementSelection.aiAssistantSelectionPage.securityAssistant.manageSettingsButtonLabel',
{ defaultMessage: 'Manage Settings' }
)}
</EuiButton>
}
)}
</div>
}
display="plain"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export class AIAssistantManagementSelectionPlugin
core.capabilities.registerProvider(() => {
return {
management: {
kibana: {
ai: {
aiAssistantManagementSelection: true,
observabilityAiAssistantManagement: true,
securityAiAssistantManagement: true,
Expand All @@ -64,14 +64,14 @@ export class AIAssistantManagementSelectionPlugin
plugins.features?.registerKibanaFeature({
id: 'aiAssistantManagementSelection',
name: i18n.translate('aiAssistantManagementSelection.featureRegistry.featureName', {
defaultMessage: 'AI Assistant',
defaultMessage: 'AI Assistant Settings',
}),
order: 8600,
app: [],
category: DEFAULT_APP_CATEGORIES.management,
scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security],
management: {
kibana: [
ai: [
'aiAssistantManagementSelection',
'securityAiAssistantManagement',
'observabilityAiAssistantManagement',
Expand All @@ -81,7 +81,7 @@ export class AIAssistantManagementSelectionPlugin
privileges: {
all: {
management: {
kibana: [
ai: [
'aiAssistantManagementSelection',
'securityAiAssistantManagement',
'observabilityAiAssistantManagement',
Expand All @@ -95,7 +95,7 @@ export class AIAssistantManagementSelectionPlugin
},
read: {
management: {
kibana: [
ai: [
'aiAssistantManagementSelection',
'securityAiAssistantManagement',
'observabilityAiAssistantManagement',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ const kibanaTip = i18n.translate('management.sections.kibanaTip', {
defaultMessage: 'Customize Kibana and manage saved objects',
});

const aiTitle = i18n.translate('management.sections.aiTitle', {
defaultMessage: 'AI',
});

const stackTitle = i18n.translate('management.sections.stackTitle', {
defaultMessage: 'Stack',
});
Expand Down Expand Up @@ -108,6 +112,12 @@ export const KibanaSection = {
order: 4,
};

export const AISection = {
id: ManagementSectionId.AI,
title: aiTitle,
order: 4,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the PR screenshoots the section includes the tooltip icon but it's not added here. I think it would be nice include a tip with something like 'Manage your AI models and settings' or something similar (double check with docs)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for adding an info tooltip for the AI section. Manage your AI assistant and feature settings, but get help from docs as @SoniaSanzV suggested.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We initially decided to skip the tip, @isaclfreire WDYT?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I missed this. Looks good to me.

};

export const StackSection = {
id: ManagementSectionId.Stack,
title: stackTitle,
Expand All @@ -122,5 +132,6 @@ export const managementSections = [
MachineLearningSection,
SecuritySection,
KibanaSection,
AISection,
StackSection,
];
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe('ManagementService', () => {
managementService.start({ capabilities });
const start = getSectionsServiceStartPrivate();

expect(start.getSectionsEnabled().length).toEqual(7);
expect(start.getSectionsEnabled().length).toEqual(8);
});

test('Register section, enable and disable', () => {
Expand All @@ -44,11 +44,11 @@ describe('ManagementService', () => {
managementService.start({ capabilities });
const start = getSectionsServiceStartPrivate();

expect(start.getSectionsEnabled().length).toEqual(8);
expect(start.getSectionsEnabled().length).toEqual(9);

testSection.disable();

expect(start.getSectionsEnabled().length).toEqual(7);
expect(start.getSectionsEnabled().length).toEqual(8);
});

test('Disables items that are not allowed by Capabilities', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import {
SecuritySection,
KibanaSection,
StackSection,
AISection,
} from './components/management_sections';

import {
Expand Down Expand Up @@ -45,6 +46,7 @@ export class ManagementSectionsService {
machineLearning: this.registerSection(MachineLearningSection),
security: this.registerSection(SecuritySection),
kibana: this.registerSection(KibanaSection),
ai: this.registerSection(AISection),
stack: this.registerSection(StackSection),
};
}
Expand Down
Loading
Loading