Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Adding metadata attributes to the savedObject interface #4553

Open
YANG-DB opened this issue Jul 12, 2023 · 3 comments
Open

[Feature] Adding metadata attributes to the savedObject interface #4553

YANG-DB opened this issue Jul 12, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@YANG-DB
Copy link
Member

YANG-DB commented Jul 12, 2023

Is your feature request related to a problem? Please describe.
When I create a dashboard, I would like to associate it with multiple aspects:

  • Service name it is related to
  • Environment type its monitoring
  • Metrics it may be associated with
  • Schema categories its using ( Observability / Security / E-commerce)

I would like to do this in the most generic and dynamic way so that future usage may by possible without limitation or code changes.
This generic labels (tags) mechanisms are very common in other dashboards like tools and utilities so that user can have a generic way of filtering / associating different dynamic notions without the need to explicitly write code...

Describe the solution you'd like

Adding metadata fields attribute list to the savedObject for the purpose of association of different labels and tags for any saved objects.

Using the existing SavedObjectsType and extending its interface with the generic metadata attribute list

Additional context

  • see interface SavedObjectsType within src/core/server/saved_objects/types.ts
@YANG-DB YANG-DB added the enhancement New feature or request label Jul 12, 2023
@ashwin-pc
Copy link
Member

@YANG-DB thanks for opening this issue. Any service/plugin is free to create their own saved objects and saved object relationships are already a thing, did you consider just creating a new metadata saved object thats related to the dashboards saved object to store all this information? saved objects are already metadata that the plugin needs to function. If these tags are also going to be used by the same plugin to function, we can surely expand them, but if they are used strictly by other plugins, its better to make a separate saved object to store that information using relationships.

That being said this is an interesting idea and would like to know more about what you are trying to achieve here. Is there a specific problem that you are trying to solve for which this is a general solution?

@YANG-DB
Copy link
Member Author

YANG-DB commented Jul 19, 2023

@ashwin-pc: labels / tagging enable you to organize your dashboards and other saved objects into meaningful categories. Once tagged you can filter only the dashboards and saved objects that belong to that tag.

Numerous use cases:

  • users own domain spaces
  • custom associated dashboards with respect to different subjects
  • correlation between organization structure and their tagging policy

Existing Plugins use case:

  • Observability use cases: dashboards associated with a specific service
  • Security use cases: dashboards associated with a Threat type

@ashwin-pc
Copy link
Member

Nice! yep that makes sense. Why extend SavedObjectsType instead of just adding it as an additional property to existing saved object though? Also is it an optional property? cause if its not it might be a breaking change to the exiting saved object definitions that dont have this property defined.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants