## Summary
Fixes https://github.com/elastic/kibana/issues/166103
This PR implements the logic to render summaries added via the extension
service on the new index details page. Currently, only the ILM plugin
registers a summary for an index. The extension service will probably be
refactored when working on
https://github.com/elastic/kibana/issues/165107.
I needed to convert the component `IndexLifecycleSummary` from the class
component to the function component. Otherwise there were errors while
rendering the page and I was not able to check for `null` to not render
an empty card.
### Screenshots
#### When no ILM info or ILM plugin is disabled (no changes to the
Overview tab)
<img width="1029" alt="Screenshot 2023-09-19 at 18 51 14"
src="1f619580-415a-4704-befc-a75a3a37efe6">
#### When there is ILM policy
<img width="1027" alt="Screenshot 2023-09-19 at 18 51 32"
src="05105dbf-e6ca-4a1d-ae53-bd42ec030974">
Resolves https://github.com/elastic/kibana/issues/166770
## Summary
The test was failing for this reason: "illegal_argument_exception: can't
merge a non object mapping [ruleInfo.actions] with an object mapping". I
switched to es query rule so that we can use ESTestIndexTool that
defines a mapping for the es test index.
### Checklist
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
### To verify
Run the functional test runner with the following command and verify it
passes:
```
ES_SNAPSHOT_MANIFEST="20230919-155242_b9970223/manifest.json" node scripts/functional_tests_server.js --config x-pack/test/alerting_api_integration/spaces_only/tests/actions/config.ts
```
## Summary
Closes#166580
To avoid confusion, rename any usages of ESS because it has been
established to represent Elastic Cloud and there are situations where ES
serverless and Elastic Cloud can be used within the same context.
## Summary
Closes#166543
- It is counterintuitive to `CTRL + C` from the `yarn es serverless`
process and the cluster is still running. This has caused issues when
switching between stateful and serverless work flows for some
developers. This PR inverts the logic to always teardown the cluster
unless a flag is passed.
- Small docs update for changing ES memory allocation on all operation
systems.
- Fixes bug were cluster status would continue looping after `SIGINT`.
- Bind to `SIGINT` earlier so nodes are always killed
## Summary
Closes#163830
This adds server side validation to enforce dataset name format rules
for custom integrations. It then enhances the custom integrations Kibana
package to handle this seamlessly in the create form.
There is no client side validation for the rules per se because as long
as the dataset name passes other validations (length etc) then it is
always valid - it just comes down to whether it's prefixed or not.
## Other notes
- Added a "fields pipeline" to improve the readability of the context
update.
## UI / UX changes
- Users are informed when a prefix will be added.
<img width="886" alt="Screenshot 2023-09-20 at 13 19 49"
src="764d2bd0-03ef-40ce-8dae-107079c15feb">
- If the integration name has been touched, and the dataset name is
untouched, the dataset name will automatically match the integration
name.

