- Removes old flamegraph code replacing it with the ES Flamegraph API
- Creates new user settings
- Adds a feature flag to use the kibana CO2/Cost calculations instead of
the new version
- Reads CO2 and Cost from /Stacktraces and /Flamegraph APIs
Where do we show the CO2 and Cost values?
- Flamegraph toolip
- Flamegraph Frame information flyout
- Diff Flamegraph Summary
- Functions table
- Function information flyout
- Diff Functions Summary
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
Using the docLinks service means documentation links will always point
to the correct version of the docs for the current Kibana version, not
just the latest docs.
---------
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
## Summary
We offer two variants for each curated (ELSER and E5) ML models:
- Cross-platform (e.g. model ID `.elser_model_2`)
- Linux-optimized (e.g. `.elser_model_2_linux-x86_64`)
This PR adds some logic to filter these curated models to the proper
variants in the pipeline configuration -> model selection list, so that
for these models only those are shown that are compatible with the
current platform's architecture.
Manually tested on a Mac M1:
* All available trained models:
<img width="1375" alt="Screenshot 2023-12-01 at 15 41 51"
src="ace1850a-ed33-48f5-ac98-8dfadff9b5ef">
* Model selection list only shows the cross-platform variants
<img width="1226" alt="Screenshot 2023-12-01 at 15 42 15"
src="f5d6dea2-ed4e-4ad2-9c5d-2f3dcbe5fd92">
* If we temporarily override the ML client's call to tag the Linux
variants as compatible, then those variants show up in the list instead
<img width="1219" alt="Screenshot 2023-12-01 at 15 48 00"
src="987e47f7-3186-47ed-baf0-550e9680a967">
* I also tested that the Deploy and Start buttons trigger the action on
the shown variant of the model (the Linux ones could not actually start
on my Mac, which is expected)
### Checklist
Delete any items that are not applicable to this PR.
- [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
## Summary
This PR adds custom rendering for each of the default Grouping
visualizations:
- #168543
- #169043
- #169044
- #169045
**It also adds:**
- Fix error handling (follow up from [this
comment](https://github.com/elastic/kibana/pull/169884#issuecomment-1824332654))
- Change the Findings page to have the Misconfiguration tab in the first
position.
- Added `size` property to the `ComplianceScoreBar` component
- Custom message for groups that don't have value (ex. No Cloud
accounts)
- Changed the sort order of grouping components to be based on the
compliance score
- Added compliance score for custom renderers
### Screenshot
Resource
<img width="1492" alt="image"
src="596f8bdb-abcc-4325-8512-23c919c727a9">
Rule name
<img width="1489" alt="image"
src="787138e3-b3b2-4e15-811a-84c583831469">
Cloud account
<img width="1490" alt="image"
src="9a48145d-dba5-4eda-bd7d-a97ed8f78a2d">
<img width="1492" alt="image"
src="399d0be0-4bc0-4090-ac20-e4b016cc4be5">
Kubernetes
<img width="1499" alt="image"
src="3745498a-969a-4769-b4ae-3c932511a5a9">
Custom field:
<img width="1488" alt="image"
src="8c75535d-2248-4cf9-b1cb-9b0d318114e9">
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Fixes https://github.com/elastic/kibana/issues/160583
Test failed because combobox trying to select already selected tag. PR
fixes test by using combobox service to set element. Combobox service
includes logic to only select value when not selected.

```
[00:07:27] │ debg Find.clickByCssSelector('[data-test-subj="savedObjectTagSelector"]') with timeout=10000
[00:07:27] │ debg Find.findByCssSelector('[data-test-subj="savedObjectTagSelector"]') with timeout=10000
[00:07:27] │ debg TestSubjects.click(tagSelectorOption-tag-1)
[00:07:27] │ debg Find.clickByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:07:27] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:07:37] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:07:37] │ Wait timed out after 10003ms
[00:07:38] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:07:48] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:07:48] │ Wait timed out after 10038ms
[00:07:48] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:07:58] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:07:58] │ Wait timed out after 10054ms
[00:07:59] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:08:09] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:08:09] │ Wait timed out after 10013ms
[00:08:09] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:08:19] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:08:19] │ Wait timed out after 10038ms
[00:08:20] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:08:30] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:08:30] │ Wait timed out after 10005ms
[00:08:30] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:08:40] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:08:40] │ Wait timed out after 10034ms
[00:08:41] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:08:51] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:08:51] │ Wait timed out after 10037ms
[00:08:51] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:09:01] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:09:01] │ Wait timed out after 10007ms
[00:09:02] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:09:12] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:09:12] │ Wait timed out after 10054ms
[00:09:13] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:09:23] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:09:23] │ Wait timed out after 10037ms
[00:09:23] │ debg Find.findByCssSelector('[data-test-subj="tagSelectorOption-tag-1"]') with timeout=10000
[00:09:33] │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:09:33] │ Wait timed out after 10042ms
[00:09:34] │ debg --- retry.try error: retry.try timeout: TimeoutError: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:09:34] │ Wait timed out after 10042ms
[00:09:34] │ at /var/lib/buildkite-agent/builds/kb-n2-4-spot-ee2d6153f1c6deeb/elastic/kibana-on-merge/kibana/node_modules/selenium-webdriver/lib/webdriver.js:929:17
[00:09:34] │ at processTicksAndRejections (node:internal/process/task_queues:95:5)
[00:09:34] │ info Taking window screenshot "/var/lib/buildkite-agent/builds/kb-n2-4-spot-ee2d6153f1c6deeb/elastic/kibana-on-merge/kibana/x-pack/test/saved_object_tagging/functional/screenshots/failure/saved objects tagging - functional tests dashboard integration creating allows t-29814279444f4d298f24b012c2e451886d9c481ab2ec65240025329c4f56ba13.png"
[00:09:34] │ info Current URL is: http://localhost:5620/app/dashboards#/create?_g=(filters:!(),refreshInterval:(pause:!t,value:60000),time:(from:now-15m,to:now))
[00:09:34] │ info Saving page source to: /var/lib/buildkite-agent/builds/kb-n2-4-spot-ee2d6153f1c6deeb/elastic/kibana-on-merge/kibana/x-pack/test/saved_object_tagging/functional/failure_debug/html/saved objects tagging - functional tests dashboard integration creating allows t-29814279444f4d298f24b012c2e451886d9c481ab2ec65240025329c4f56ba13.html
[00:09:34] └- ✖ fail: saved objects tagging - functional tests dashboard integration creating allows to select tags for a new dashboard
[00:09:34] │ Error: retry.try timeout: Error: retry.try timeout: TimeoutError: Waiting for element to be located By(css selector, [data-test-subj="tagSelectorOption-tag-1"])
[00:09:34] │ Wait timed out after 10042ms
[00:09:34] │ at /var/lib/buildkite-agent/builds/kb-n2-4-spot-ee2d6153f1c6deeb/elastic/kibana-on-merge/kibana/node_modules/selenium-webdriver/lib/webdriver.js:929:17
[00:09:34] │ at processTicksAndRejections (node:internal/process/task_queues:95:5)
[00:09:34] │ at onFailure (retry_for_success.ts:17:9)
[00:09:34] │ at retryForSuccess (retry_for_success.ts:59:13)
[00:09:34] │ at RetryService.try (retry.ts:31:12)
[00:09:34] │ at Proxy.clickByCssSelector (find.ts:417:5)
[00:09:34] │ at TestSubjects.click (test_subjects.ts:164:5)
[00:09:34] │ at DashboardPageObject.selectDashboardTags (dashboard_page.ts:560:7)
[00:09:34] │ at DashboardPageObject.enterDashboardTitleAndClickSave (dashboard_page.ts:544:7)
[00:09:34] │ at dashboard_page.ts:481:7
[00:09:34] │ at runAttempt (retry_for_success.ts:29:15)
[00:09:34] │ at retryForSuccess (retry_for_success.ts:68:21)
[00:09:34] │ at RetryService.try (retry.ts:31:12)
[00:09:34] │ at DashboardPageObject.saveDashboard (dashboard_page.ts:480:5)
[00:09:34] │ at Context.<anonymous> (dashboard_integration.ts:87:9)
[00:09:34] │ at Object.apply (wrap_function.js:73:16)
[00:09:34] │ at onFailure (retry_for_success.ts:17:9)
[00:09:34] │ at retryForSuccess (retry_for_success.ts:59:13)
[00:09:34] │ at RetryService.try (retry.ts:31:12)
[00:09:34] │ at DashboardPageObject.saveDashboard (dashboard_page.ts:480:5)
[00:09:34] │ at Context.<anonymous> (dashboard_integration.ts:87:9)
[00:09:34] │ at Object.apply (wrap_function.js:73:16)
[00:09:34] │
[00:09:34] │
```
## Summary
Removes usages of `KibanaContextProvider` to simplify the API of the
`UnifiedDocViewer` component. Instead, necessary services are accessed
from the plugin itself (via `getUnifiedDocViewerServices`). Removes the
`useUnifiedDocViewerServices` hook since it's no longer needed.
Resolves#168380
### Checklist
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [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
Fixes: https://github.com/elastic/kibana/issues/170522
This PR allows to `close service now incident` when alert is `recovered`
SN connector form shows only `correlation_id` field as it is mandatory
field to close an incident.

**How to test:**
- Create a rule and select serviceNow ITSM action with Run when option
as Recovered
- Verify that it closes an incident in SN when Alert is recovered
### Checklist
Delete any items that are not applicable to this PR.
- [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
### For maintainers
- [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)
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
Create `security_solution/common/api/entity_analytics` to house all
entity analytics related apis, in this case `risk_score`, `risk_engine`
and `asset_criticality`.
This makes ownership clearer, simplifies the codeowners file, and will
enable the entity analytics team to have shared schema components in
`security_solution/common/api/entity_analytics/common` (something I want
to do in an upcoming PR)
I have removed `@elastic/security-threat-hunting-explore`'s ownersip of
`/x-pack/plugins/security_solution/common/api/risk_score` let me know if
you want to keep it!
Closes#171613
## Summary
This PR adds the viewInApp URL to the custom threshold rule type. This
URL will send the user to the log explorer with the selected data view
and the rule's query filter. If there is only one document aggregation,
then the filter related to this aggregation will be added as shown
below:
|Rule|Discover with pre-fill data|
|---|---|
||
For the ad-hoc data view, you should be able to see the selected index
pattern in discover similar to this:
<img
src="046493ae-ba59-46b7-a40f-68d1836d43f1"
width=400 />
### 🧪 How to test
- Check the viewInApp URL both in action variables and the alert table
for the following scenarios:
- A rule with a persisted data view
- A rule with an ad-hoc data view
- A rule with count aggregation and filter
- A rule with an optional query filter
- A rule with non-count aggregation
In all the above scenarios, the starting time in the Discover should be
before the alert's start time.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
With this PR we introduce a new Alert User Assignment feature:
- It is possible to assign a user/s to alert/s
- There is a new "Assignees" column in the alerts table which displays
avatars of assigned users
- There is a bulk action to update assignees for multiple alerts
- It is possible to see and update assignees inside the alert details
flyout component
- There is an "Assignees" filter button on the Alerts page which allows
to filter alerts by assignees
We decided to develop this feature on a separate branch. This gives us
ability to make sure that it is thoroughly tested and we did not break
anything in production. Since there is a data scheme changes involved we
decided that it will be a better approach. cc @yctercero
## Testing notes
In order to test assignments you need to create a few users. Then for
users to appear in user profiles dropdown menu you need to activate them
by login into those account at least once.
8eeb13f3-2d16-4fba-acdf-755024a59fc2
Main ticket https://github.com/elastic/security-team/issues/2504
## Bugfixes
- [x] https://github.com/elastic/security-team/issues/8028
- [x] https://github.com/elastic/security-team/issues/8034
- [x] https://github.com/elastic/security-team/issues/8006
- [x] https://github.com/elastic/security-team/issues/8025
## Enhancements
- [x] https://github.com/elastic/security-team/issues/8033
### Checklist
- [x] Functional changes are hidden behind a feature flag. If not
hidden, the PR explains why these changes are being implemented in a
long-living feature branch.
- [x] Functional changes are covered with a test plan and automated
tests.
- [x] https://github.com/elastic/kibana/issues/171306
- [x] https://github.com/elastic/kibana/issues/171307
- [x] Stability of new and changed tests is verified using the [Flaky
Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner).
- [x]
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/4091
- [x] Comprehensive manual testing is done by two engineers: the PR
author and one of the PR reviewers. Changes are tested in both ESS and
Serverless.
- [x] Mapping changes are accompanied by a technical design document. It
can be a GitHub issue or an RFC explaining the changes. The design
document is shared with and approved by the appropriate teams and
individual stakeholders.
* https://github.com/elastic/security-team/issues/7647
- [x] Functional changes are communicated to the Docs team. A ticket or
PR is opened in https://github.com/elastic/security-docs. The following
information is included: any feature flags used, affected environments
(Serverless, ESS, or both). **NOTE: as discussed we will wait until docs
are ready to merge this PR**.
* https://github.com/elastic/security-docs/issues/4226
* https://github.com/elastic/staging-serverless-security-docs/pull/232
---------
Co-authored-by: Marshall Main <marshall.main@elastic.co>
Co-authored-by: Xavier Mouligneau <xavier.mouligneau@elastic.co>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Sergi Massaneda <sergi.massaneda@gmail.com>
The PR fixes creds leaking in console logs when running Synth.
Synthtrace runs on CI as well where this is not secure to leak
credentials
## Before -
<img width="854" alt="image"
src="41aaeed7-6a2a-4cc6-aabd-d9f4261b861a">
## After
<img width="851" alt="image"
src="1da1392f-c6d3-4604-a802-c906ecd4de23">
Fixes https://github.com/elastic/kibana/issues/163575
When no jobs are available for selection the `Create job` button should
be disabled for users who cannot create jobs and when no ML nodes are
available.
**When user has insufficient permissions**
<img width="1372" alt="image"
src="9fedc721-6e50-425f-b3b2-c7480146e1e1">
**When no ML nodes are available**

[](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [elastic-apm-node](https://togithub.com/elastic/apm-agent-nodejs) |
[`^4.1.0` ->
`^4.2.0`](https://renovatebot.com/diffs/npm/elastic-apm-node/4.1.0/4.2.0)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
<details>
<summary>elastic/apm-agent-nodejs (elastic-apm-node)</summary>
###
[`v4.2.0`](https://togithub.com/elastic/apm-agent-nodejs/releases/tag/v4.2.0)
[Compare
Source](https://togithub.com/elastic/apm-agent-nodejs/compare/v4.1.0...v4.2.0)
For more information, please see the
[changelog](https://www.elastic.co/guide/en/apm/agent/nodejs/current/release-notes-4.x.html#release-notes-4.2.0).
##### Elastic APM Node.js agent layer ARNs
|Region|ARN|
|------|---|
|af-south-1|arn:aws:lambda:af-south-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-east-1|arn:aws:lambda:ap-east-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-northeast-1|arn:aws:lambda:ap-northeast-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-northeast-2|arn:aws:lambda:ap-northeast-2:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-northeast-3|arn:aws:lambda:ap-northeast-3:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-south-1|arn:aws:lambda:ap-south-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-southeast-1|arn:aws:lambda:ap-southeast-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-southeast-2|arn:aws:lambda:ap-southeast-2:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ap-southeast-3|arn:aws:lambda:ap-southeast-3:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|ca-central-1|arn:aws:lambda:ca-central-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|eu-central-1|arn:aws:lambda:eu-central-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|eu-north-1|arn:aws:lambda:eu-north-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|eu-south-1|arn:aws:lambda:eu-south-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|eu-west-1|arn:aws:lambda:eu-west-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|eu-west-2|arn:aws:lambda:eu-west-2:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|eu-west-3|arn:aws:lambda:eu-west-3:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|me-south-1|arn:aws:lambda:me-south-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|sa-east-1|arn:aws:lambda:sa-east-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|us-east-1|arn:aws:lambda:us-east-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|us-east-2|arn:aws:lambda:us-east-2:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|us-west-1|arn:aws:lambda:us-west-1:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
|us-west-2|arn:aws:lambda:us-west-2:267093732750:layer:elastic-apm-node-ver-4-2-0:1|
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/elastic/kibana).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: pgayvallet <pierre.gayvallet@elastic.co>
## Summary
Connected to: https://github.com/elastic/kibana-operations/issues/18
Pre-requisite for:
https://github.com/elastic/kibana-operations/issues/30
You can test the current assistant from the branch:
https://buildkite.com/elastic/kibana-serverless-release-1/builds?branch=buildkite-job-for-deployment
- use `DRY_RUN=1` in the runtime params to not trigger an actual release
:)
This PR creates the contents of a Buildkite job to assist the Kibana
Serverless Release initiation process at the very beginning and lay some
groundwork for further additions to the release management.
At the end of the day, we would like to create a tag deploy@<timestamp>
which will be picked up by another job that listens to these tags:
https://buildkite.com/elastic/kibana-serverless-release. However,
several parts of the preparation for release require manual research,
collecting information about target releases, running scripts, etc.
Any further addition to what would be useful for someone wanting to
start a release could be contained here.
Furthermore, we could also trigger downstream jobs from here. e.g.:
https://buildkite.com/elastic/kibana-serverless-release is currently set
up to listen for a git tag, but we may as well just trigger the job
after we've created a tag.
Check out an example run at:
https://buildkite.com/elastic/kibana-serverless-release-1/builds/72
(visible only if you're a
member of @ elastic/kibana-release-operators)
Missing features compared to the git action:
- [x] Slack notification about the started deploy
- [x] full "useful links" section
Missing features:
- [x] there's a bit of useful context that should be integrated to the
display of the FTR results (*)
- [x] skip listing and analysis if a commit sha is passed in env
(*) - Currently, we display the next FTR test suite that ran after the
merge of the PR. However, the next FTR that will contain the changes,
and show useful info related to the changeset is ONLY in the FTR that's
ran after the first successful onMerge after the merge commit. Meaning:
if main is failing when the change is merged, an FTR suite won't pick up
the change right after.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Thomas Watson <w@tson.dk>
Co-authored-by: Thomas Watson <watson@elastic.co>
## Summary
When encryption key is rotated improperly, Message Signing key retrieval
is retried infinitely, and because this is done in Fleet setup, none of
the Fleet pages are loaded when the user tries to visit any of them.
This PR re-configures the retry logic so it now attempts significantly
less times than infinite.
Also, it changes the errors to non-fatal from the Fleet setup point of
view, similarly to these PRs:
- #171998
- #172058
## Reproducing the encryption key issue
- setup a Kibana, add at least one policy (probably Fleet policy is
enough)
- modify (or add a new) encryption key in your `kibana.dev.yml`:
```yml
xpack.encryptedSavedObjects.encryptionKey: "some-random-encryption-key-min-32-bytes"
```
## Screenshots
After ~15 sec of loading spinner, this is what the user sees:

### Checklist
Delete any items that are not applicable to this PR.
- [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
## Summary
Adds upsert, read and delete APIs for asset criticality records. I have
used the OpenAPI code generation to create the types and zod schemas.
The APIs added are as follows:
**POST /internal/risk_score/criticality**
Request Body:
```
{
id_value: "host-1",
id_field: "host.name",
criticality_level: "very_important"
}
```
If the record already exists it will be overwritten, otherwise created
**GET
/internal/risk_score/criticality?id_field=host.name&id_value=host-1**
Response body:
```
{
id_value: "host-1",
id_field: "host.name",
criticality_level: "very_important"
@timestamp: "2023-11-29T11:43:43.175Z"
}
```
**DELETE
/internal/risk_score/criticality?id_field=host.name&id_value=host-1**
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
The data view picker reloads the field list when the data view is
changed. Discover also does this. It doesn't need to happen twice so
this removes the discover field list reload call.
Addresses https://github.com/elastic/kibana/issues/167221
## Summary
Fixes column not breaking correctly in analyzer. 3 places where this bug
occured: node details, event details and control panel. Event details
panel was fixed in [PR](https://github.com/elastic/kibana/pull/170329).
This PR covers the other two.

After

### Checklist
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
## Summary
Stored field handling is basically a dead code path. `['*']` is always
sent so lets push this closer to the query.
---------
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Reorganizes the ML Pipeline card on the Indices Pipelines view.
Note: Displaying source fields within this card is out of scope of this
PR.
Before:
<img width="506" alt="pipeline-card-before"
src="9b41e4c0-cb19-4bc8-b33a-31c85797b6e2">
After:
<img width="517" alt="image"
src="2a15df6c-3564-4957-a847-cf1859c8bd65">
Example of multiple pipeline cards:
<img width="520" alt="image"
src="ff6dfc1a-c45c-4bd3-b456-c633b3794175">
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
Summarize your PR. If it involves visual changes include a screenshot or
gif.
- Add benchmarks to Compliance Dashboard API.
- Add `score_by_benchmark_id` to the Benchmark Scores Index this will
show posture stats for each benchmark id
- Add benchmark aggregation query using benchmark id and version
- Add BWC API versioning
- STATS API V1 should show clusters
- STATS API V2 should show benchmarks
- Add unit tests
- Added integration tests with API versioning test cases.
To test PR with API versioning, in Kibana client -
`x-pack/plugins/cloud_security_posture/public/common/api/use_stats_api.ts`
- Change version value to 1 to see clusters
```
http.get<ComplianceDashboardData>(getStatsRoute(CSPM_POLICY_TEMPLATE), { version: '1' }),
```
- Change version value to 2 to see versions
```
http.get<ComplianceDashboardData>(getStatsRoute(CSPM_POLICY_TEMPLATE), { version: '2' })
```
<img width="1721" alt="image"
src="7fb53dec-c405-49e5-aa22-7788b4d1d5c0">
Uploading Untitled 2.mov…