elastic / package-spec

EPR package specifications
Other
17 stars 71 forks source link

Initial definition of content pack[age]s #777

Closed jsoriano closed 3 weeks ago

jsoriano commented 2 months ago

What does this PR do?

Add the initial definition for content packages.

On this initial version, they only support the distribution of kibana assets, like dashboards.

This package type introduces a discovery mechanism based on the data the package can work with. For example the following definition would indicate that the package provides resources that are useful when used with data that includes the field process.pid:

discovery:
  fields:
    - name: "process.pid"

The package registry could add support to look for packages that have support for certain fields. For example a request like the following one could be used to discover packages that include resources that can leverage the process.pid or the user.id fields.

GET /search?discovery=fields:process.pid,user.id

Why is it important?

There are some use cases where developers want to distribute resources that can be useful with some data, without coupling them to the mechanism used to collect this data. These resources could be for example dashboards that can be used with data collected with other integrations or even with other agents as the OTEL collector.

Paves the foundations for the use cases described in https://github.com/elastic/package-spec/issues/351.

Checklist

Related issues

jsoriano commented 3 weeks ago

Opening for review so we can start testing it.

elasticmachine commented 3 weeks ago

:green_heart: Build Succeeded

History

cc @jsoriano