Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional context for alert insights component #20

Closed

Conversation

sorenlouv
Copy link
Owner

No description provided.

sphilipse and others added 4 commits April 12, 2024 11:38
## Summary

We had a lot of plugins set to required, which means Search just wasn't
rendering in many contexts where it would work perfectly fine even
without the plugins loading. This makes most plugins optional.
Spot-tested throughout the application, don't expect any issues--we were
doing undefined/null checks in most places anyway.
- Add state for connector page to have one source of truth and have
ability to control edit flyout by URL
- Add connectorId route to translate it to state and able easily control
edit flyout by URL
- Use new link in playground

Having a link like
`insightsAndAlerting/triggersActionsConnectors/connectors/:connectorId`
will transformed to
`insightsAndAlerting/triggersActionsConnectors/connectors#?_a=(initialConnector:(actionType:OpenAI,actionTypeId:.gen-ai,compatibility:!.....)`.

@elastic/response-ops could you check is it appropriate changes? If yes
I will proceed with adding tests for it
- Closes elastic#180434

~~This PR removes the second progress bar. I think with all recent
changes it became redundant.~~

This PR adds a delay for UnifiedHistogram progress bar. It helps to
prevent double loading indicator in ES|QL mode.
…lastic#180319)

## Summary

fixes: elastic#180268

Adds the 3 missing tab links to the global search:

- Hosts / All hosts
- Users / All users
- Network / Flows

### Screenshots


<img width="648" alt="Captura de pantalla 2024-04-08 a les 19 14 31"
src="https://github.com/elastic/kibana/assets/17747913/c18ff55d-1b35-4b43-a312-61ef5497c1fb">

---

<img width="648" alt="All users"
src="https://github.com/elastic/kibana/assets/17747913/1d30470e-bc8e-4392-989e-200d09dcfdf6">

---

<img width="648" alt="flows"
src="https://github.com/elastic/kibana/assets/17747913/7019f079-229a-470b-ac15-3997e1379759">
@sorenlouv sorenlouv changed the title Call api for retriving obs context Additional context for alert insights component Apr 12, 2024
sorenlouv and others added 25 commits April 12, 2024 13:58
…age (elastic#180384)

Closes elastic#180226
Follow-up to: elastic#178330

This removes the APM specific Contextual Insight component, and replaces
it with a generic Insights component that work across all Observability
rules.

The APM specific code is left in and will be migrated so it works across
rules where applicable. Examples of this is fetching dependencies when
and alert contains `service.name` or fetching log categories for the
selected time range.

<img width="1720" alt="image"
src="https://github.com/elastic/kibana/assets/209966/8eba7b3c-d4f7-4a53-9990-c22c70de92ea">
…stic#180603)

## Summary

Adds the ability to unassign asset criticality level. 


https://github.com/elastic/kibana/assets/3315046/017b8404-4449-4546-8d01-c0d6d076cd48

Also:
- slightly change the colours of the levels in the dropdown, new orange
colour for high_impact
- change "Criticality Unassigned" to just "Unassigned"

### Flyout before/after
<img width="631" alt="Screenshot 2024-04-11 at 15 02 01"
src="https://github.com/elastic/kibana/assets/3315046/eafa183b-096f-493a-9b23-a8664c138351">


### Modal before/after
<img width="712" alt="Screenshot 2024-04-11 at 15 02 15"
src="https://github.com/elastic/kibana/assets/3315046/88d229a8-9eb3-4dc8-80d5-b1cf0310c6a7">
…80409)

Closes elastic#178261

## Summary

This PR improves the empty state prompt in the Enrich policies UI. The
`ingest pipelines` link leads to the Ingest Pipelines app and the `Learn
more about enriching your data` link leads to the [Enriching ingest data
doc](https://www.elastic.co/guide/en/elasticsearch/reference/master/ingest-enriching-data.html).

<img width="1240" alt="Screenshot 2024-04-09 at 18 37 30"
src="https://github.com/elastic/kibana/assets/59341489/90efc858-48f9-4406-8fcb-0c87ee7a2461">


### Checklist

- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [x] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)