---------
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
## Summary
Fixes#166079.
If a user picked a saved search to investigate, the log pattern analysis
page would freeze with an infinite render loop; the log rate analysis
pate wouldn't freeze but repeatedly query for new data.
This PR fixes the issue by memoizing the queries derived from the saved
search information to avoid it being a new instance every time.
### Checklist
- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
Adds a new `managed` mode to Dashboards. When a user with write permissions opens a managed Dashboard they will be unable to hit the `edit` button - and will instead be prompted to clone the Dashboard first.
**Related to:** https://github.com/elastic/kibana/issues/161540, https://github.com/elastic/kibana/issues/161539
## Summary
Always force the last breadcrumb to be inactive.
## Details
Usual UX expects the last breadcrumb to be inactive as it represents the current page. The same can be seen from EUI [examples](https://eui.elastic.co/#/navigation/breadcrumbs). It turns out Serverless Security Solution plugin does't remove `href` and `onClick` fields from the last breadcrumb and passes it to `chrome.setBreadcrumbs()` or `serverless.setBreadcrumbs()` which renders the last breadcrumb as active but clicking on it only refreshes the page. ESS Security Solution on the other hand processes breadcrumbs currently. The same behavior may be the case for the other plungs as well.
As it's much simpler to strip off undesired fields at one place instead of processing them in plugins it's done in `packages/core/chrome/core-chrome-browser-internal/src/ui/header/header_breadcrumbs.tsx`. Security Solution codebase has been updated accordingly.
A side effect of this PR is consistent ESS and Serverless breadcrumbs behavior and it will help to reuse ESS tests for Serverless.
## Summary
This PR prepares further work on the timeline-saving-related components.
As a first step we're only renaming the components to make it easier to
reason about their function.
> `SaveTimelineButton` -> `EditTimelineButton`:
We might have a dedicated `save` button more prominently in the UI in
the near future. The former "save" button actually opened up a modal
with the `edit` form. In cypress tests, the component was already
referred to as the `edit` button.
> `TimelineTitleAndDescription` -> `EditTimelineModal`:
The original name did not make it clear that it's actually a form in a
modal.
### Checklist
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
Switches to using the serverless config file to enabled/disable ML
features rather than a function shared from the setup contract.
Storing these flags in a config file means they are already available
when setup runs and so can be used when registering integrations into
other plugins.
Removes the dependency on ML from `security_solution_serverless`,
`serverless_observability` and `serverless_search`
Closes https://github.com/elastic/kibana/issues/45931
PR updates bsearch service to return request params from
elasticsearch-js client requests. This provides inspector with the exact
details used to fetch data from elasticsearch, ensuring inspector
displays request exactly as used by elasticsearch-js client.
**ESQL** This PR makes it possible to open ESQL searches in console.
<img width="500" alt="Screen Shot 2023-09-16 at 4 19 58 PM"
src="56019fb5-ca88-46cf-a42f-86f5f51edfcc">
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
Fixes https://github.com/elastic/kibana/issues/165844
Partially addresses https://github.com/elastic/kibana/issues/122577
This PR fixes the inconsistency with breadcrumbs in Index Management.
Previously, the breadcrumbs were updated only when an index template or
a component template was being created/edited. This PR adds breadcrumbs
for each of 4 main tabs: indices, data streams, index templates,
component templates. It also adds breadcrumbs for the new index details
page.
**Note for reviewers:** Tabs "Documents" and "Pipelines" on the new
index details page will not be implemented for now, so there are no
breadcrumbs for them.
**Note for copy review**: This PR can be reviewed only in terms on
breadcrumbs in Index Management. The copy review for the new index
details page can be done in this
[PR](https://github.com/elastic/kibana/pull/165705).
### Screenshots
#### Indices list
Breadcrumbs "Indices"
<img width="1318" alt="Screenshot 2023-09-07 at 17 22 56"
src="1a670df6-b0b2-4272-b7ec-e50719884ad8">
#### Index details - overview tab
Breadcrumbs "Indices" (link) => "Index details" -> "Overview"
<img width="1130" alt="Screenshot 2023-09-08 at 17 20 45"
src="87b75a2c-d3e2-454d-8ad5-979feb3dc8a5">
#### Index details - mappings tab
Breadcrumbs "Indices"(link) -> "Index details" -> "Mappings"
<img width="1319" alt="Screenshot 2023-09-07 at 17 23 53"
src="d42baf78-9133-4c87-bdbd-1aedad119e62">
#### Index details - settings tab
Breadcrumbs "Indices"(link) -> "Index details" -> "Settings"
<img width="1305" alt="Screenshot 2023-09-07 at 17 24 00"
src="bf94497c-4ca3-413c-be57-37499c0839ba">
#### Index details - stats tab
Breadcrumbs "Indices"(link) -> "Index details" -> "Stats"
<img width="1300" alt="Screenshot 2023-09-07 at 17 24 12"
src="c1798ac2-7169-4bfe-8732-ed3f8e6d812e">
#### Data streams
Breadcrumbs "Data streams"
<img width="1319" alt="Screenshot 2023-09-07 at 17 23 03"
src="f4d0230e-994f-4537-a43d-065d364ffc7c">
#### Index templates
Breadcrumbs "Templates"
<img width="1319" alt="Screenshot 2023-09-07 at 17 23 10"
src="610c609c-1213-4388-9c73-68711c2c4bb6">
#### Component templates
Breadcrumbs "Component templates"
<img width="1303" alt="Screenshot 2023-09-07 at 17 23 28"
src="4f90eadb-a409-4e53-84f0-92b5f40b7639">
### Checklist
- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## 📓 Summary
Closes#165217
This work implements a new extension point in the Discover customization
framework to allow customizing the flyout content. Although it enables
customizing only the actions displayed on top, it could be enhanced for
additional flyout customizations in the future.
To keep it simple and familiar to other customizations, it relies on a
similar API as the `top_nav` customization, allowing one to disable
default actions and insert additional ones.
```ts
/**
* Hide flyout actions to prevent rendering hard-coded actions.
*/
customizations.set({
id: 'flyout',
actions: {
defaultActions: {
viewSingleDocument: { disabled: true },
viewSurroundingDocument: { disabled: true },
},
},
});
```
## 🧪 Testing
- Navigate to `/app/observability-log-explorer` and expand the flyout
for any grid entry.
The actions on top of the flyout should not be displayed, only the title
and the pagination control should appear.
- Navigate to `/app/discover` and expand the flyout for any grid entry.
The actions for viewing a single documents or surrounding documents
should be displayed.
---------
Co-authored-by: Marco Antonio Ghiani <marcoantonio.ghiani@elastic.co>
## 📓 Summary
Closes#166056
This PR adds a new override to the `uiSetting` service, allowing it to
override specific UI preferences.
In this case, we'll overwrite the `hideAnnouncements` preference to be
true, so that discover-specific announcements won't be displayed for the
Log Explorer app.
50dade20-1902-4f4a-8615-3e1f7a964522
---------
Co-authored-by: Marco Antonio Ghiani <marcoantonio.ghiani@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## 📓 Summary
**Main task**
Closes#165309
**Skipped tests fixes**
Closes#165839Closes#165520Closes#166494
This work refactors the UX for browsing integrations and uncategorized
datasets.
fadbf952-5a03-4747-b68a-29ed7e864120
## 💡 Review hints
- To reflect the UI changes, the Dataset selector state machine has been
updated as described by the chart attached.
The main difference consists of new events to navigate between tabs and
a nested history state, to keep both track of the last opened tab and,
for the integration tab, of the latest panel.
<img width="1531" alt="Screenshot 2023-09-07 at 14 26 21"
src="12da24e8-8300-4788-8382-71a4cf9748c8">
## 🧪 Tests suite
With the test updates to match the new UI, the selector tests suite now
is:
```
↳ Observability Log Explorer
↳ Dataset Selector
↳ as consistent behavior
↳ should always display the Integrations and Uncategorized top level tabs
↳ should always display the "Show all logs" action
↳ when open on the integrations tab
↳ should display an error prompt if could not retrieve the integrations
↳ should display an empty prompt for no integrations
↳ when open on the uncategorized tab
↳ should display a loading skeleton while loading uncategorized datasets
↳ should display an error prompt if could not retrieve the datasets
↳ should display an empty prompt for no uncategorized data streams
↳ with installed integrations and uncategorized data streams
↳ when open on the integrations tab
↳ should display a list of installed integrations
↳ should sort the integrations list by the clicked sorting option
↳ should filter the integrations list by the typed integration name
↳ should display an empty prompt when the search does not match any result
↳ should load more integrations by scrolling to the end of the list
↳ clicking on integration and moving into the second navigation level
↳ should display a list of available datasets
↳ should sort the datasets list by the clicked sorting option
↳ should filter the datasets list by the typed dataset name
↳ should update the current selection with the clicked dataset
↳ when open on the uncategorized tab
↳ should display a list of available datasets
↳ should sort the datasets list by the clicked sorting option
↳ should filter the datasets list by the typed dataset name
↳ should update the current selection with the clicked dataset
↳ when open/close the selector
↳ should restore the latest navigation panel
↳ should restore the latest search results
↳ when switching between tabs or integration panels
↳ should remember the latest search and restore its results
```
---------
Co-authored-by: Marco Antonio Ghiani <marcoantonio.ghiani@elastic.co>
Closes#164998
It seems the final agent is not loading correctly sometimes, we do
`wait_for` when we create the agents so it is a bit strange.
I have added a check that all agents are created before the test, if the
y are not loaded then I log all the agents so this will help us diagnose
any further flakiness better.
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
## Summary
This PR removes the `systemIndicesSuperuser` auth in the `esSupertest`
service for serverless test runs, adds `certificateAuthorities` to the
Elasticsearch server config in serverless and adds a tiny test to verify
functionality of this fix.
### Details
Issues before this PR when using the `esSupertest` service in serverless
tests (can be reproduced by running the added `elasticsearch_api` test
without the supertest and config changes):
1. Running against a local `functional_tests_server`, `esSupertest`
produces an error: `Error: self-signed certificate in certificate chain`
2. Running against an MKI project produces an error: `unable to
authenticate user [system_indices_superuser] for REST request [/]`,
because the `system_indices_superuser` doesn't exist in MKI.
How this PR addresses the issues:
1. Add `certificateAuthorities` to `servers.elasticsearch` in
`x-pack/test_serverless/shared/config.base.ts` in the same way we
already have it for `servers.kibana`
2. Modify the `esSUpertest` service to not override the default ES auth
when running in serverless, instead go with the default auth (regular
superuser), which is the best we can get.
### Additional information
It has been considered to add a serverless specific version of
`esSupertest` in order to avoid the `config.get('serverless') ?` code.
The fact that a number of stateful services are planned to be re-used in
serverless and rely on `esSupertest` in combination with the very small
change in a central service made it seem worth to make an exception
here.
Note that service methods or tests that use `esSupertest` can still run
into issues on serverless if they actually try to modify system indices.
This should be avoided anyways and particularly for serverless tests.
This PR is aiming to fix the problem we have when interacting with fleet
### Before
<img width="1186" alt="image"
src="ea7cd2b4-1867-4644-8c13-3635952c425c">
### After
<img width="1115" alt="image"
src="9261b8b2-e2d8-4af3-8280-4be75c758d80">
Fixes#166773
## Summary
Fixes a bug where panels are not showing descriptions from library
items.
Changes the panel to use the `embeddable.getDescription` method for
retrieving the description. This is necessary since by-reference panels
can store descriptions in the saved object. `getDescription` will check
for a description in the saved object attributes, but the panel
description will still take precedence. This is very similar to how we
get the panel title.