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

Onboarding hub with Fleet integration #7

Conversation

angorayc
Copy link
Collaborator

@angorayc angorayc commented Oct 1, 2024

Summary

PR for Fleet changes: elastic#194028

Checklist

Delete any items that are not applicable to this PR.

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—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—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

For maintainers

florent-leborgne and others added 30 commits September 25, 2024 10:03
## Summary

This PR adds release notes for the 8.15.2 version.
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
Co-authored-by: kibanamachine <[email protected]>
Issue: elastic/enhancements#19823

So the purpose of this PR is to add a rule name to each audit log in
alerting API.
Previously if with a rule was done some action (like create, delete,
etc.), the user could see it in an audit log. But this log included only
rule SO id, but not name. Users wanted to see a rule name associated
with the audit log.
So here I added it.

The principle I follow here to accelerate development (agreed with
@cnasikas): if it is easy (name easy to extract in the code the
`savedObject`) to pass it. If it is not do not.

### 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
…ic#193619)

- Closes elastic#192366

## Summary

This PR allows to select/deselect multiple rows by holding SHIFT key
when toggling row checkboxes.


### 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] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
)

## Summary

Part of elastic#193015

It not allows the creation of where clause filters in case of multi
value fields as this is not supported yet in ES|QL. Check my comment
here
elastic#193015 (comment)

It might be possible with full text search but I need to talk to the
team first. For now we disable it as it creates a wrong filter.

### 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

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Davis McPhee <[email protected]>
…tic#193506)

## Summary

Fixes elastic#192694

When terms with `:`, it will be transformed to a `FieldClause`.

So, I'm try to set it back to a `TermClause` if the field is not in
`FieldDefinition`.

Example: `-defaultValue:false doc_table:high Dashboard`


