kibana/x-pack/plugins/saved_objects_tagging/README.md
Pierre Gayvallet 446390d86a
Add bulk assign action to tag management (#84177)
* 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
2020-12-07 11:18:43 +01:00

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.