Enable merging saved objects with the same origin #130311
Labels
enhancement
New value added to drive a business result
Feature:Saved Objects
Feature:Security/Sharing Saved Objects
Platform Security - Sharing Saved Objects feature
Team:Core
Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc
Team:Security
Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!
This issue describes a topic of shared responsibility between the Platform Security and Core teams, however it feels like a bit more of a Platform Security responsibility due to the Spaces aspect.
Background
When we introduced Spaces, "isolated" saved objects did not need to have a globally unique ID -- the object ID only had to be unique within a single space. This inadvertently introduced the behavior that objects that are copied to different spaces retain the same "origin" because they had the same ID. When copying or importing an object, you would always overwrite a conflicting object that had the same origin. For example, a user could take the following steps:
After all of this, you'd be left with three identical objects in spaces A, B, and C.
When we introduced shareable and share-capable saved objects, we formalized this concept with a new saved object field,
originId
. These shareable and share-capable objects must have globally unique IDs, so if they are imported/copied to a different space, the new object's ID is regenerated -- but the object's origin (its old ID) is still retained in theoriginId
field to preserve the old import/copy behavior.Starting in the 8.2 release, data views are shareable, and more existing object types will be made shareable in the near future (#128907). However, we identified a need to implement a restriction so that users cannot share an object to a space if another object with that origin already exists in that space (#127054).
This restriction will introduce friction in the "assign to spaces" UX (sharing saved objects UX), but for good reason -- to protect users from getting Kibana into a state where different URLs conflict with one another. However, the restriction will be presented at "assign time", and it won't be actionable at first. In the example above, if you want to change the space assignment for the object in space A, Kibana will prevent you from adding it to space B or space C, because the object had previously been copied there.
Describe the feature
To address this friction, we envision that users will want the ability to "merge" multiple objects with the same origin. This can be a complex undertaking:
Describe a specific use case for the feature
The text was updated successfully, but these errors were encountered: