Skip to content

By default, a plugin should not be disable-able #89584

@stacey-gammon

Description

@stacey-gammon

In an effort to create a more stable and well-tested architecture, starting in 8.0 we will require every plugin to explicitly opt-in to the ability to be disabled via the yml config file.

We have many small plugins that were not built with this capability in mind, and we don't test all of the possible permutations. Moving forward, we want developers to intentionally choose this feature for their plugin.

To make a plugin disable-able, you add an enabled setting in your plugin's config:

// myplugin/server/index.ts
export const config = {
  schema: schema.object({
    enabled: schema.boolean({ defaultValue: true }),
  }),
};

Plugins without enabled in their config will be turned on by default and cannot be disabled in the Kibana yml config or cli.

Plugins without any config schema implicitly have enabled added, however we will be removing this in 8.0.

Here is a list of plugins which currently specify an enabled config. We believe the vast majority of these do not have a strong need to support disabling. However, if you own a plugin listed below and you believe it should support disabling, please add a yes to the table.

Additionally, if you own a plugin which isn't on this list because it doesn't have a config schema (as in Josh's list below), please speak up if you are relying on enabled being added to your plugin implicitly. Otherwise, your plugin will no longer be disable-able in 8.0.

Toward the end of the 7.16 dev cycle, we will open a PR removing enabled from any plugins that don't have a yes indicated below. To prepare for this update, we'd ask that folks review the affected plugins by 31 August 2021.

Plugin Owner Must be disable-able in 8.0?
apm_oss @elastic/apm-ui
console @elastic/kibana-stack-management no
interactive_setup @elastic/kibana-security yes
newsfeed @elastic/kibana-core yes
telemetry @elastic/kibana-core yes
timelion @elastic/kibana-app removed in 7.16
vis_type_markdown @elastic/kibana-presentation yes
vis_type_metric @elastic/kibana-app yes
vis_type_table @elastic/kibana-app yes
vis_type_tagcloud @elastic/kibana-app yes
vis_type_timelion @elastic/kibana-app yes
vis_type_timeseries @elastic/kibana-app yes
vis_type_vega @elastic/kibana-app yes
vis_type_vislib @elastic/kibana-app yes
vis_type_pie @elastic/kibana-app yes
x-pack/actions @elastic/kibana-alerting-services no
x-pack/alerting @elastic/kibana-alerting-services no
x-pack/apm @elastic/apm-ui
x-pack/cases @elastic/security-threat-hunting
x-pack/cloud @elastic/kibana-core no
x-pack/cross_cluster_replication @elastic/kibana-stack-management no
x-pack/dashboard_mode @elastic/kibana-presentation no
x-pack/encrypted_saved_objects @elastic/kibana-security no
x-pack/enterprise_search @elastic/enterprise-search-frontend no
x-pack/event_log @elastic/kibana-alerting-services no
x-pack/fleet @elastic/fleet no
x-pack/graph @elastic/kibana-app no
x-pack/grokdebugger @elastic/kibana-stack-management no
x-pack/index_lifecycle_management @elastic/kibana-stack-management no
x-pack/index_management @elastic/kibana-stack-management no
x-pack/infra @elastic/logs-metrics-ui no
x-pack/lens @elastic/kibana-app no
x-pack/license_management @elastic/kibana-stack-management no
x-pack/lists @elastic/security-detections-response
x-pack/logstash ?
x-pack/maps @elastic/kibana-gis no
x-pack/metrics_entities @elastic/security-detections-response (?)
x-pack/monitoring @elastic/stack-monitoring-ui no
x-pack/observability @elastic/observability-ui no
x-pack/osquery @elastic/security-asset-management no
x-pack/remote_clusters @elastic/kibana-stack-management no
x-pack/reporting @elastic/kibana-app-services yes
x-pack/rollup @elastic/kibana-stack-management no
x-pack/rule_registry @elastic/security-detections-response (?) no
x-pack/saved_objects_tagging @elastic/kibana-core no
x-pack/security @elastic/kibana-security no
x-pack/security_solution @elastic/security-solution
x-pack/snapshot_restore @elastic/kibana-stack-management no
x-pack/spaces @elastic/kibana-security no
x-pack/stack_alerts @elastic/kibana-alerting-services no
x-pack/task_manager @elastic/kibana-alerting-services no
x-pack/timelines @elastic/security-threat-hunting
x-pack/upgrade_assistant @elastic/kibana-stack-management no

Metadata

Metadata

Assignees

Labels

Breaking ChangeTeam:CorePlatform Core services: plugins, logging, config, saved objects, http, ES client, i18n, etc t//v8.0.0

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions