elastic / elastic/package-spec
[Change Proposal] Allow configuration of "featured integrations" on a per-category basis
- Dominant language
- Go
- Stars
- 20
- Forks
- 93
- Avg merge
- 15h 10m
- Merged PRs (30d)
- 12
Description
## Goals
Allow Kibana to render a dynamic set of "featured integrations" in the Integrations UI based on the currently selected category.

Currently, these featured categories are hardcoded in Kibana, which results in potentially featuring irrelevant integrations based on specific onboarding flows. For example, if a user goes through a guided onboarding process and indicates that they're interesting in logging custom data, we'd like to be able to land them on this page with the `custom` category pre-selected and a curated set of featured integrations.
The data around what integrations are featured in a given category should be present in the API endpoint here: https://epr.elastic.co/categories.
## Proposed Implementation
Support for a top-level `categories.yml` file that allows for defining featured integrations for a given category, e.g.
```yaml
categories:
- custom:
featured_integrations:
- log
- httpjson
- aws_logs
```
When the data for the `/categories` API is generated, we should check the `categories.yml` file for a corresponding category after deriving the list of categories from all packages. For each category in the resulting JSON object, we should also include an array of strings containing its `featured_integrations` value if one exists.
Integrations UI will only render the first **three** integrations featured here, and if there are less than three then Integrations UI should still handle presenting the featured integrations in a reasonable design. Integrations UI will also handle cases where a featured integration does not actually exist, etc. We don't need advanced linting here limit the length of the featured list or expect only valid package names, but it could be nice to have.
Contributor guide
Assessment
This issue has not been assessed yet.