Skip to content

Commit 028f102

Browse files
authored
[8.19] [AI4DSOC] Add possibility to disable Stack Rules, Rules Settings and Maintenance window based on Serverless Tier (#214586) (#221998)
1 parent 3e0f5cb commit 028f102

File tree

34 files changed

+798
-93
lines changed

34 files changed

+798
-93
lines changed

.buildkite/ftr_platform_stateful_configs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ enabled:
138138
- x-pack/test/alerting_api_integration/security_and_spaces/group2/config.ts
139139
- x-pack/test/alerting_api_integration/security_and_spaces/group3/config.ts
140140
- x-pack/test/alerting_api_integration/security_and_spaces/group4/config.ts
141+
- x-pack/test/alerting_api_integration/security_and_spaces/group5/config.ts
141142
- x-pack/test/alerting_api_integration/security_and_spaces/group3/config_with_schedule_circuit_breaker.ts
142143
- x-pack/test/alerting_api_integration/security_and_spaces/group2/config_non_dedicated_task_runner.ts
143144
- x-pack/test/alerting_api_integration/security_and_spaces/group4/config_non_dedicated_task_runner.ts
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,24 @@
11
# Security Search AI Lake tier config
2+
3+
## Disable plugins
4+
xpack.osquery.enabled: false
5+
xpack.ml.ad.enabled: false
6+
xpack.ml.dfa.enabled: false
7+
8+
## Disable plugin features
9+
xpack.alerting.maintenanceWindow.enabled: false
10+
xpack.alerting.rulesSettings.enabled: false
11+
xpack.trigger_actions_ui.rules.enabled: false
12+
13+
xpack.features.overrides:
14+
### The following features are Security features hidden in Role management UI for this specific tier.
15+
securitySolutionTimeline.hidden: true
16+
securitySolutionNotes.hidden: true
17+
siem.description: null
18+
siemV2.description: null
19+
securitySolutionSiemMigrations.hidden: true
20+
21+
# Custom integrations/fleet settings
22+
xpack.fleet.agentless.isDefault: true
23+
xpack.fleet.integrationsHomeOverride: '/app/security/configurations/integrations'
24+
xpack.fleet.prereleaseEnabledByDefault: true

src/platform/packages/shared/kbn-alerts-ui-shared/src/maintenance_window_callout/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ export function MaintenanceWindowCallout({
5252
} = kibanaServices;
5353

5454
const isMaintenanceWindowDisabled =
55-
!capabilities[MAINTENANCE_WINDOW_FEATURE_ID].show &&
56-
!capabilities[MAINTENANCE_WINDOW_FEATURE_ID].save;
55+
!capabilities[MAINTENANCE_WINDOW_FEATURE_ID]?.show &&
56+
!capabilities[MAINTENANCE_WINDOW_FEATURE_ID]?.save;
5757
const { data: activeMaintenanceWindows = [] } = useFetchActiveMaintenanceWindows(kibanaServices, {
5858
enabled: !isMaintenanceWindowDisabled,
5959
});

src/platform/test/plugin_functional/test_suites/core_plugins/rendering.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,9 +348,12 @@ export default function ({ getService }: PluginFunctionalProviderContext) {
348348
'xpack.stack_connectors.enableExperimental (array?)',
349349
'xpack.trigger_actions_ui.enableExperimental (array?)',
350350
'xpack.trigger_actions_ui.enableGeoTrackingThresholdAlert (boolean?)',
351+
'xpack.trigger_actions_ui.rules.enabled (boolean?)',
351352
'xpack.timelines.enableExperimental (array?)',
352353
'xpack.alerting.rules.run.alerts.max (number?)',
353354
'xpack.alerting.disabledRuleTypes (array?)',
355+
'xpack.alerting.maintenanceWindow.enabled (boolean?)',
356+
'xpack.alerting.rulesSettings.enabled (boolean?)',
354357
'xpack.upgrade_assistant.featureSet.migrateSystemIndices (boolean?)',
355358
'xpack.upgrade_assistant.featureSet.mlSnapshots (boolean?)',
356359
'xpack.upgrade_assistant.featureSet.reindexCorrectiveActions (boolean?)',

x-pack/platform/plugins/shared/alerting/common/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,4 +260,3 @@ export const DELETE_MAINTENANCE_WINDOW_API_PATH = `${BASE_MAINTENANCE_WINDOW_API
260260

261261
export const ALERTING_FEATURE_ID = 'alerts';
262262
export const MONITORING_HISTORY_LIMIT = 200;
263-
export const ENABLE_MAINTENANCE_WINDOWS = true;

x-pack/platform/plugins/shared/alerting/public/pages/maintenance_windows/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ export const MaintenanceWindowsPage = React.memo(() => {
6868
}, [navigateToCreateMaintenanceWindow]);
6969

7070
const refreshData = useCallback(() => refetch(), [refetch]);
71-
const showWindowMaintenance = capabilities[MAINTENANCE_WINDOW_FEATURE_ID].show;
72-
const writeWindowMaintenance = capabilities[MAINTENANCE_WINDOW_FEATURE_ID].save;
71+
const showWindowMaintenance = capabilities[MAINTENANCE_WINDOW_FEATURE_ID]?.show;
72+
const writeWindowMaintenance = capabilities[MAINTENANCE_WINDOW_FEATURE_ID]?.save;
7373
const isNotFiltered = search === '' && selectedStatus.length === 0;
7474

7575
const showEmptyPrompt =

x-pack/platform/plugins/shared/alerting/public/plugin.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ const mockAlertingUIConfig: AlertingUIConfig = {
2626
},
2727
},
2828
},
29+
maintenanceWindow: {
30+
enabled: true,
31+
},
2932
};
3033

3134
const mockInitializerContext = coreMock.createPluginInitializerContext(mockAlertingUIConfig);

x-pack/platform/plugins/shared/alerting/public/plugin.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ import type { ServerlessPluginStart } from '@kbn/serverless/public';
1717
import type { AlertNavigationHandler } from './alert_navigation_registry';
1818
import { AlertNavigationRegistry } from './alert_navigation_registry';
1919
import { loadRule, loadRuleType } from './services/rule_api';
20+
import { MAINTENANCE_WINDOWS_APP_ID } from '../common';
2021
import type { Rule } from '../common';
21-
import { ENABLE_MAINTENANCE_WINDOWS, MAINTENANCE_WINDOWS_APP_ID } from '../common';
2222

2323
export interface PluginSetupContract {
2424
/**
@@ -82,6 +82,7 @@ export interface AlertingUIConfig {
8282
};
8383
};
8484
};
85+
maintenanceWindow: { enabled: boolean };
8586
}
8687

8788
export class AlertingPublicPlugin
@@ -115,7 +116,7 @@ export class AlertingPublicPlugin
115116
handler: AlertNavigationHandler
116117
) => this.alertNavigationRegistry!.registerDefault(applicationId, handler);
117118

118-
if (ENABLE_MAINTENANCE_WINDOWS) {
119+
if (this.config.maintenanceWindow?.enabled) {
119120
plugins.management.sections.section.insightsAndAlerting.registerApp({
120121
id: MAINTENANCE_WINDOWS_APP_ID,
121122
title: i18n.translate('xpack.alerting.management.section.title', {

x-pack/platform/plugins/shared/alerting/server/config.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ describe('config validation', () => {
2121
"interval": "5m",
2222
"removalDelay": "1h",
2323
},
24+
"maintenanceWindow": Object {
25+
"enabled": true,
26+
},
2427
"maxEphemeralActionsPerAlert": 10,
2528
"rules": Object {
2629
"maxScheduledPerMinute": 32000,
@@ -39,6 +42,7 @@ describe('config validation', () => {
3942
},
4043
"rulesSettings": Object {
4144
"cacheInterval": 60000,
45+
"enabled": true,
4246
},
4347
}
4448
`);

x-pack/platform/plugins/shared/alerting/server/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,15 @@ export const configSchema = schema.object({
7777
cancelAlertsOnRuleTimeout: schema.boolean({ defaultValue: true }),
7878
rules: rulesSchema,
7979
rulesSettings: schema.object({
80+
enabled: schema.boolean({ defaultValue: true }),
8081
cacheInterval: schema.number({ defaultValue: DEFAULT_CACHE_INTERVAL_MS }),
8182
}),
8283
disabledRuleTypes: schema.maybe(
8384
schema.arrayOf(schema.string({ minLength: 1 }), { defaultValue: [] })
8485
),
86+
maintenanceWindow: schema.object({
87+
enabled: schema.boolean({ defaultValue: true }),
88+
}),
8589
});
8690

8791
export type AlertingConfig = TypeOf<typeof configSchema>;

0 commit comments

Comments
 (0)