![image](https://github.com/user-attachments/assets/e9519cfe-c64d-4bd4-b928-d6ffd9bfaa8b)

---------

Co-authored-by: Elastic Machine <[email protected]>
Co-authored-by: Elena Stoeva <[email protected]>
## Summary

closes elastic#192327 

- Filters by default the entity definition that are supported in the
table

### Checklist



https://github.com/user-attachments/assets/577c2816-8ba6-4d35-b020-c3114e86b2ee

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Cauê Marcondes <[email protected]>
…ry patterns (elastic#192874)

## Summary

Adds the `logs-*-*` logs pattern in observability telemetry patterns to
separate out logs with indices named per the Data Stream Naming Scheme
([ref](https://www.elastic.co/blog/an-introduction-to-the-elastic-data-stream-naming-scheme))
vs. the generic logs indices not conforming to DSNS naming.

For a typical scenario (test data), the addition of `logs-*-*` affects
the collection as (notice the addition of "dsns-logs" object):
<table>
  <thead>
    <tr>
      <th>Before</th>
      <th>After</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>

```yml
[
  {
    "pattern_name": "heartbeat",
    "shipper": "heartbeat",
    "doc_count": 9530,
    "structure_level": {
      "5": 9530
    },
    "index_count": 1,
    "failure_store_doc_count": 9530,
    "failure_store_index_count": 1,
    "namespace_count": 0,
    "field_count": 1508,
    "field_existence": {
      "container.id": 9530,
      "log.level": 9530,
      "container.name": 9530,
      "host.name": 9530,
      "host.hostname": 9530,
      "kubernetes.pod.name": 9530,
      "kubernetes.pod.uid": 9530,
      "cloud.provider": 9530,
      "agent.type": 9530,
      "event.dataset": 9530,
      "event.category": 9530,
      "event.module": 9530,
      "service.name": 9530,
      "service.type": 9530,
      "service.version": 9530,
      "message": 9530,
      "event.original": 9530,
      "error.message": 9530,
      "@timestamp": 9530,
      "data_stream.dataset": 9530,
      "data_stream.namespace": 9530,
      "data_stream.type": 9530
    },
    "size_in_bytes": 13090458,
    "managed_by": [],
    "package_name": [],
    "beat": [
      "heartbeat"
    ]
  },
  {
    "pattern_name": "nginx",
    "doc_count": 10080,
    "structure_level": {
      "6": 10080
    },
    "index_count": 1,
    "failure_store_doc_count": 0,
    "failure_store_index_count": 0,
    "namespace_count": 1,
    "field_count": 1562,
    "field_existence": {
      "container.id": 10080,
      "log.level": 10080,
      "host.name": 10080,
      "kubernetes.pod.uid": 10080,
      "cloud.provider": 10080,
      "event.dataset": 10080,
      "service.name": 10080,
      "message": 10080,
      "@timestamp": 10080,
      "data_stream.dataset": 10080,
      "data_stream.namespace": 10080,
      "data_stream.type": 10080
    },
    "size_in_bytes": 12098071,
    "managed_by": [],
    "package_name": [],
    "beat": []
  },
  {
    "pattern_name": "apache",
    "doc_count": 1643,
    "structure_level": {
      "6": 1643
    },
    "index_count": 2,
    "failure_store_doc_count": 0,
    "failure_store_index_count": 0,
    "namespace_count": 2,
    "field_count": 1562,
    "field_existence": {
      "container.id": 1643,
      "log.level": 1643,
      "host.name": 1643,
      "kubernetes.pod.uid": 1643,
      "cloud.provider": 1643,
      "event.dataset": 1643,
      "service.name": 1643,
      "message": 1643,
      "@timestamp": 1643,
      "data_stream.dataset": 1643,
      "data_stream.namespace": 1643,
      "data_stream.type": 1643
    },
    "size_in_bytes": 5593675,
    "managed_by": [],
    "package_name": [],
    "beat": []
  },
  {
    "pattern_name": "generic-logs",
    "doc_count": 123979,
    "structure_level": {
      "2": 112925,
      "3": 11054
    },
    "index_count": 18,
    "failure_store_doc_count": 2,
    "failure_store_index_count": 1,
    "namespace_count": 3,
    "field_count": 1582,
    "field_existence": {
      "container.id": 11054,
      "log.level": 123979,
      "host.name": 123979,
      "kubernetes.pod.uid": 11046,
      "cloud.provider": 11046,
      "event.dataset": 11046,
      "service.name": 123971,
      "message": 11054,
      "@timestamp": 123979,
      "data_stream.dataset": 123979,
      "data_stream.namespace": 123979,
      "data_stream.type": 123979
    },
    "size_in_bytes": 60270084,
    "managed_by": [],
    "package_name": [],
    "beat": []
  }
]
```

</td>
      <td>

```yml
[
  {
    "pattern_name": "heartbeat",
    "shipper": "heartbeat",
    "doc_count": 9530,
    "structure_level": {
      "5": 9530
    },
    "index_count": 1,
    "failure_store_doc_count": 9530,
    "failure_store_index_count": 1,
    "namespace_count": 0,
    "field_count": 1508,
    "field_existence": {
      "container.id": 9530,
      "log.level": 9530,
      "container.name": 9530,
      "host.name": 9530,
      "host.hostname": 9530,
      "kubernetes.pod.name": 9530,
      "kubernetes.pod.uid": 9530,
      "cloud.provider": 9530,
      "agent.type": 9530,
      "event.dataset": 9530,
      "event.category": 9530,
      "event.module": 9530,
      "service.name": 9530,
      "service.type": 9530,
      "service.version": 9530,
      "message": 9530,
      "event.original": 9530,
      "error.message": 9530,
      "@timestamp": 9530,
      "data_stream.dataset": 9530,
      "data_stream.namespace": 9530,
      "data_stream.type": 9530
    },
    "size_in_bytes": 13090458,
    "managed_by": [],
    "package_name": [],
    "beat": [
      "heartbeat"
    ]
  },
  {
    "pattern_name": "nginx",
    "doc_count": 10080,
    "structure_level": {
      "6": 10080
    },
    "index_count": 1,
    "failure_store_doc_count": 0,
    "failure_store_index_count": 0,
    "namespace_count": 1,
    "field_count": 1562,
    "field_existence": {
      "container.id": 10080,
      "log.level": 10080,
      "host.name": 10080,
      "kubernetes.pod.uid": 10080,
      "cloud.provider": 10080,
      "event.dataset": 10080,
      "service.name": 10080,
      "message": 10080,
      "@timestamp": 10080,
      "data_stream.dataset": 10080,
      "data_stream.namespace": 10080,
      "data_stream.type": 10080
    },
    "size_in_bytes": 12098071,
    "managed_by": [],
    "package_name": [],
    "beat": []
  },
  {
    "pattern_name": "apache",
    "doc_count": 1643,
    "structure_level": {
      "6": 1643
    },
    "index_count": 2,
    "failure_store_doc_count": 0,
    "failure_store_index_count": 0,
    "namespace_count": 2,
    "field_count": 1562,
    "field_existence": {
      "container.id": 1643,
      "log.level": 1643,
      "host.name": 1643,
      "kubernetes.pod.uid": 1643,
      "cloud.provider": 1643,
      "event.dataset": 1643,
      "service.name": 1643,
      "message": 1643,
      "@timestamp": 1643,
      "data_stream.dataset": 1643,
      "data_stream.namespace": 1643,
      "data_stream.type": 1643
    },
    "size_in_bytes": 5593675,
    "managed_by": [],
    "package_name": [],
    "beat": []
  },
  {
    "pattern_name": "dsns-logs",
    "doc_count": 123971,
    "structure_level": {
      "2": 112925,
      "6": 11046
    },
    "index_count": 17,
    "failure_store_doc_count": 0,
    "failure_store_index_count": 0,
    "namespace_count": 2,
    "field_count": 1581,
    "field_existence": {
      "container.id": 11046,
      "log.level": 123971,
      "host.name": 123971,
      "kubernetes.pod.uid": 11046,
      "cloud.provider": 11046,
      "event.dataset": 11046,
      "service.name": 123971,
      "message": 11046,
      "@timestamp": 123971,
      "data_stream.dataset": 123971,
      "data_stream.namespace": 123971,
      "data_stream.type": 123971
    },
    "size_in_bytes": 60245641,
    "managed_by": [],
    "package_name": [],
    "beat": []
  },
  {
    "pattern_name": "generic-logs",
    "doc_count": 8,
    "structure_level": {
      "3": 8
    },
    "index_count": 1,
    "failure_store_doc_count": 2,
    "failure_store_index_count": 1,
    "namespace_count": 3,
    "field_count": 1582,
    "field_existence": {
      "container.id": 8,
      "log.level": 8,
      "host.name": 8,
      "message": 8,
      "@timestamp": 8,
      "data_stream.dataset": 8,
      "data_stream.namespace": 8,
      "data_stream.type": 8
    },
    "size_in_bytes": 24826,
    "managed_by": [],
    "package_name": [],
    "beat": []
  }
]
```

</td>
</tr>
</tbody>
</table>

Co-authored-by: Elastic Machine <[email protected]>
…lation and data (elastic#191843)

## Summary

1. Create a new public API endpoint : `DELETE
/api/risk_score/engine/dangerously_delete_data`


## Test cases Result

```
  PASS  x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/delete.test.ts (7.017 s)
  risk engine cleanup route
    invokes the risk engine cleanup route
      ✓ should call the router with the correct route and handler (71 ms)
      ✓ returns a 200 when cleanup is successful (64 ms)
      ✓ returns a 500 when cleanup is unsuccessful (57 ms)
      ✓ returns a 500 when cleanup is unsuccessful with multiple errors (53 ms)
    when task manager is unavailable
      ✓ returns a 400 when task manager is unavailable (55 ms)
    when user does not have the required privileges
      ✓ returns a 403 when user does not have the required privileges (88 ms)
```


### API Responses

## When multiple errors encountered
```
{
    "risk_engine_cleanup": false,
    "errors": [
        {
            "seq": 1,
            "error": "resource_not_found_exception\n\tRoot causes:\n\t\tresource_not_found_exception: Transform with id [risk_score_latest_transform_default] could not be found"
        },
        {
            "seq": 2,
            "error": "index_not_found_exception\n\tRoot causes:\n\t\tindex_not_found_exception: no such index [risk-score.risk-score-default]"
        },
        {
            "seq": 3,
            "error": "index_template_missing_exception\n\tRoot causes:\n\t\tindex_template_missing_exception: index_template [.risk-score.risk-score-default-index-template] missing"
        },
        {
            "seq": 4,
            "error": "resource_not_found_exception\n\tRoot causes:\n\t\tresource_not_found_exception: .risk-score-mappings"
        }
    ],
    "status_code": 500
}
```

## Success

```
{
    "risk_engine_cleanup": true
}
```

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


### OpenAPI spec


![image](https://github.com/user-attachments/assets/56d69602-061d-4a01-9d2b-01a8398ffc76)


### 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)
…eshold rule (elastic#193957)

Closes elastic#193943

### Summary

This PR only loads related alerts for the custom threshold rule and only
when the related rule has tags or group by fields.

For now, we don't show this tab if there is no tag or group and there is
a follow-up ticket for discussing the empty state for the related
alerts.

#### Follow-up work
- elastic#193952
- elastic#193942
## Summary

This PR introduces a "soft delete" for Asset Criticality records.
Instead of deleting the document, we now simply change the criticality
field to the value `"deleted"`.
This value is fully managed on Kibana and should not be exposed to the
client side.


### How to test

1. Add some host/user data
2. Make sure to enable the `entityStoreEnabled` feature flag
3. Assign asset criticality to a user/host.
* You may need to enable Asset Criticality in Kibana Advanced Settings
5. Verify the criticality has been assigned by `GET .asset-citicality*`.
6. Unassign the criticality for that host/user via the UI.
7. `GET`ing the criticality index should now still show the updated
record with `"deleted"` criticality value
8. The Ui should also show criticality as `Unassigned` for the deleted
record.



Implements elastic/security-team#10531, which
is part of the overall [Entity Store for
8.16](elastic/security-team#10529) work
…rkloadAggregator` errors when there are unrecognized task types. (elastic#193479)

Fixes elastic/kibana-team#1036

## Summary

Adding integration test as RCA action for incident where unrecognized
task types was causing issues generating the workload portion of the
task manager health report.

## To verify

Add this line to your code to that will throw an error when there are
unrecognized task types when generating the health report

```
--- a/x-pack/plugins/task_manager/server/task_type_dictionary.ts
+++ b/x-pack/plugins/task_manager/server/task_type_dictionary.ts
@@ -128,6 +128,7 @@ export class TaskTypeDictionary {
   }

   public get(type: string): TaskDefinition | undefined {
+    this.ensureHas(type);
     return this.definitions.get(type);
   }
```

Run the integration test `node scripts/jest_integration.js
x-pack/plugins/task_manager/server/integration_tests/removed_types.test.ts`
and see that it fails because a `WorkloadAggregator` error is logged.

---------

Co-authored-by: Elastic Machine <[email protected]>
## Release Note

Adds error handling framework that provides error message with more
context to user.

## Summary

Relates - [192916](elastic#192916)

This PR adds an error handling framework.
- Add Error classes for specific error scenarios.
- If the error caught is of the predefined Error type the `message` and
`errorCode` is sent back to UI from server.
- The original error message is used to track telemetry and the
errorCode can be translated into a User visible error.
- If there is any non-predefined error server still throws a
`badRequest` with the error message.

This PR also adds/updates the graph images for different langgraphs

## Screenshots for error messages
<img width="690" alt="image"
src="https://github.com/user-attachments/assets/bb848ce7-e474-4e4e-8d07-59b534c543ea">

<img width="691" alt="image"
src="https://github.com/user-attachments/assets/fbf4cf46-9bbe-4c37-aaaa-0ede1cdcba7c">



### 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

### 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)
With some datasets the find structure api will not generate an ingest
pipeline. A recent
[change](elastic#186956) to how we catch
and display errors during file upload means an upload with no pipeline
now produces an error which aborts the upload.
Previously all pipeline creation errors were ignored and hidden from the
user.

This PR changes changes the file upload endpoint to allow it to receive
no ingest pipeline and also changes the UI to not display the pipeline
creation step during upload.

This file can be used to test the fix.
https://github.com/elastic/eland/blob/main/tests/flights.json.gz
## Summary

Intermediate step in converting Data View Management to DataViewLazy.
Moved `useCallback` functionality into central service so much of the
state functionality is in one place and easier to understand and
refactor.

Part of elastic#178926

Broken out from elastic#190292 which
tried to do everything in one go and became too messy.

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Julia Rechkunova <[email protected]>
## Summary

Introduction of the No Data view for the index details Data tab.

### Screenshots
Index without data or mapping

![image](https://github.com/user-attachments/assets/98826d3d-ea2c-434a-9648-35a2098a08e7)

Index with mappings but no Data

![image](https://github.com/user-attachments/assets/16c9f84f-868e-4ccd-9125-2fbef5c275c6)

### 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)
- [ ]
[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
- [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/))
- [ ] 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))
…om descending to ascending (oldest notes to the top) to be consistent with timeline notes and cases (elastic#193893)
As best I can tell this was default assigned to operations during a
large refactor - elastic#138965.

Operations is mostly disconnected from the UI. I'm proposing
transferring this over to area teams where flot is in use - stack
monitoring, canvas, and timelion.
## Summary

I noticed that "september" doesn't look nice as it wraps: 

![Screenshot 2024-09-25 at 12 37
00](https://github.com/user-attachments/assets/9ca4a85b-bcde-4228-9c58-9cddb7f89945)

I suggest we use a shorter format: 

![Screenshot 2024-09-25 at 12 36
48](https://github.com/user-attachments/assets/3f2b2111-c1d9-4bae-a139-bd9ea6e38fc4)
angorayc and others added 22 commits October 1, 2024 13:41
…consolidated into one meaningful list: 0002 (elastic#194430)

Closes: elastic/observability-accessibility#48
Closes:
elastic/observability-accessibility#133

# Description 
Observability has a number of description lists that are used to
identify important key-value pairs for users. Visually these look like a
single list of pairs, but they are coded as multiple single item lists.
This is potentially confusing to screen reader users because these data
points are related and should be in a single, consolidated list.

# What was changed: 

1. Addressed [Issue
elastic#48](elastic/observability-accessibility#48),
which recommended using a single EuiDescriptionList. However, following
the EUI guidelines, for this type of case, it is more appropriate to use
EuiFlexGroup with EuiStats. See the relevant documentation
[here](https://eui.elastic.co/#/display/stat). This PR implements the
suggested change accordingly.

2. To fix
elastic/observability-accessibility#133
aria-label attribute was added for `EuiIconTip`

# Screen: 

> [!NOTE]
> No UI changes


![image](https://github.com/user-attachments/assets/8d516337-45fb-4a86-80fd-9936bfb8f508)
…ust announce their accessible labels (elastic#192450)

Closes: elastic/search-team#8216

## Description
The Choose a name for your connector view has a custom `EuiSuperSelect`
dropdown that does not announce the label text "Connector type" when it
takes keyboard focus. This is especially problematic to screen reader
users because they may not know what the purpose of this dropdown is
without further effort, or at all.

## What was changed?: 

Here's the corrected version of the text with grammar improvements:

## What was changed?

1. The `EditConnector` and `EditDescription` components were updated to
utilize `EuiFormRow`. Using `EuiFormRow` helps resolve the a11y issue
mentioned in the description.
2. The `EditDescription` component was slightly refactored to make it
more EUI-friendly:
- The edit button was aligned to the same level as the description
title.
- To provide users with more context, the Save/Cancel buttons were moved
into `EuiFormRow`. These elements are now associated with the edited
component.
3. `EuiForm` was removed from the `EditConnector` and `EditDescription`
components and added to the parent component, `EditConnector`.

## Screen: 


https://github.com/user-attachments/assets/57392f4c-7c21-45ee-ae3a-eb9a64ec80fd
…view (elastic#192268)

Closes: elastic/search-team#8215

## Description
Three views (Home, Connectors, and Playground) have page titles that are
just "Elastic". These page titles must be unique for each view so users
who rely on browser tab names/ICO files, screen readers, etc. understand
what page they are currently viewing.

## What was changed: 

1. `coreStart.chrome.docTitle.change` method was called for mentioned
places.

## Screen: 

### Home

<img width="1092" alt="image"
src="https://github.com/user-attachments/assets/49ba0ba3-3d01-4db1-b04c-f5db6a1eb359">

### Connectors

<img width="882" alt="image"
src="https://github.com/user-attachments/assets/a2baa0ae-245a-4f3d-9470-c114cdd4323f">

### Playground

<img width="882" alt="image"
src="https://github.com/user-attachments/assets/d91ac1dc-429b-44ac-91bc-c61fc4945ff6">
## Overview

This update adds content for finding connection details and creating an
API key for Elastic Cloud, Self-managed, and Serverless deployments.

## Related Issue

elastic/search-docs-team#179

## Preview

Find your connection details

---------

Co-authored-by: Liam Thompson <[email protected]>
This PR implements tier-based gating for custom notification messages in
Protections. Only users on the Endpoint Complete tier will have the
ability to modify these messages, while users on the Endpoint Essentials
tier will no longer have this capability. If a user on the Essentials
tier had made any changes to custom notifications before this update,
those messages will be reset to the default ones.

The changes are applied in three areas:
1. UI - An upsell banner is displayed for Essentials users.
2. API - We now prevent API calls that attempt to set or modify custom
notification messages for Essentials users.
3. Policy Watcher - Upon Kibana startup (e.g., after a downgrade), we
validate all policies for tier compliance. If a policy contains a custom
notification message and the user is on the Essentials tier, the message
will be reset to the default.

![Screenshot 2024-09-20 at 14 32
52](https://github.com/user-attachments/assets/75739338-e32b-47da-934e-9948f44099ae)
![Screenshot 2024-09-20 at 14 33
21](https://github.com/user-attachments/assets/1af081eb-f75f-4c9d-8f01-df9a01f8f2b2)
![Screenshot 2024-09-20 at 14 33
40](https://github.com/user-attachments/assets/4c0014f5-89f0-48b6-88dc-cc4c2dba666a)
![Screenshot 2024-09-20 at 14 52
25](https://github.com/user-attachments/assets/202e5e1a-7c58-4af1-a85a-399c94313f0b)

---------

Co-authored-by: kibanamachine <[email protected]>
@angorayc angorayc changed the title Onboarding fleet integration Onboarding hub with Fleet integration Oct 1, 2024
weizijun and others added 6 commits October 1, 2024 16:40
… and filtering of inference endpoints (elastic#190783)

Summary
Adds Alibaba AI Search support to the
elastic#186206
(relevance/inference_endpoints) management list view.

The Elasticsearch PR is:
elastic/elasticsearch#111181

I'm not very familiar with kibana. I made this PR from
elastic#188670.

---------

Co-authored-by: Elastic Machine <[email protected]>
Co-authored-by: Dima Arnautov <[email protected]>
Co-authored-by: kibanamachine <[email protected]>
## Summary

> Sass's behavior for declarations that appear after nested
rules will be changing to match the behavior specified by CSS in an
upcoming
version. To keep the existing behavior, move the declaration above the
nested
rule. To opt into the new behavior, wrap the declaration in & {}.

I have moved the declarations above the nested rules.

I had attempted to opt in to the new behavior, but the resulting CSS has
duplicate selectors, which CI does not allow

For more information about the new behavior, see
[here](https://sass-lang.com/documentation/breaking-changes/mixed-decls/)

Closes elastic#190898
[screenshots](elastic#193931 (comment))
Closes elastic#190899
[screenshots](elastic#193931 (comment))
Closes elastic#190900 Access Page uses
`authentication_state_page`, but I was unable to find
'overwrite_session` and `logged_out` pages
Closes elastic#190901
[screenshots](elastic#193931 (comment))
Closes elastic#190902 ^used on same UI
Closes elastic#190903
[screenshots](elastic#193931 (comment))
Closes elastic#190904
[screenshots](elastic#193931 (comment))
## Summary

Try async as much as possible while creating SLO !!

Also UI form won't wait now for creating burn rate rule, it will be
created async loading state in toast !!
### Before


![image](https://github.com/user-attachments/assets/dc73ce58-3fc4-475f-a6ae-71ac98a6432c)

### After


![image](https://github.com/user-attachments/assets/4439bb8b-6768-4d8b-b208-1bad28f17ae5)
@angorayc angorayc closed this Oct 2, 2024
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.