Skip to content

[meta] Improve deprecation warnings for plugins without an enabled config in 8.0. #114188

@lukeelmers

Description

@lukeelmers

Summary

In #89584, we identified the list of plugins which will no longer be disable-able in 8.0. In preparation for the PR with the breaking change, we merged #112602, which added deprecation warnings for all affected plugins.

We decided to do this in one PR to ensure no deprecations were forgotten. However, the result was that these warnings are quite generic as they have not been customized to a specific plugin's users. In the Upgrade Assistant, they will simply say Configuring "foo.enabled" is deprecated and will be removed in 8.0., with instructions to Remove "foo.enabled" from the Kibana config file, CLI flag, or environment variable (in Docker only) before upgrading to 8.0.

Some plugins may have alternative configurations that we could instead point users to, which would create a better upgrade experience. For example, some users may have been depending on the enabled configs to hide items from the UI. In these cases, pointing users to Feature Controls, if available for that plugin, might be a good option. Alternatively, some plugins have other config options that could be used instead. e.g., index_lifecycle_management has a ui.enabled setting which users might prefer to configure.

The purpose of this meta issue is to track the list of affected plugins so that teams can determine whether it is possible to provide their users with a better upgrade experience and link any relevant issues/PRs here.

How to customize your deprecation message

export const config: PluginConfigDescriptor = {
  schema: configSchema,
  deprecations: ({ deprecate }) => [
-    deprecate('enabled', '8.0.0'),
+    (settings, fromPath, addDeprecation, { branch }) => {
+      if (settings?.xpack?.myplugin?.enabled !== undefined) {
+        addDeprecation({
+          documentationUrl: `https://www.elastic.co/guide/en/kibana/${branch}/foo.html`,
+          title: i18n.translate('...', { defaultMessage: 'something is deprecated' }),
+          message: i18n.translate('...', { defaultMessage: 'my message' }),
+          correctiveActions: {
+            manualSteps: [
+              i18n.translate('...', { defaultMessage: 'Do a thing' }),
+              i18n.translate('...', { defaultMessage: 'Do another thing' }),
+            ],
+          },
+        });
+      }
+    },
  ],
};

List of affected plugins by team

Instructions: Next to each plugin you own, please link to any PRs/issues related to improving your deprecations, and check the box to indicate you have completed this review for your plugin. If you determine no action is necessary, please check the box anyway to confirm that you have reviewed this.

@elastic/apm-ui

@elastic/enterprise-search-frontend

  • x-pack/enterprise_search

@elastic/fleet

  • x-pack/fleet

@elastic/kibana-alerting-services #114190

  • x-pack/actions
  • x-pack/alerting
  • x-pack/event_log
  • x-pack/stack_alerts
  • x-pack/task_manager

@elastic/kibana-app

  • charts
  • discover
  • vis_default_editor
  • visualizations
  • visualize
  • x-pack/graph
  • x-pack/lens

@elastic/kibana-app-services

  • bfetch
  • embeddable
  • embeddable_enhanced
  • expressions
  • field_formats
  • index_pattern_editor
  • index_pattern_field_editor
  • index_pattern_management
  • inspector
  • kibana_react
  • kibana_utils
  • management
  • navigation
  • screenshot_mode
  • share
  • ui_actions
  • url_drilldown
  • url_forwarding
  • xpack.runtime_fields
  • xpack.ui_actions_enhanced

@elastic/kibana-core

  • advanced_settings
  • kibana_overview
  • kibana_usage_collection
    • not necessary as disabling telemetry will already prevent sending usage
  • saved_objects
  • saved_objects_management
  • saved_objects_tagging_oss
  • telemetry_collection_manager
    • not necessary as this is handled by disabling telemetry
  • telemetry_collection_xpack
    • not necessary as this is handled by disabling telemetry
  • telemetry_management_section
    • not necessary as this is handled by disabling telemetry
  • x-pack.translations
  • x-pack/cloud
    • primary consumer is cloud, no changes needed
  • x-pack/saved_objects_tagging
  • xpack.global_search_bar
  • xpack.global_search_providers
  • xpack/features

@elastic/kibana-gis

  • x-pack/maps

@elastic/kibana-presentation

  • expression_error
  • expression_image
  • expression_metric
  • expression_repeat_image
  • expression_reveal_image
  • expression_shape
  • input_control_vis
  • presentation_util
  • x-pack/dashboard_mode
  • xpack.canvas
  • xpack.dashboardEnhanced

@elastic/kibana-security

@elastic/kibana-stack-management

@elastic/logs-metrics-ui

  • xpack.uptime
  • x-pack/infra

@elastic/ml-ui

  • data_visualizer
  • file_upload
  • xpack.ml
  • xpack.transform

@elastic/observability-ui

  • x-pack/observability

@elastic/security-asset-management

  • x-pack/osquery

@elastic/security-detections-response

  • x-pack/lists
  • x-pack/metrics_entities
  • x-pack/rule_registry

@elastic/security-solution

  • x-pack/security_solution

@elastic/security-threat-hunting

  • x-pack/cases
  • x-pack/timelines

@elastic/stack-monitoring-ui

  • x-pack/monitoring

cc @elastic/kibana-stack-management

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions