What problem the proposal is solving?
Dashboard from different packages should be able to have the same saved object tag applied without creating multiple saved object tags that have the same name/description/color but different IDs.
Where the solution will need to be implemented?
Package-spec should support specifying tags with text and asset_types or asset_ids in the package manifest:
# integration/manifest.yml
tags:
- text: SecurityExternalIntegrations
asset_types:
- dashboard
- text: ThreatDetectionDashboard
asset_ids:
- dashboard3
- dashboard4
These tags will be created by Fleet during package installation time.
Related Issues
Original description
## Proposal
Allow an optional list of tags to be specified in the package's manifest.yml that are to be applied to all dashboards contained in the integration.
# manifest.yml
dashboard:
tags:
- name: Threat Intel # Required
color: '#FFFFFF' # Required
description: Relates to security threat intelligence data. # Optional
What problem the proposal is solving?
Dashboard from different packages should be able to have the same saved object tag applied without creating multiple saved object tags that have the same name/description/color but different IDs.
Today, it is not possible to apply the same saved object tag across multiple packages. This is because the package-spec requires 1 that all object ID's begin with the package name. This prevents using the same object ID for a tag across multiple packages. There is a good reason to prevent object ID collisions between packages -- it allows for clear ownership of the object such that it can be upgraded or removed with the owning package.
By shifting responsibility of tag creating into Fleet it should be possible for Fleet to reuse the existing tag object when the name, description, and color match. This greatly improves the user experience within Kibana since there will be fewer (or none) tags with the same name. This screenshot shows what happens today if multiple packages create a tag with the same name.
Where the solution will need to be implemented?
Fleet (the part in Kibana) will need to be updated to create tags and add them to dashboards. If the saved object ID for the tags is derived from the name, color, and description attributes then it can ensure that only one saved object exists with those attributes (e.g. fleet-tag-<hash(name, color, description)>).
Related Issues
What problem the proposal is solving?
Dashboard from different packages should be able to have the same saved object tag applied without creating multiple saved object tags that have the same name/description/color but different IDs.
Where the solution will need to be implemented?
Package-spec should support specifying
tagswithtextandasset_typesorasset_idsin the package manifest:These tags will be created by Fleet during package installation time.
Related Issues
Original description
## ProposalAllow an optional list of tags to be specified in the package's
manifest.ymlthat are to be applied to all dashboards contained in the integration.What problem the proposal is solving?
Dashboard from different packages should be able to have the same saved object tag applied without creating multiple saved object tags that have the same name/description/color but different IDs.
Today, it is not possible to apply the same saved object tag across multiple packages. This is because the package-spec requires 1 that all object ID's begin with the package name. This prevents using the same object ID for a tag across multiple packages. There is a good reason to prevent object ID collisions between packages -- it allows for clear ownership of the object such that it can be upgraded or removed with the owning package.
By shifting responsibility of tag creating into Fleet it should be possible for Fleet to reuse the existing tag object when the name, description, and color match. This greatly improves the user experience within Kibana since there will be fewer (or none) tags with the same name. This screenshot shows what happens today if multiple packages create a tag with the same name.
Where the solution will need to be implemented?
Fleet (the part in Kibana) will need to be updated to create tags and add them to dashboards. If the saved object ID for the tags is derived from the name, color, and description attributes then it can ensure that only one saved object exists with those attributes (e.g.
fleet-tag-<hash(name, color, description)>).Related Issues
Footnotes
https://github.com/elastic/package-spec/blob/40b2a04971e90c59f651044a4c396e3fdde39817/code/go/internal/validator/semantic/validate_kibana_matching_object_ids.go#L19-L23 ↩