<!--
### Checklist

- [ ] 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)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [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
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)


### Risk Matrix

Delete this section if it is not applicable to this PR.

Before closing this PR, invite QA, stakeholders, and other developers to
identify risks that should be tested prior to the change/feature
release.

When forming the risk matrix, consider some of the following examples
and how they may potentially impact the change:

| Risk | Probability | Severity | Mitigation/Notes |

|---------------------------|-------------|----------|-------------------------|
| Multiple Spaces&mdash;unexpected behavior in non-default Kibana Space.
| Low | High | Integration tests will verify that all features are still
supported in non-default Kibana Space and when user switches between
spaces. |
| Multiple nodes&mdash;Elasticsearch polling might have race conditions
when multiple Kibana nodes are polling for the same tasks. | High | Low
| Tasks are idempotent, so executing them multiple times will not result
in logical error, but will degrade performance. To test for this case we
add plenty of unit tests around this logic and document manual testing
procedure. |
| Code should gracefully handle cases when feature X or plugin Y are
disabled. | Medium | High | Unit tests will verify that any feature flag
or plugin combination still results in our service operational. |
| [See more potential risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |


### For maintainers

- [ ] 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: Kibana Machine <[email protected]>
## Summary

Related to elastic/ingest-dev#2471

Generate UI settings from an object type with nested fields.

Configured Agent monitoring http settings to show up on the UI to demo,
it should be removed before merge as it's not yet supported by Agent.

The object field values are rendered as labels on the UI (e.g.
`enabled`).
We could add description on the fields to render as tooltip/description.

The logic supports one level of object with base field types (number,
string, boolean) for now. We could extend it with more levels if needed.

```
agent.monitoring:
  http:
    enabled: true 
    host: localhost 
    port: 6791
    buffer.enabled: false
```

To verify:
- enable the settings config:
elastic#180597 (comment)
- create/edit an agent policy and scroll down/open advanced settings
- check that Agent monitoring HTTP settings are showing up on UI
- verify that settings can be changed and updated
- validation is added for the port to be in the valid range
- click `Preview API request` to verify the request being sent to update
the policy
- click `View policy` to check how the new settings show up in full
agent policy after saving

<img width="950" alt="image"
src="https://github.com/elastic/kibana/assets/90178898/d2926a00-8091-418e-b49e-bd12e080fcb0">

<img width="755" alt="image"
src="https://github.com/elastic/kibana/assets/90178898/4f5bd9ca-de21-4877-8e0c-c2783b61d659">

<img width="881" alt="image"
src="https://github.com/elastic/kibana/assets/90178898/dea6d732-06df-44eb-bb7b-84d162b60ba0">

<img width="557" alt="image"
src="https://github.com/elastic/kibana/assets/90178898/2c7a9cad-8383-4fda-962d-77f85e35674f">

Added an (optional) description to fields to make it more human
readable:
<img width="986" alt="image"
src="https://github.com/elastic/kibana/assets/90178898/586773a5-9466-4436-8efe-7025bf061eb9">



### 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
…8907)

## Summary

This introduces starter prompts for users to get the conversation going.

Allows Kibana app developers to create starter prompts at any time using
the `setScreenContext` method.

Up to 4 starter prompts will be shown to the user. Starter Prompts added
by an app take precedence over the default starter prompts.



https://github.com/elastic/kibana/assets/535564/35ed3d27-6185-42cd-9d63-cc9400dbe8e8




## Default Starter Prompts (visible in all Observability apps when no
additional prompts have been registered by app / page)

| Prompt           |
| ------------- | 
| `Give me examples of questions I can ask here.` |
| `Can you explain this page?` |
| `Do I have any alerts?` |
| `What are SLOs?` |


