kibana/x-pack/plugins/serverless
Anton Dosov d91fe9fc92
[Serverless] Improve breadcrumbs in management (#166259)
## Summary

Close https://github.com/elastic/kibana/issues/164507

This PR improves management breadcrumbs in serverless project.

![Screenshot 2023-09-13 at 16 45
28](97f9dd25-aeed-468b-8ea6-9ffa66ce14d0)

- **Management**: I removed dependency from serverless -> management.
details:
https://github.com/elastic/kibana/pull/166259#discussion_r1324412333
- **Search**: Search project links directly to some management sub-apps
from the side nav. In some cases I hid the breadcrumb that comes from
the navigation config to avoid duplication: for example there was`Index
Management > Index Management` where the first came from the nav and the
second from the management sub-app.
- **Security**: For security I disabled setting management sub-app
breadcrumbs from the navigation config as they are set from the apps.
This allows for deeper breadcrumbs, beyond just nav.
https://github.com/elastic/kibana/pull/166259#discussion_r1324411585
2023-09-19 13:51:09 +02:00
..
assets
common
public [Serverless] Improve breadcrumbs in management (#166259) 2023-09-19 13:51:09 +02:00
server [Advanced settings] Add settings allowlist (#164471) 2023-09-11 21:12:53 +01:00
jest.config.js [Advanced settings] Add settings allowlist (#164471) 2023-09-11 21:12:53 +01:00
kibana.jsonc [Serverless] Improve breadcrumbs in management (#166259) 2023-09-19 13:51:09 +02:00
package.json
README.mdx
tsconfig.json [Serverless] Improve breadcrumbs in management (#166259) 2023-09-19 13:51:09 +02:00

---
id: serverless/plugin
slug: /serverless/plugin
title: Serverless Plugin
description: The plugin responsible for managing Serverless settings and providing services to all product serverless plugins.
tags: ['serverless', 'plugin']
date: 2023-04-23
---

![diagram](./assets/diagram.png)

a. `serverless.yml` config enables Serverless plugin, provides settings for *all* projects, (e.g. disabling Reporting).

b. Product-specific `yml` file enables corresponding Project plugin, provides settings for a specific project, (e.g. disabling Observability).

c. Project plugin interacts with Serverless plugin to customize Serverless Kibana.

d. Serverless plugin interacts with Kibana Core to customize Classic Kibana.

e. Project plugin interacts with corresponding Solution plugin to customize the Solution experience for Serverless.

Communication occurs in a *single direction*. While it would be tempting to add a global flag to check if Serverless is enabled, doing so short-circuits the "affecting" model.