diff --git a/x-pack/plugins/observability/server/plugin.ts b/x-pack/plugins/observability/server/plugin.ts index d820a6c0a6f761..2fcb2089523a45 100644 --- a/x-pack/plugins/observability/server/plugin.ts +++ b/x-pack/plugins/observability/server/plugin.ts @@ -38,47 +38,49 @@ export class ObservabilityPlugin implements Plugin { } public setup(core: CoreSetup, plugins: PluginSetup) { - plugins.features.registerKibanaFeature({ - id: casesFeatureId, - name: i18n.translate('xpack.observability.featureRegistry.linkObservabilityTitle', { - defaultMessage: 'Cases', - }), - order: 1100, - category: DEFAULT_APP_CATEGORIES.observability, - app: [casesFeatureId, 'kibana'], - catalogue: [observabilityFeatureId], - cases: [observabilityFeatureId], - privileges: { - all: { - app: [casesFeatureId, 'kibana'], - catalogue: [observabilityFeatureId], - cases: { - all: [observabilityFeatureId], - }, - api: [], - savedObject: { - all: [], - read: [], - }, - ui: ['crud_cases', 'read_cases'], // uiCapabilities[casesFeatureId].crud_cases or read_cases - }, - read: { - app: [casesFeatureId, 'kibana'], - catalogue: [observabilityFeatureId], - cases: { - read: [observabilityFeatureId], + const config = this.initContext.config.get(); + + if (config.unsafe.cases.enabled) { + plugins.features.registerKibanaFeature({ + id: casesFeatureId, + name: i18n.translate('xpack.observability.featureRegistry.linkObservabilityTitle', { + defaultMessage: 'Cases', + }), + order: 1100, + category: DEFAULT_APP_CATEGORIES.observability, + app: [casesFeatureId, 'kibana'], + catalogue: [observabilityFeatureId], + cases: [observabilityFeatureId], + privileges: { + all: { + app: [casesFeatureId, 'kibana'], + catalogue: [observabilityFeatureId], + cases: { + all: [observabilityFeatureId], + }, + api: [], + savedObject: { + all: [], + read: [], + }, + ui: ['crud_cases', 'read_cases'], // uiCapabilities[casesFeatureId].crud_cases or read_cases }, - api: [], - savedObject: { - all: [], - read: [], + read: { + app: [casesFeatureId, 'kibana'], + catalogue: [observabilityFeatureId], + cases: { + read: [observabilityFeatureId], + }, + api: [], + savedObject: { + all: [], + read: [], + }, + ui: ['read_cases'], // uiCapabilities[uiCapabilities[casesFeatureId]].read_cases }, - ui: ['read_cases'], // uiCapabilities[uiCapabilities[casesFeatureId]].read_cases }, - }, - }); - - const config = this.initContext.config.get(); + }); + } let annotationsApiPromise: Promise | undefined;