## Starter Prompts added to different specific Observability apps

| App | Where | Condition | Prompt |
| ------------- | ------------- | ------------- | ------------- |
| Observability | Overview | `HasDataProvider` returns no data for an
app | `Why don't I see any data for the {appsWithoutData} sections?`
| Observability | Alerts | none | `Can you explain the rule types that
are available?`
| Observability | Rules | none | `Can you explain the rule types that
are available?`
| APM  | All | No data returned | `Why don't I see any data?` 
| Infra  | All | No data returned | `Why don't I see any data?` 
| Metrics  | All | No data returned | `Why don't I see any data?` 
| Synthetics  | All | No data returned | `Why don't I see any monitors?`
| UX  | All | No data returned | `Why don't I see any data?` 
 

## Guidance for Kibana engineers
The team owning a plugin can add the following code to add a starter
prompt to the Assistant:
```
plugins.observabilityAiAssistant.service.setScreenContext(
  {
    starterPrompts: [
      {
        title: i18n.translate('xpack.app.foo.bar', defaultMessage: 'Explain' }), 
        prompt: i18n.translate('xpack.app.foo.baz', defaultMessage: 'How does feature X work?' }),
        icon: 'sparkles' // 'EuiIconType' 
      }
    ]
  }
)
``` 

You can use the optional `screenDescription` and `data` keys in
`setScreenContext` to pass along additional information to the LLM which
may be beneficial in answering the starter prompt that you configure.
For example:

```
setScreenContext(
  {
    screenDescription: 'The user is looking at a no data page.' // Doesn't need to translated as this is passed to the LLM which doesn't need a translated string.
    data: [
      {
        name: 'config',
        description: 'The index configuration of the app',
        value: config,
      },
    ],
  }
)
```

As a rule of thumb, the more generic or 'high level' the starter prompt
is, the higher in the React app tree it should be added.

More specific starter prompts that are relevant for pages (or even
sections inside pages) should be added by adding `setScreenContext`
further down in the React app tree, for instance in page components or
even more specific. Be aware that only 4 starter prompts will be
displayed so if you place more than that across components then they
will not be displayed.

For instance, in the case of the Observability app, the guidance would
be:

| Starter prompt  | Place to add in the React app |
| ------------- | ------------- |
| `What is Observability?`  | `renderApp`  |
| `What are SLOs?`  | `renderApp`  |
| `How do I set up Alerts?`  | `renderApp`  |
| `Can you describe the different rule types?`  | Rules page  |
| `Can you help me configure an SLO?`  | SLO List  |
| `Do I have any misconfigured SLOs?`  | SLO List  |

Please validate whether or not the response given by the LLM is correct
and helpful for the user.

---------

