* initial draft * move components to their own files * create services folder and move tags package * add assignment service * fix some types * prepare assign tag route * move server-side tag client under the `services` folder * add security check, move a lot of stuff. * design improvements * display tags in flyout * improve button and add notification on save * add action on tag rows * fix types * fix mock import paths * add lens to the list of assignable types * update generated doc * add base functional tests * move api to internal * add api/security test suites * add / use get_assignable_types API * fix feature control tests * fix assignable types propagation * rename actions folder to bulk_actions * extract actions to their own module * add common / server unit tests * add client-side assign tests * add some tests and tsdoc * typo * add getActions test * revert width change * fix typo in API * various minor improvements * typo * tsdoc on flyout page object * close flyout when leaving the page * fix bug when redirecting to SO management with a tag having whitespaces in its name * check for dupes in toAdd and toRemove * add lazy load to assign modal opener * add lazy load to edit/create modals * check if at least one assign or unassign tag id is specified * grammar * add explicit type existence check
1.5 KiB
1.5 KiB
SavedObjectsTagging
Add tagging capability to saved objects
Integrating tagging on a new object type
In addition to use the UI api to plug the tagging feature in your application, there is a couple things that needs to be done on the server:
Add read-access to the tag
SO type to your feature's capabilities
In order to be able to fetch the tags assigned to an object, the user must have read permission
for the tag
saved object type. Which is why all features relying on SO tagging must update
their capabilities.
features.registerKibanaFeature({
id: 'myFeature',
// ...
privileges: {
all: {
// ...
savedObject: {
all: ['some-type'],
read: ['tag'], // <-- HERE
},
},
read: {
// ...
savedObject: {
all: [],
read: ['some-type', 'tag'], // <-- AND HERE
},
},
},
});
Update the SOT telemetry collector schema to add the new type
The schema is located here: x-pack/plugins/saved_objects_tagging/server/usage/schema.ts
. You
just need to add the name of the SO type you are adding.
export const tagUsageCollectorSchema: MakeSchemaFrom<TaggingUsageData> = {
// ...
types: {
dashboard: perTypeSchema,
visualization: perTypeSchema,
// <-- add your type here
},
};
Update the taggableTypes
constant to add your type
Edit the taggableTypes
list in x-pack/plugins/saved_objects_tagging/common/constants.ts
to add
the name of the type you are adding.