Co-authored-by: Kibana Machine <[email protected]>
…rless project (elastic#175358)

## Summary

This PR enables the `xpack.ml.nlp.enabled` flag for the security project
in support of enabling ELSER for use with the Elastic Assistant.


Reference issue: elastic/security-team#7995

Corresponding `project-controller` PR's here:
elastic/project-controller#674
elastic/project-controller#751

---

As discussed in the above reference issue, this PR adds a task for
cleaning up NLP models at a regular interval if the `productTier` is not
`complete`. This `serverless-security:nlp-cleanup-task` will run every
`6hr`, attempting to cleanup any `pytorch` NLP models/aliases that were
either leftover from a `productTier` downgrade, or were manually created
using the ES trained model API's.

Note I: As recommended by the ResponseOps folks, the task is _always
registered_ regardless of the current `productTier`. When executed on
the `complete` `productTier`, an `UnrecoverableError` is thrown, which
will remove the task and prevent it from running again until Kibana is
restarted.

Note II: While the task interval is every `6hr`, when initially
registered we manually kick off an execution to ensure that any
resources are immediately cleaned up when a `productTier` change is
performed.

---

Both `complete` and `essentials` API integration tests have been added
to cover the above behavior. Please see:
*
[.../test_suites/genai/nlp_cleanup_task/basic_license_essentials_tier/task_execution.ts
](https://github.com/elastic/kibana/pull/175358/files#diff-b0cae16c5c6f77a90d53fcfab3bda6400ec13fe7f200d8c1f0dd3f1a0109af9f)
*
[.../test_suites/genai/nlp_cleanup_task/trial_license_complete_tier/task_execution.ts](https://github.com/elastic/kibana/pull/175358/files#diff-c69ec08309855f236ab90d4ba73f40636e52d706679bbab530956ff8d5560097)

---

Additionally, Event Based Telemetry (EBT) was added so cleanup, and any
associated failures can be tracked. Please see the
`NLP_CLEANUP_TASK_EVENT`, which has the below schema:

```
  failedToDeleteCount: number; // Total number of NLP models failed to be cleaned up
  message: string; // General message from task completion, either summary of task or error message
  productTier: string; // Current productTier when task was run
  totalInstalledCount: number; // Total number of NLP models deployed when task started
```

---------

Co-authored-by: kibanamachine <[email protected]>
…ckage cards (elastic#180624)

## Summary

This PR adds a notion of `Collections` to Package Cards. Disabled by
default, when this flag is provided, a custom `View collection` button
will display on a `PackageCard`. There's example usage included below.
This should not impact the existing Integrations UI in Fleet in any way.
I have added unit tests to cover the implementation in `PackageCard`,
and included new controls to toggle this feature on/off in Storybook.


![20240410132030](https://github.com/elastic/kibana/assets/18429259/49814a3c-ccd5-4a21-a0ef-c0e663cf9ca4)
… nested for usability (elastic#180358)

Closes: elastic/security-team#8653

## Description

The Add Elastic Rules empty prompt (all rules added) has an H3
improperly nested. This makes for a more difficult screen reader
experience; a large number of screen reader users [primarily navigate by
headings](https://webaim.org/projects/screenreadersurvey9/#finding).

### Steps to recreate

1. Open [Add Elastic
rules](https://kibana.siem.estc.dev/app/security/rules/add_rules)
2. Add all rules to the monitoring table if not already
3. Open [HeadingsMap
extension](https://chromewebstore.google.com/detail/headingsmap/flbjommegcjonpdmenkdiocclhjacmbi?pli=1)
or your preferred screen reader
4. If using a screen reader, traverse the page by headings only to hear
the perceived importance of information

### Screen 

<img width="1651" alt="image"
src="https://github.com/elastic/kibana/assets/20072247/36f4f2a9-a472-4fa1-9c0c-871f2e98415a">
…elastic#180696)

## Summary

This PR adds `NEW` badge to the dashboards tab in the asset details
view.

## Testing

- Enable dashboards feature flag from Stack Management > Advance
Settings
<img width="1889" alt="image"
src="https://github.com/elastic/kibana/assets/14139027/07a853c6-48b3-4922-8d04-38065edc36b6">

- To see the `NEW` badge next to the Dashboards tab title
   - Go to single Host flyout:
   

![image](https://github.com/elastic/kibana/assets/14139027/80493841-0039-4008-b6c4-cff14ad90318)

   - Go to asset details page:
   

![image](https://github.com/elastic/kibana/assets/14139027/5aa5bb67-a3e6-429f-9d43-675a38e1076d)
We've decided to keep this behind a feature flag for now since we have
bugs to iron out with Fleet's new permissions model, and we don't have
the option of going into technical preview first
Closes elastic#178004

## Summary

Disables secrets UI inputs in forms when secrets storage is disabled
server-side. Previously, the server side check wasn't exposed to the
frontend in any way, so the behavior of detecting whether secrets were
enabled or not differed: the frontend wasn't aware when secrets were
disabled due to a missing Fleet Server of the proper version.

I've also added a UI callout when secrets are disabled due to the
failing Fleet Server version check:


![image](https://github.com/elastic/kibana/assets/6766512/c2c31f65-9579-4433-9fd5-7554995a51c1)

Lastly, I've updated the check for compatible Fleet Server versions to
ensure that only agents with `active: true` are included in the check.
Because we didn't have this check before, cloud clusters where the
previous agent running on the `Elastic Agent on Cloud` managed policy
appeared as `offline` or `unenrolled` would never be able to have
secrets enabled. I'd be open to narrowing this to a status check
instead, if there are concerns about this approach.

---------

Co-authored-by: Kibana Machine <[email protected]>
Co-authored-by: Julia Bardi <[email protected]>
…out (elastic#180323)

- Closes elastic#180249
- Closes elastic#179515

## Summary

This PR removes suggestions from above the UnifiedHistogram vis. Now
users can change suggestions via the lens flyout.

ES|QL query which supports suggestions:
<img width="600" alt="Screenshot 2024-04-10 at 16 57 09"
src="https://github.com/elastic/kibana/assets/1415710/a0e7aed9-c223-4e29-8919-3e65eef52443">

ES|QL query which does not support suggestions for the histogram vis:
<img width="600" alt="Screenshot 2024-04-10 at 16 58 08"
src="https://github.com/elastic/kibana/assets/1415710/6ba3c283-5bd3-46eb-839f-6d6fda41db5b">

25x
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5656

### 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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed

---------

Co-authored-by: Stratoula Kalafateli <[email protected]>
## Summary

As a part of the Dev Tools Improvements work we wanted to update the
console default value to be a bit more opinionated and include some real
commands as examples.


![image](https://github.com/elastic/kibana/assets/1972968/ad8e29bc-659c-4b65-883f-7e203cb55c28)

---------

Co-authored-by: Kibana Machine <[email protected]>
## Summary

This PR moves some code around to make the API reflect how the UI works.

### 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
…oad (elastic#178987)

Updates the text on the landing page

**Before**

![image](https://github.com/elastic/kibana/assets/22172091/003a582f-4fe0-4d2a-a0dd-d40bd4ed57f5)

**After**

![image](https://github.com/elastic/kibana/assets/22172091/75afae43-1855-4012-a728-488b6a3d3823)

Adds a new feature flag to allow the `Create filebeat configuration`
card to be hidden. This has been
[requested](elastic/search-team#7075)
for the serverless search project and so the `serverless.es.yml` has
been updated to include this flag.

**Before**

![image](https://github.com/elastic/kibana/assets/22172091/add1aa39-186d-4816-9f92-27fa2f6f0378)

**After**


![image](https://github.com/elastic/kibana/assets/22172091/a9ab7243-2fae-48fc-a3a0-0b2b347630be)
…lows (elastic#180439)

Closes elastic#179555
Closes elastic#179786

Depends on: elastic#180301
> [!NOTE]  
> The current flow in `main` is a bit broken and does not report the
final completed status. Make sure to wait until the above PR is merged
or cherry pick its commit before testing.

## Summary

* Adds a new schema for the `observability_onboarding` event
* Adds logic to trigger the event on the onboarding landing pages (old
and new)
* Adds logic to trigger the event during the system/custom logs flows
when: user has downloaded the agent, when agent has reported it's
status, in case of warning/errors and finally when the flow has been
completed.

## How to test

* Run run serverless Kibana localy
* Set the new onboarding feature flag on or off depending on which one
you want to test:
```
# kibana.dev.yml
xpack.cloud_integrations.experiments.enabled: true
xpack.cloud_integrations.experiments.flag_overrides:
  "observability_onboarding.experimental_onboarding_flow_enabled": true
```
* (Annoying workaround 🙈) In order to make Elastic Agent to communicate
with ES over https, modify `outputs.default` configuration in
`x-pack/plugins/observability_solution/observability_onboarding/common/elastic_agent_logs/system_logs/generate_system_logs_yml.ts`
and
`x-pack/plugins/observability_solution/observability_onboarding/common/elastic_agent_logs/custom_logs/generate_custom_logs_yml.ts`
to use your local Kiabana SSL certificate:
```
outputs: {
  default: {
    ...
    ssl: {
      enabled: true,
      certificate_authorities: [
        // Replace with you local path to Kibana repo
        '/Users/mykolaharmash/Developer/kibana/packages/kbn-dev-utils/certs/ca.crt',
      ],
    },
  }
}
```
* Go trough the onboarding flow and make sure you see `/kibana-browser`
requests in the "Network" with the correct payload.

---------

Co-authored-by: Thom Heymann <[email protected]>
Co-authored-by: Kibana Machine <[email protected]>
Fixes elastic#168605

Testing - see
elastic#168605 (comment)
1) Install Kibana under `C:\Program Files (x86)`, or a path spaces and
parentheses. Test builds are available in Buildkite on the artifacts tab
on the `Build Kibana Distribution and Plugins` step.
2) Create a Timelion visualization
3) `.es(*)` should load
… types (elastic#180566)

## Summary

using `as const` on exported const objects to allow TS infer the
narrowest possible types

Follow up on the CR comment 
- elastic#179031 (comment)
…#179891)

## Summary
Create a new Asset Criticality page for updating asset criticality by
file upload.
Flaky test runner:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5662
Server side PR: elastic#179930


https://github.com/elastic/kibana/assets/1490444/f524b5e8-8efa-40c7-8e43-45cf43decefb


The new page has three steps. You can access the page by going to
Security -> Manage -> Asset Criticality.

<img
src="https://github.com/elastic/kibana/assets/1490444/080a51bf-20e9-4f4b-84b2-13fe1cfdc1d5"
width="400" />




### File picker Step:
<img
src="https://github.com/elastic/kibana/assets/1490444/e3aea4b8-2083-49a4-b4bf-dbb645fb463b"
width="400" />


### File validation step
<img
src="https://github.com/elastic/kibana/assets/1490444/54b3018e-ef0e-4ac4-93b2-67ae02743eb8"
width="400" />

### Result step

<img
src="https://github.com/elastic/kibana/assets/1490444/aa47a7af-1108-4ad6-8dc0-f728e0187026"
width="400" />


### Checklist

Delete any items that are not applicable to this PR.

- [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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
a-docker)
- [x] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))


## How to test it?
* Open the page
* Upload a valid CSV file
* Check if everything is ok on the validation step
* Click Assign
* Check if the success message is displayed
* Open the alert flyout for an updated asset and check if it has the new
value

## What is not included?
* Serverless
* Disable the feature when asset criticality advanced setting is
disabled


## Code owners files:

<details>
  <summary>elastic/docs</summary>

* packages/kbn-doc-links/src/get_doc_links.ts
* packages/kbn-doc-links/src/types.ts
</details>

<details>
  <summary>elastic/security-defend-workflows</summary>

* x-pack/plugins/security_solution/public/management/links.ts
</details>

<details>
  <summary>elastic/security-detection-engine</summary>

* x-pack/test/security_solution_cypress/cypress/urls/navigation.ts
</details>

<details>
  <summary>elastic/security-detections-response</summary>

*
x-pack/test/security_solution_cypress/cypress/fixtures/asset_criticality.csv
</details>

<details>
  <summary>elastic/security-engineering-productivity</summary>

*
x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/asset_criticality_upload_page.cy.ts
*
x-pack/test/security_solution_cypress/cypress/fixtures/asset_criticality.csv
*
x-pack/test/security_solution_cypress/cypress/screens/asset_criticality.ts
*
x-pack/test/security_solution_cypress/cypress/tasks/asset_criticality.ts
* x-pack/test/security_solution_cypress/cypress/urls/navigation.ts
</details>

<details>
  <summary>elastic/security-threat-hunting</summary>

*
x-pack/test/security_solution_cypress/cypress/fixtures/asset_criticality.csv
</details>

<details>
  <summary>elastic/security-threat-hunting-investigations</summary>

*
x-pack/plugins/security_solution/public/resolver/view/panels/node_list.tsx
* x-pack/test/security_solution_cypress/cypress/urls/navigation.ts
</details>

---------

Co-authored-by: Mark Hopkin <[email protected]>
kibanamachine and others added 22 commits April 12, 2024 14:02
## Summary

Part of elastic#169547

View docs at [Changed
pages](https://kibana_169928.docs-preview.app.elstc.co/diff)

Add monitor api public api 

### Testing

Make sure you have some monitors populated before testing this PR and
before switching to the branch

- [ ] Try editing already added monitors via API
- [ ] Test adding monitors via API, and then edit those via and
subsqeuently try editing via API the same monitor
- [ ] Test editing monitors via API
- [ ] Test deleting monitors via API
- [ ] Test getting monitors via API
- [ ] Testing private as well public locations

Basic workflow that i am interesting in testing is to make sure, you can
add/edit via both API and UI without any issues


Test each of HTTP/TCP/ICMP browser examples

<img width="1728" alt="image"
src="https://github.com/elastic/kibana/assets/3505601/3575d93a-5f04-4c80-ac62-038643f466f8">

---------

Co-authored-by: Justin Kambic <[email protected]>
Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Dominique Clarke <[email protected]>
…ic#180322)

Closes elastic#180225

Test instructions
1. start kibana with `yarn start --run-examples`
2. install web logs sample data set
3. create new dashboard, Click "Add panel" and select "Unified search
example"
4. Set time range to last 7 days
5. create a filter "bytes >= 15000". Ensure panel updates
6. Click reload, ensure panel re-fetches data
7. Try a bunch of other things in Unified search UI and ensure panel
fetches data as expected

---------

Co-authored-by: Kibana Machine <[email protected]>
Closes elastic#180613

## Summary

We were incorrectly using the field's `displayName` (i.e. the custom
label) rather than the `name` (i.e. the field's actual name) when
referencing it in the compatible types registry - this was causing an
error to be thrown because the entry for the custom label did not exist.
This fixes the attached bug by replacing `displayName` with `name`.


### Checklist

- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials -
elastic#180626
- [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

- [ ] 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)
…elastic#180636)

## Summary

On behavior alerts with Defend, the default behavior is to enrich the
alert by scanning some memory regions against Yara memory signatures.

This PR adds an advanced setting to opt-out of this behavior.


### Checklist

Delete any items that are not applicable to this PR.

- [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)


### For maintainers

- [ ] 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: Kibana Machine <[email protected]>
Co-authored-by: Daniel Ferullo <[email protected]>
Added new sub-feature to AI-Assistant which allows to grant user role
privilege to edit Anonymization fields:
<img width="761" alt="Screenshot 2024-04-11 at 7 29 50 PM"
src="https://github.com/elastic/kibana/assets/2946766/d4358178-d8e9-4c68-b7d4-a19d2befa29b">



How to test:
1. Create user role, which has access to Security and Actions/Connectors
and AI Assistant.
2. Customize sub-feature privileges: Remove checkbox for Update
anonymization fields.
3. Save role.
4. Create/update existing user with the new role.
5. Go to Security AI Assistant settings and open Anonymization tab.
6. For the user role with removed privilege to edit anonymization, all
actionable buttons should be disabled. Button Save will remain enabled,
because it correspond to all Assistant settings.
7. Public API "/api/elastic_assistant/anonymization_fields/_bulk_action"
should return "Forbidden" 403 access error.

How it looks when no privilege for the user role:
<img width="771" alt="Screenshot 2024-04-12 at 10 12 34 AM"
src="https://github.com/elastic/kibana/assets/55110838/7c3b6c92-12cb-46ae-8356-dc687c82726f">

@patrykkopycinski please adopt it after merging this PR to the new UX

---------

Co-authored-by: Garrett Spong <[email protected]>
## Summary

Partially addresses elastic/kibana-team#805

Follows elastic#180003

These changes come up from searching in the code and finding where
certain kinds of deprecated AppEx-SharedUX modules are imported.
**Reviewers: Please interact with critical paths through the UI
components touched in this PR, ESPECIALLY in terms of testing dark mode
and i18n.**

This focuses on code owned by the Logstash team.

### 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
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
…lastic#178454)

## Summary

Adds group by cardinality count to the synthetics availability SLO
indicator

Resolves elastic#178409
Resolves elastic#178140

Also, it's come to my attention that
elastic#178341 was not fixed by a
previous PR. This PR now also resolves
elastic#178341

### Testing

1. Create an cluster with oblt-cli and add the config to your
`kibana.dev.yml`
2. Navigate to the Synthetics app. Create at least two synthetic
monitors
3. Navigate to SLO create. Select the synthetic availability indicator
4. Check the group by cardinality callout. The cardinality should
reflect the number of monitor/location combinations
<img width="730" alt="Screenshot 2024-04-12 at 1 04 57 PM"
src="https://github.com/elastic/kibana/assets/11356435/a05ffaff-c01b-4107-8f8d-2ea8362fe72e">
5. Now filter by monitor name or tag. The group by cardinality should
reflect the number of monitors that match the filters
<img width="733" alt="Screenshot 2024-04-12 at 1 05 11 PM"
src="https://github.com/elastic/kibana/assets/11356435/079c74ea-dd1c-45f2-bf0e-2dbefea30f96">

### Testing elastic#178341
To test the fix for elastic#178341,
create a simple custom kql SLO with a group by. Add a overall filter
that would impact the overall group by count. Verify that the group by
count accurately reflects the overall filter.
…command (elastic#180692)

## Summary

Closes elastic#163417

When there was no from command in the query we were using the current
dataview. This might have the @timestamp field which is not returned by
the `ROW ...` or `Show meta` commands. So the histogram was failing.

I am solving this issue by creating a dataview based on the current
dataview but without the timeFieldName

<img width="1677" alt="image"
src="https://github.com/elastic/kibana/assets/17003240/81b79634-8c2e-4346-bd34-48ae7580ab89">

I still think we should find another way to deal with these commands but
for now this is a nice way forward

**Before:**

<img width="1679" alt="image"
src="https://github.com/elastic/kibana/assets/17003240/68ec6f76-6721-472b-8b49-7c719ad04208">



### Checklist

- [ ] [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

- [x]
[`SIGNUM`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-signum)
- [x] spatial functions
- [x]
[`ST_CENTROID_AGG`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-agg-st-centroid)
- [x]
[`ST_CONTAINS`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-st_contains)
- [x]
[`ST_DISJOINT`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-st_disjoint)
- [x]
[`ST_INTERSECTS`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-st_intersects)
- [x]
[`ST_WITHIN`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-st_within)
- [x]
[`ST_X`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-st_x)
- [x]
[`ST_Y`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-st_y)
- [x]
[`MV_SLICE`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-mv_slice)
- [x]
[`MV_ZIP`](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-functions-operators.html#esql-mv_zip)

### Checklist

- [x]
[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
@sorenlouv sorenlouv force-pushed the alert-insights-with-api-call branch from e16cbc8 to e076395 Compare April 15, 2024 07:29
Force re-call# This is the 1st commit message:
@sorenlouv sorenlouv force-pushed the alert-insights-with-api-call branch from e076395 to c7605dd Compare April 15, 2024 07:32
@sorenlouv sorenlouv closed this Apr 15, 2024
@sorenlouv sorenlouv deleted the alert-insights-with-api-call branch April 15, 2024 07:33
@sorenlouv sorenlouv restored the alert-insights-with-api-call branch April 15, 2024 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.