Commit graph

6421 commits

Author SHA1 Message Date
Anton Dosov
ea1c846e54
[TableListView] Improve help text of creator and view count (#202488)
## Summary

This PR brings back version mentions in help text for non-serverless
that we removed in https://github.com/elastic/kibana/pull/193024. In
that PR we decided that it is not worth adding complexity for checking
`isServerless` deep inside table list view components, but I want to
bring version mentions back now because I believe that it can be very
confusing without the version mentions for existing deployments

Two recent features: 1. created_by; 2. view counts are only working
since 8.14 and 8.16 respectively, so for older kibana with old
dashboards it might be confusing that the data for new features is
missing after the upgrade. In help text we can at least mention that the
reason that data is missing is because we only gather the data starting
from a specific version.

### Serverless (version mentions are missing as before) 


![Screenshot 2024-12-06 at 12 39
50](https://github.com/user-attachments/assets/4ad2cd23-3aa7-4400-a5bd-419407f2fad2)
![Screenshot 2024-12-03 at 11 59
09](https://github.com/user-attachments/assets/c56de5d3-1afb-411f-bdbd-419025ef9084)




### Statefull (version are shown again, just like before
https://github.com/elastic/kibana/pull/193024)


![Screenshot 2024-12-06 at 13 03
58](https://github.com/user-attachments/assets/24ea67a5-8a32-45b0-9a4f-2890aaf7ded5)
![Screenshot 2024-12-06 at 13 04
04](https://github.com/user-attachments/assets/8f91d32b-457f-4fd7-882a-d2dd9a3476f4)
![Screenshot 2024-12-03 at 14 11
09](https://github.com/user-attachments/assets/47ea1f8a-1a7b-4aa6-af81-206c6f2d087e)




# Release Notes

Improve help text of creator and view count features on dashboard
listing page
2024-12-06 16:48:20 +01:00
Stratoula Kalafateli
2cd6dc3ff1
[ES|QL] Generate docs and functions (#203210)
## Summary

Updates the docs and functions from ES
2024-12-06 14:40:47 +01:00
Vadim Kibana
79c0827128
[ES|QL] JOIN command Traversal API and prety-printing support (#202750)
## Summary

Partially addresses https://github.com/elastic/kibana/issues/200858

- Add support for the new `JOIN` command and `AS` expression in
Traversal API: `Walker` and `Visitor`
- Adds support for the new `JOIN`command and `AS` expression in the
pretty-printer.
- Fixes some parser bugs related to the `JOIN` command.


### 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
2024-12-06 08:44:23 +01:00
Davis McPhee
4215a637da
[Data Views] Disable scripted field creation in the Data Views management page (#202250)
## Summary

Scripted fields in data views have been deprecated since 7.13, and
superseded by runtime fields.

The ability to create new scripted fields has been removed from the Data
Views management page in 9.0. Existing scripted fields can still be
edited or deleted, and the creation UI can be accessed by navigating
directly to
`/app/management/kibana/dataViews/dataView/{dataViewId}/create-field`,
but it is recommended to migrate to runtime fields or ES|QL instead to
prepare for removal.

Additionally, the scripted fields entry in the Upgrade Assistant has
been updated to reflect these changes, improve migration instructions,
and surface the full list of data views across all spaces that contain
scripted fields as well as their associated spaces. New documentation
has been added to the "Manage data views" page with examples and
instructions to help users migrate off scripted fields to runtime fields
or ES|QL, which is also linked to from the Upgrade Assistant entry.

Data Views management page:

![management](https://github.com/user-attachments/assets/ed42310c-d7fa-48ba-8430-533e9230b48d)

Upgrade Assistant:
<img
src="https://github.com/user-attachments/assets/4ff27866-4fe8-4357-82e8-cd4c503ab50b"
width="500" />

Resolves #182067.

### Checklist

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x]
[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
- [ ] 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)
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Matt Kime <matt@mattki.me>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-05 20:11:34 -04:00
Rodney Norris
434eaa78ad
[Search] Search Playground - shared rendering (#201302) 2024-12-05 15:09:51 -06:00
Sébastien Loix
2ae1dd41b6
[DarkMode] Deprecate advanced setting (#202993) 2024-12-05 16:39:59 +00:00
Jean-Louis Leysens
53b0015340
[OAS] Remove Elastic-Api-Version (#202923)
## Summary

Due to the much slower rate of versioning public APIs we have decided to
remove the Elastic-Api-Version body and header information from the spec
entirely.

This also cleans up the spec when rendered on our hosted OAS docs.

Removes:
1. `Elastic-Api-Version` from the request/response bodies for all public
APIs
2. `Elastic-Api-Version` header parameter from all public APIs

Docs for internal APIs will still have this included as they always
require a version environments.

## To revewers

Important changes are all in `packages/kbn-router-to-openapispec` and
`src/core/server/integration_tests/http/oas.test.ts`, the rest is very
minor or generated/snapshotted changes.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-05 17:05:42 +01:00
Tim Sullivan
6178e8295d
Preparation for High Contrast Mode, Core/SharedUX domains (#202606)
## Summary

**Reviewers: Please test the code paths affected by this PR. See the
"Risks" section below.**

Part of work for enabling "high contrast mode" in Kibana. See
https://github.com/elastic/kibana/issues/176219.

**Background:**
Kibana will soon have a user profile setting to allow users to enable
"high contrast mode." This setting will activate a flag with
`<EuiProvider>` that causes EUI components to render with higher
contrast visual elements. Consumer plugins and packages need to be
updated selected places where `<EuiProvider>` is wrapped, to pass the
`UserProfileService` service dependency from the CoreStart contract.

**NOTE:** **EUI currently does not yet support the high-contrast mode
flag**, but support for that is expected to come in around 2 weeks.
These first PRs are simply preparing the code by wiring up the
`UserProvideService`.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [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] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [medium/high] The implementor of this change did not manually test
the affected code paths and relied on type-checking and functional tests
to drive the changes. Code owners for this PR need to manually test the
affected code paths.
- [ ] [medium] The `UserProfileService` dependency comes from the
CoreStart contract. If acquiring the service causes synchronous code to
become asynchronous, check for race conditions or errors in rendering
React components. Code owners for this PR need to manually test the
affected code paths.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-05 08:26:41 -07:00
Artem Shelkovnikov
b8a41013ca
Add prompt for connector configuration being in editable mode (#202463)
### Closes https://github.com/elastic/search-team/issues/8547
## Summary

User creates connectors following a set of steps. During configuration
step they are able to open configuration form and then click "Next" -
configuration will not be saved and user will not be prompted about it.

This change adds a prompt for this step - if the configuration is in
editable state, the prompt will be shown. It does not check that the
form was edited, however, and it's on purpose. I'm open to changing it
to only prompt if any value changed, but I feel that it's important to
prompt even if no values were entered, just to confirm with the user
that they want to move on without specifying any values.


https://github.com/user-attachments/assets/af768d6d-282d-4f67-a1d0-c54bcf1cb2d0

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] 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
- [ ] 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 was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-05 08:44:16 -06:00
Gerard Soldevila
b2d49b8beb
Sustainable Kibana Architecture: Move modules owned by @elastic/docs (#202416)
## Summary

This PR aims at relocating some of the Kibana modules (plugins and
packages) into a new folder structure, according to the _Sustainable
Kibana Architecture_ initiative. We kindly ask you to:

* Review the moved files, as some of them contain relative paths that
have been updated.
* Review the updated files, as some of them contain references that have
been updated.
* Think of potential impact of the move, including tooling and
configuration files that can be pointing to the relocated modules. E.g.:
  * customised eslint rules
  * docs pointing to source code
* We kindly ask you to:
* Search for the `packages[\/\\]` and `plugins[\/\\]` patterns in the
source code (Babel and Eslint config files), and update them
appropriately.
* Manually review .buildkite/scripts/pipelines/pull_request/pipeline.ts
to ensure that any CI pipeline customizations continue to be correctly
applied after the changed path names
* Review all of the updated files, specially the `.ts` and `.js` files
listed in the sections below.


#### 1 package(s) are going to be relocated:

  | Id | Target folder |
  | -- | ------------- |
  | `@kbn/doc-links` | `src/platform/packages/shared/kbn-doc-links` |


<details>
<summary>Updated references</summary>

```
./docs/upgrade-notes.asciidoc
./package.json
./packages/kbn-repo-packages/package-map.json
./packages/kbn-ts-projects/config-paths.json
./src/core/tsconfig.type_check.json
./src/platform/packages/shared/kbn-doc-links/jest.config.js
./src/plugins/ai_assistant_management/selection/tsconfig.type_check.json
./tsconfig.base.json
./tsconfig.base.type_check.json
./tsconfig.refs.json
./x-pack/plugins/alerting/tsconfig.type_check.json
./x-pack/plugins/search_connectors/tsconfig.type_check.json
./x-pack/plugins/search_inference_endpoints/tsconfig.type_check.json
./x-pack/plugins/search_playground/tsconfig.type_check.json
./x-pack/plugins/security_solution/tsconfig.type_check.json
./x-pack/plugins/serverless_search/tsconfig.type_check.json
./x-pack/plugins/threat_intelligence/tsconfig.type_check.json
./yarn.lock
```
</details>
<details>
<summary>Updated relative paths</summary>

```
src/platform/packages/shared/kbn-doc-links/jest.config.js:12
src/platform/packages/shared/kbn-doc-links/tsconfig.json:2
src/platform/packages/shared/kbn-doc-links/tsconfig.type_check.json:2
```
</details>
<details>
<summary>Script errors</summary>

```

```
</details>
2024-12-05 14:54:58 +01:00
Antonio
7498ab0061
[ResponseOps][Rules] Hide the "Role visibility" dropdown in the new rule form in serverless (#200727)
Fixes #199642

## Summary

~~This PR hides the role visibility dropdown in the new rule form when
in serverless.~~

This PR hides the role visibility dropdown in the new rule form **when
only one consumer is available**.

## How to test

1. Run Kibana security serverless and confirm the rules in stack
management do not have the role visibility dropdown.
2. Please also make sure that the drop-down still shows when
needed(outside of serverless).
2024-12-05 12:20:37 +01:00
Ievgen Sorokopud
efb7890efe
[Security Solution] Move ES|QL parsing functionality into @kbn/securitysolution-utils package (#202772)
## Summary

With this PR we move existing `parseEsqlQuery` method into a shared
security solution utils package. We need to the same functionality in
"SIEM migrations" feature. Previously we duplicated the code in [this
PR](https://github.com/elastic/kibana/pull/202331/files#diff-b5f1a952a5e5a9685a4fef5d1f5a4c3b53ce338333e569bb6f92ccf2681100b7R54)
and these are the follow-up changes to make parsing functionality shared
for easier re-use within security solution.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [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>
2024-12-05 10:12:32 +01:00
Marta Bondyra
2f1ef6f345
[Collapsable panels][A11y] Tabbing through panels in a correct order (#202365)
## Summary

This is a preparatory step for keyboard navigation improvements.

It ensures proper tabbing order by aligning grid positions with the
sequence in the HTML structure, as recommended for accessibility.
Manipulating the tabindex property is an alternative but it's not a good
approach. Keeping grid layouts consistent with the HTML flow is a more
sustainable and accessible approach, as outlined in [related
documentation](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout/Grid_layout_and_accessibility).


https://github.com/user-attachments/assets/d41eac8d-1ee1-47b1-8f40-e3207796573b

I also modified styles for drag and resize handles.

hover:
<img width="913" alt="Screenshot 2024-11-29 at 20 47 13"
src="https://github.com/user-attachments/assets/8348e5ee-9712-4a2b-9135-80a98715dc58">

focus:

<img width="803" alt="Screenshot 2024-11-29 at 20 47 40"
src="https://github.com/user-attachments/assets/8ee65354-0f7e-4394-9718-44d7e2a46700">

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-05 09:10:22 +01:00
Dzmitry Lemechko
cdb5a2dca2
[kbn-test] extract ES logs only for svl (#202927)
## Summary

PR fixes the issue reported by @dolaru when running stateful FTR
environment without docker setup locally:

```
 info [es] killing node
 info [es] stopping node scout
 info [es] no debug files found, assuming es did not write any
 info [es] cleanup complete
ERROR UNHANDLED ERROR
ERROR Error: Command failed with exit code 1: docker ps -a --format {{.Names}}
      error during connect: Get "http://docker.example.com/v1.47/containers/json?all=1": command [ssh -o ConnectTimeout=30 -T -l dolaru -- debian-12-vm docker system dial-stdio] has exited with exit status 255, make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr=ssh: Could not resolve hostname dolaru-m2-mbp-debian.local: nodename nor servname provided, or not known
          at makeError (/Users/dolaru/workspace/kibana/node_modules/execa/lib/error.js:60:11)
          at handlePromise (/Users/dolaru/workspace/kibana/node_modules/execa/index.js:118:26)
          at processTicksAndRejections (node:internal/process/task_queues:95:5)
          at extractAndArchiveLogs (extract_and_archive_logs.ts:34:41)
          at run_elasticsearch.ts:86:5
```

Since we don't need it for stateful ES instance, I added condition.
kbn-scout had the same issue, so I exported `cleanupElasticsearch` from
`kbn-test` to avoid code duplication
2024-12-05 00:19:41 +01:00
Jeramy Soucy
52e021ff7f
Upgrade axios 1.7.4 → 1.7.9 (#202774)
## Summary

Upgrades `axios` from v1.7.4 to v1.7.9.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-04 17:13:35 -05:00
Stratoula Kalafateli
c2f706d250
[ES|QL] Removes the warnings from the console (#202899) 2024-12-04 19:37:05 +01:00
Tim Sullivan
d86896bac0
[SharedUX] Replace Sass with Emotion, Round 1 (#199885)
## Summary

Part of https://github.com/elastic/kibana-team/issues/1082

Selects certain Sass files to replace with styles declared with Emotion.
This PR does not include any changes that would be noticeable by
end-users. It changes the internals to use a different technology for
styling components.

~~Some `className` attributes have been kept, because they are
referenced in JS and tests.~~ Update: all classNames that are no longer
needed for styling purposes have been removed.
* If the className was needed for tests, it has been replaced with a
test-subj.
* If the className was used as a selector in production code, it has
been replaced with alternative JS.

## References
1. https://emotion.sh/docs/globals
2. https://emotion.sh/docs/best-practices
3.
https://github.com/elastic/eui/discussions/6828#discussioncomment-10825360

---------

Co-authored-by: Jatin Kathuria <jatin.kathuria@elastic.co>
2024-12-04 10:39:22 -07:00
Tim Sullivan
871a81c68e
[Reporting] Use Kibana feature privileges only to control access to reporting (#200834)
## Summary

This PR discontinues Reporting from having dual models for determining
the privilege to generate a report, and uses Kibana feature privileges
as the single model that controls those privileges.

### Changes
1. Removes all logic that is based on following settings:
    * `xpack.reporting.roles.enabled`
    * `xpack.reporting.roles.allow`
The settings are still supported, but any features that use the settings
are removed.
2. Removes the detection of the settings from the Upgrade Assistant
integration

### Release note
The default system of granting users the privilege to generate reports
has changed. Rather than assigning users the `reporting_user` role,
administrators should create a custom role that grants report-creation
privileges using Kibana application privileges.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [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
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.

Correlates with https://elasticco.atlassian.net/browse/ES-9856: assign
the built-in `reporting_user` role the necessary Kibana application
privileges, and make the role not marked as deprecated.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-04 09:51:29 -07:00
Eyo O. Eyo
da2ede4839
[React18] Migrate test suites to account for testing library upgrades security-threat-hunting-explore (#201142)
This PR migrates test suites that use `renderHook` from the library
`@testing-library/react-hooks` to adopt the equivalent and replacement
of `renderHook` from the export that is now available from
`@testing-library/react`. This work is required for the planned
migration to react18.

##  Context

In this PR, usages of `waitForNextUpdate` that previously could have
been destructured from `renderHook` are now been replaced with `waitFor`
exported from `@testing-library/react`, furthermore `waitFor`
that would also have been destructured from the same renderHook result
is now been replaced with `waitFor` from the export of
`@testing-library/react`.

***Why is `waitFor` a sufficient enough replacement for
`waitForNextUpdate`, and better for testing values subject to async
computations?***

WaitFor will retry the provided callback if an error is returned, till
the configured timeout elapses. By default the retry interval is `50ms`
with a timeout value of `1000ms` that
effectively translates to at least 20 retries for assertions placed
within waitFor. See
https://testing-library.com/docs/dom-testing-library/api-async/#waitfor
for more information.
This however means that for person's writing tests, said person has to
be explicit about expectations that describe the internal state of the
hook being tested.
This implies checking for instance when a react query hook is being
rendered, there's an assertion that said hook isn't loading anymore.

In this PR you'd notice that this pattern has been adopted, with most
existing assertions following an invocation of `waitForNextUpdate` being
placed within a `waitFor`
invocation. In some cases the replacement is simply a `waitFor(() => new
Promise((resolve) => resolve(null)))` (many thanks to @kapral18, for
point out exactly why this works),
where this suffices the assertions that follow aren't placed within a
waitFor so this PR doesn't get larger than it needs to be.

It's also worth pointing out this PR might also contain changes to test
and application code to improve said existing test.

### What to do next?
1. Review the changes in this PR.
2. If you think the changes are correct, approve the PR.

## Any questions?
If you have any questions or need help with this PR, please leave
comments in this PR.

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Karen Grigoryan <karen.grigoryan@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-04 10:10:37 -06:00
Elena Stoeva
2fcd323927
[Console] Add highlighting for painless language (#202695)
Closes https://github.com/elastic/kibana/issues/201672?reload=1?reload=1

## Summary

This PR adds existing painless rules to the console language so that the
painless scripts are correctly highlighted. We are adding a painless
starting rule that matches a string `"*_script"`, `"inline"`, or
`"source"`, followed by a triple quote, in order to prevent clashing
with the existing rules for triple-quote strings.

Example request with a script:

```
POST _ingest/pipeline/_simulate
{
  "pipeline": { 
    "processors": [
      {
        "script": {
          "description": "Extract 'tags' from 'env' field",
          "lang": "painless",
          "source": """
            String[] envSplit = ctx['env'].splitOnToken(params['delimiter']);
            ArrayList tags = new ArrayList();
            tags.add(envSplit[params['position']].trim());
            ctx['tags'] = tags;
          """,
          "params": {
            "delimiter": "-",
            "position": 1
          }
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "env": "es01-prod"
      }
    }
  ]
}
```

<img width="1049" alt="Screenshot 2024-12-03 at 12 02 52"
src="https://github.com/user-attachments/assets/fb249953-a998-40c0-9775-3474e15b5de2">
2024-12-04 08:48:16 -06:00
Georgiana-Andreea Onoleață
2884d903de
[ResponseOps][Alerting] Show missing Slack connectors in the new rule form (#202315)
Closes https://github.com/elastic/kibana/issues/201673

## Summary

- changed the logic to create the connectorsMap (which gives us the
connector type filters):
- Only the '**slack'** and **'slack API'** connector types include a
`subtype` array. I updated the logic so that when the `actionTypeModel`
has **hideInUi** set to true (indicating a 'slack API' connector), it
searches for a **'slack'** connector in the subtype. If a **'slack'**
connector is found, `otherActionTypeId` is set to 'slack'; otherwise, it
is set to `undefined`. This effectively "maps" the 'slack API' type to
the 'slack' type within the `connectorsMap`

- changed the logic to create the `filteredConnectors` (which gives us
the connectors to display, filtered after the type):
- The **selectedConnectorType** can only be '**slack'** because, in the
`connectorsMap`, the '**slack API'** option has already been mapped to
'**slack'** and is no longer included as a separate type.
- If the `subtype` includes **'slack',** the filter will return
connectors with `actionTypeId` of either 'slack' or 'slack API'.
- This ensures that both 'slack' and 'slack API' connectors are
displayed, as 'slack API' is associated with the 'slack' type through
the subtype.
    


https://github.com/user-attachments/assets/9cccaf42-b6db-4eea-b2fd-8f37f0e24745

## Release note
Fix Slack API connectors not displayed under Slack connector type when
adding new connector to rule.
2024-12-04 16:05:38 +02:00
Pierre Gayvallet
14ad13b6a3
Add base FTR test coverage for inference APIs (#198000)
## Summary

Part of https://github.com/elastic/kibana-team/issues/1271

This PR introduces the first set of end to end integration test for the
inference APIs, and the tooling required to do so (see issue for more
context)

- Add a dedicated pipeline for ai-infra GenAI tests. pipeline is
triggered when:
  - genAI stack connectors, or ai-infra owned code is changed
  - when the `ci:all-gen-ai-suites` label is present on a PR
  - on merge
- adapt the `ftr_configs.sh` script to load GenAI connector
configuration from vault when a specific var env is set
- create the `@kbn/gen-ai-functional-testing` package, which for now
only contains utilities to load the GenAI connector configuration in FTR
tests
- Add FTR integration tests for the `chatComplete` API of the
`inference` plugin

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-04 06:39:45 -06:00
Vadim Kibana
df37092b20
[ES|QL] JOIN command parser support (#202749)
## Summary

Partially addresses https://github.com/elastic/kibana/issues/200858

- Adds `JOIN` command support in Kibana ES|QL AST and parser.
- Adds `commandType` to AST nodes, to support `<TYPE> JOIN ...` in join
commands.
- Adds `AS` binary expression, to support *target* aliassing in `JOIN`
commands: `LEFT JOIN a AS b`


### 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
2024-12-04 06:19:59 -06:00
Dzmitry Lemechko
0de974315d
[kbn-es] update cluster definition in security roles (#202663)
## Summary

Updating pre-defined security project roles with recent controller
changes.
2024-12-04 10:16:30 +01:00
Tomasz Kajtoch
765ab20da1
Upgrade EUI to v98.1.0 (#202073) 2024-12-03 21:03:45 -06:00
Davis McPhee
22141cbbfa
[ES|QL] Fix editor cursor jumpiness (#202389)
## Summary

Closes https://github.com/elastic/kibana/issues/191216

This PR fixes my least favourite editor bug - the cursor jumpiness! It
turns out this was just due to Monaco editor being picky about styles. I
removed the margin from the editor since that's what was causing the
cursor to be off, and then added an equivalent number of pixels to
`lineDecorationsWidth` so it's visually the same.

I tracked the issue back to this PR in 8.15: #186345. It may not make it
in the last planned 8.15 patch release, but we can backport there anyway
just in case.

Before:


https://github.com/user-attachments/assets/924bbdb4-0ba6-446c-a4ad-63332f43f158

After:


https://github.com/user-attachments/assets/864bedd0-c711-4910-b7a7-6a54e27e9148

Fixes #191216.

### 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
- [ ] 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 was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2024-12-03 20:12:04 -04:00
elastic-renovate-prod[bot]
549d57445a
Update @elastic/appex-ai-infra (main) (#200579)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| @&#8203;langtrase/trace-attributes | dependencies | major | [`^3.0.8`
->
`^7.5.0`](https://renovatebot.com/diffs/npm/@langtrase%2ftrace-attributes/3.0.8/7.5.0)
|
|
[@smithy/eventstream-serde-node](https://togithub.com/awslabs/smithy-typescript/tree/main/packages/eventstream-serde-node)
([source](https://togithub.com/awslabs/smithy-typescript/tree/HEAD/packages/eventstream-serde-node))
| dependencies | patch | [`^3.0.3` ->
`^3.0.12`](https://renovatebot.com/diffs/npm/@smithy%2feventstream-serde-node/3.0.3/3.0.12)
|
|
[@smithy/protocol-http](https://togithub.com/awslabs/smithy-typescript/tree/main/packages/protocol-http)
([source](https://togithub.com/awslabs/smithy-typescript/tree/HEAD/packages/protocol-http))
| dependencies | minor | [`^4.0.2` ->
`^4.1.7`](https://renovatebot.com/diffs/npm/@smithy%2fprotocol-http/4.0.2/4.1.7)
|
|
[@smithy/signature-v4](https://togithub.com/awslabs/smithy-typescript/tree/main/packages/signature-v4)
([source](https://togithub.com/awslabs/smithy-typescript/tree/HEAD/packages/signature-v4))
| dependencies | major | [`^3.1.1` ->
`^4.2.3`](https://renovatebot.com/diffs/npm/@smithy%2fsignature-v4/3.1.1/4.2.3)
|
|
[@smithy/types](https://togithub.com/awslabs/smithy-typescript/tree/main/packages/types)
([source](https://togithub.com/awslabs/smithy-typescript/tree/HEAD/packages/types))
| dependencies | minor | [`^3.2.0` ->
`^3.7.1`](https://renovatebot.com/diffs/npm/@smithy%2ftypes/3.2.0/3.7.1)
|
|
[@types/json-schema](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/json-schema))
| devDependencies | patch | [`^7` ->
`^7.0.15`](https://renovatebot.com/diffs/npm/@types%2fjson-schema/7.0.11/7.0.15)
|
| [ajv](https://ajv.js.org)
([source](https://togithub.com/ajv-validator/ajv)) | dependencies |
minor | [`^8.12.0` ->
`^8.17.1`](https://renovatebot.com/diffs/npm/ajv/8.12.0/8.17.1) |
| [aws4](https://togithub.com/mhart/aws4) | dependencies | minor |
[`^1.12.0` ->
`^1.13.2`](https://renovatebot.com/diffs/npm/aws4/1.12.0/1.13.2) |
| [eventsource-parser](https://togithub.com/rexxars/eventsource-parser)
| dependencies | major | [`^1.1.1` ->
`^3.0.0`](https://renovatebot.com/diffs/npm/eventsource-parser/1.1.1/3.0.0)
|
| [fast-glob](https://togithub.com/mrmlnc/fast-glob) | resolutions |
patch | [`^3.2.11` ->
`^3.3.2`](https://renovatebot.com/diffs/npm/fast-glob/3.3.2/3.3.2) |
| [gpt-tokenizer](https://togithub.com/niieani/gpt-tokenizer) |
dependencies | minor | [`^2.1.2` ->
`^2.6.2`](https://renovatebot.com/diffs/npm/gpt-tokenizer/2.1.2/2.6.2) |
| [langsmith](https://togithub.com/langchain-ai/langsmith-sdk) |
dependencies | patch | [`^0.2.3` ->
`^0.2.5`](https://renovatebot.com/diffs/npm/langsmith/0.2.3/0.2.5) |
| [openai](https://togithub.com/openai/openai-node) | dependencies |
minor | [`^4.68.0` ->
`^4.72.0`](https://renovatebot.com/diffs/npm/openai/4.69.0/4.72.0) |
| [table](https://togithub.com/gajus/table) | devDependencies | patch |
[`^6.8.1` ->
`^6.8.2`](https://renovatebot.com/diffs/npm/table/6.8.1/6.8.2) |

---

### Release Notes

<details>
<summary>awslabs/smithy-typescript
(@&#8203;smithy/eventstream-serde-node)</summary>

###
[`v3.0.12`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#3012)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.11...@smithy/eventstream-serde-node@3.0.12)

##### Patch Changes

- Updated dependencies
\[[`fcd5ca8`](fcd5ca8)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).7.1
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.12

###
[`v3.0.11`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#3011)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.10...@smithy/eventstream-serde-node@3.0.11)

##### Patch Changes

- Updated dependencies
\[[`cd1929b`](cd1929b)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).7.0
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.11

###
[`v3.0.10`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#3010)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.9...@smithy/eventstream-serde-node@3.0.10)

##### Patch Changes

- Updated dependencies
\[[`84bec05`](84bec05)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).6.0
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.10

###
[`v3.0.9`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#309)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.8...@smithy/eventstream-serde-node@3.0.9)

##### Patch Changes

- Updated dependencies
\[[`a4c1285`](a4c1285)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).5.0
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.9

###
[`v3.0.8`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#308)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.7...@smithy/eventstream-serde-node@3.0.8)

##### Patch Changes

- Updated dependencies
\[[`e7b438b`](e7b438b)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.2
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.8

###
[`v3.0.7`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#307)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.6...@smithy/eventstream-serde-node@3.0.7)

##### Patch Changes

- Updated dependencies
\[[`cf9257e`](cf9257e)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.1
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.7

###
[`v3.0.6`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#306)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.5...@smithy/eventstream-serde-node@3.0.6)

##### Patch Changes

- Updated dependencies
\[[`2dad138`](2dad138)]
- Updated dependencies
\[[`9f3f2f5`](9f3f2f5)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.0
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.6

###
[`v3.0.5`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#305)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.4...@smithy/eventstream-serde-node@3.0.5)

##### Patch Changes

- Updated dependencies
\[[`b352cc1`](b352cc1)]
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.5

###
[`v3.0.4`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/eventstream-serde-node/CHANGELOG.md#304)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/eventstream-serde-node@3.0.3...@smithy/eventstream-serde-node@3.0.4)

##### Patch Changes

- Updated dependencies
\[[`4784fb9`](4784fb9)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).3.0
-
[@&#8203;smithy/eventstream-serde-universal](https://togithub.com/smithy/eventstream-serde-universal)[@&#8203;3](https://togithub.com/3).0.4

</details>

<details>
<summary>awslabs/smithy-typescript
(@&#8203;smithy/protocol-http)</summary>

###
[`v4.1.7`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#417)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.1.6...@smithy/protocol-http@4.1.7)

##### Patch Changes

- Updated dependencies
\[[`fcd5ca8`](fcd5ca8)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).7.1

###
[`v4.1.6`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#416)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.1.5...@smithy/protocol-http@4.1.6)

##### Patch Changes

- Updated dependencies
\[[`cd1929b`](cd1929b)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).7.0

###
[`v4.1.5`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#415)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.1.4...@smithy/protocol-http@4.1.5)

##### Patch Changes

- Updated dependencies
\[[`84bec05`](84bec05)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).6.0

###
[`v4.1.4`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#414)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.1.3...@smithy/protocol-http@4.1.4)

##### Patch Changes

- Updated dependencies
\[[`a4c1285`](a4c1285)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).5.0

###
[`v4.1.3`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#413)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.1.2...@smithy/protocol-http@4.1.3)

##### Patch Changes

- Updated dependencies
\[[`e7b438b`](e7b438b)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.2

###
[`v4.1.2`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#412)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.1.1...@smithy/protocol-http@4.1.2)

##### Patch Changes

- Updated dependencies
\[[`cf9257e`](cf9257e)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.1

###
[`v4.1.1`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#411)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.1.0...@smithy/protocol-http@4.1.1)

##### Patch Changes

- Updated dependencies
\[[`2dad138`](2dad138)]
- Updated dependencies
\[[`9f3f2f5`](9f3f2f5)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.0

###
[`v4.1.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#410)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.0.4...@smithy/protocol-http@4.1.0)

##### Minor Changes

-
[`86862ea`](86862ea):
switch to static HttpRequest clone method

###
[`v4.0.4`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#404)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.0.3...@smithy/protocol-http@4.0.4)

##### Patch Changes

-
[`796567d`](796567d):
add guidance for HttpRequest cloning

###
[`v4.0.3`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/protocol-http/CHANGELOG.md#403)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/protocol-http@4.0.2...@smithy/protocol-http@4.0.3)

##### Patch Changes

- Updated dependencies
\[[`4784fb9`](4784fb9)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).3.0

</details>

<details>
<summary>awslabs/smithy-typescript
(@&#8203;smithy/signature-v4)</summary>

###
[`v4.2.3`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#423)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.2.2...@smithy/signature-v4@&#8203;4.2.3)

##### Patch Changes

- Updated dependencies
\[[`fcd5ca8`](fcd5ca8)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).7.1
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.7
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.10

###
[`v4.2.2`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#422)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.2.1...@smithy/signature-v4@&#8203;4.2.2)

##### Patch Changes

- Updated dependencies
\[[`cd1929b`](cd1929b)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).7.0
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.6
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.9

###
[`v4.2.1`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#421)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.2.0...@smithy/signature-v4@&#8203;4.2.1)

##### Patch Changes

- Updated dependencies
\[[`84bec05`](84bec05)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).6.0
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.5
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.8

###
[`v4.2.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#420)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.1.4...@smithy/signature-v4@&#8203;4.2.0)

##### Minor Changes

-
[`a4c1285`](a4c1285):
configurable hoisted headers

##### Patch Changes

- Updated dependencies
\[[`a4c1285`](a4c1285)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).5.0
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.4
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.7

###
[`v4.1.4`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#414)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.1.3...@smithy/signature-v4@&#8203;4.1.4)

##### Patch Changes

-
[`806cc7f`](806cc7f):
fix: sort query parameter keys after encoding

###
[`v4.1.3`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#413)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.1.2...@smithy/signature-v4@&#8203;4.1.3)

##### Patch Changes

- Updated dependencies
\[[`e7b438b`](e7b438b)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.2
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.3
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.6

###
[`v4.1.2`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#412)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.1.1...@smithy/signature-v4@&#8203;4.1.2)

##### Patch Changes

- Updated dependencies
\[[`cf9257e`](cf9257e)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.1
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.2
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.5

###
[`v4.1.1`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#411)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.1.0...@smithy/signature-v4@&#8203;4.1.1)

##### Patch Changes

- Updated dependencies
\[[`2dad138`](2dad138)]
- Updated dependencies
\[[`9f3f2f5`](9f3f2f5)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).4.0
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.1
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.4

###
[`v4.1.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#410)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;4.0.0...@smithy/signature-v4@&#8203;4.1.0)

##### Minor Changes

-
[`86862ea`](86862ea):
switch to static HttpRequest clone method

##### Patch Changes

- Updated dependencies
\[[`86862ea`](86862ea)]
-
[@&#8203;smithy/protocol-http](https://togithub.com/smithy/protocol-http)[@&#8203;4](https://togithub.com/4).1.0

###
[`v4.0.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#400)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;3.1.2...@smithy/signature-v4@&#8203;4.0.0)

##### Major Changes

-
[`ae8bf5c`](ae8bf5c):
Make sha256 required parameter for SigV4 constructor

###
[`v3.1.2`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/signature-v4/CHANGELOG.md#312)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/signature-v4@&#8203;3.1.1...@smithy/signature-v4@&#8203;3.1.2)

##### Patch Changes

- Updated dependencies
\[[`4784fb9`](4784fb9)]
-
[@&#8203;smithy/types](https://togithub.com/smithy/types)[@&#8203;3](https://togithub.com/3).3.0
-
[@&#8203;smithy/util-middleware](https://togithub.com/smithy/util-middleware)[@&#8203;3](https://togithub.com/3).0.3

</details>

<details>
<summary>awslabs/smithy-typescript (@&#8203;smithy/types)</summary>

###
[`v3.7.1`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#371)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.7.0...@smithy/types@3.7.1)

##### Patch Changes

-
[`fcd5ca8`](fcd5ca8):
prevent infinite recursion with NoUndefined and RecursiveRequired re:
DocumentType

###
[`v3.7.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#370)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.6.0...@smithy/types@3.7.0)

##### Minor Changes

-
[`cd1929b`](cd1929b):
vitest compatibility

###
[`v3.6.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#360)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.5.0...@smithy/types@3.6.0)

##### Minor Changes

-
[`84bec05`](84bec05):
add feature identification map to smithy context

###
[`v3.5.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#350)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.4.2...@smithy/types@3.5.0)

##### Minor Changes

-
[`a4c1285`](a4c1285):
configurable hoisted headers

###
[`v3.4.2`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#342)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.4.1...@smithy/types@3.4.2)

##### Patch Changes

-
[`e7b438b`](e7b438b):
add interface stub for browser RequestInit type

###
[`v3.4.1`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#341)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.4.0...@smithy/types@3.4.1)

##### Patch Changes

-
[`cf9257e`](cf9257e):
add requestInit options to fetch

###
[`v3.4.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#340)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.3.0...@smithy/types@3.4.0)

##### Minor Changes

-
[`2dad138`](2dad138):
Add string array to EndpointParameters

##### Patch Changes

-
[`9f3f2f5`](9f3f2f5):
fix type transforms

###
[`v3.3.0`](https://togithub.com/awslabs/smithy-typescript/blob/HEAD/packages/types/CHANGELOG.md#330)

[Compare
Source](https://togithub.com/awslabs/smithy-typescript/compare/@smithy/types@3.2.0...@smithy/types@3.3.0)

##### Minor Changes

-
[`4784fb9`](4784fb9):
Adding support for setting the fetch API credentials mode

</details>

<details>
<summary>ajv-validator/ajv (ajv)</summary>

###
[`v8.17.1`](https://togithub.com/ajv-validator/ajv/releases/tag/v8.17.1)

[Compare
Source](https://togithub.com/ajv-validator/ajv/compare/v8.16.0...v8.17.1)

#### What's Changed

- bump version to 8.17.1 by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2472](https://togithub.com/ajv-validator/ajv/pull/2472)

**Full Changelog**:
https://github.com/ajv-validator/ajv/compare/v8.17.0...v8.17.1

#### Plus everything in 8.17.0 which failed to release

The only functional change is to switch from uri-js (which is no longer
supported), to fast-uri. This is the second attempt and the team on
fast-uri have been really helpful addressing the issues we found last
time.

Revert "Revert fast-uri change
([https://github.com/ajv-validator/ajv/pull/2444](https://togithub.com/ajv-validator/ajv/pull/2444))"
by [@&#8203;gurgunday](https://togithub.com/gurgunday) in
[https://github.com/ajv-validator/ajv/pull/2448](https://togithub.com/ajv-validator/ajv/pull/2448)
fix: ignore new eslint error for
[@&#8203;typescript-eslint/no-extraneous-class](https://togithub.com/typescript-eslint/no-extraneous-class)
by [@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2455](https://togithub.com/ajv-validator/ajv/pull/2455)
docs: clarify behaviour of addVocabulary by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2454](https://togithub.com/ajv-validator/ajv/pull/2454)
docs: refactor to improve legibility by
[@&#8203;blottn](https://togithub.com/blottn) in
[https://github.com/ajv-validator/ajv/pull/2432](https://togithub.com/ajv-validator/ajv/pull/2432)
Fix grammatical typo in managing-schemas.md by
[@&#8203;wetneb](https://togithub.com/wetneb) in
[https://github.com/ajv-validator/ajv/pull/2305](https://togithub.com/ajv-validator/ajv/pull/2305)
docs: Fix broken strict-mode link by
[@&#8203;alexanderjsx](https://togithub.com/alexanderjsx) in
[https://github.com/ajv-validator/ajv/pull/2459](https://togithub.com/ajv-validator/ajv/pull/2459)
feat: add test for encoded refs and bump fast-uri by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2449](https://togithub.com/ajv-validator/ajv/pull/2449)
fix: changes for
[@&#8203;typescript-eslint/array-type](https://togithub.com/typescript-eslint/array-type)
rule by [@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2467](https://togithub.com/ajv-validator/ajv/pull/2467)
fixes
[https://github.com/ajv-validator/ajv/issues/2217](https://togithub.com/ajv-validator/ajv/issues/2217)
- clarify custom keyword naming by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2457](https://togithub.com/ajv-validator/ajv/pull/2457)

###
[`v8.16.0`](https://togithub.com/ajv-validator/ajv/releases/tag/v8.16.0)

[Compare
Source](https://togithub.com/ajv-validator/ajv/compare/v8.15.0...v8.16.0)

#### What's Changed

- Revert fast-uri change by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2444](https://togithub.com/ajv-validator/ajv/pull/2444)

**Full Changelog**:
https://github.com/ajv-validator/ajv/compare/v8.15.0...v8.16.0

###
[`v8.15.0`](https://togithub.com/ajv-validator/ajv/releases/tag/v8.15.0)

[Compare
Source](https://togithub.com/ajv-validator/ajv/compare/v8.14.0...v8.15.0)

#### What's Changed

- Replace `uri-js` with `fast-uri` by
[@&#8203;vixalien](https://togithub.com/vixalien) in
[https://github.com/ajv-validator/ajv/pull/2415](https://togithub.com/ajv-validator/ajv/pull/2415)
- Bump to 8.15.0 by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2442](https://togithub.com/ajv-validator/ajv/pull/2442)

#### New Contributors

- [@&#8203;vixalien](https://togithub.com/vixalien) made their first
contribution in
[https://github.com/ajv-validator/ajv/pull/2415](https://togithub.com/ajv-validator/ajv/pull/2415)

**Full Changelog**:
https://github.com/ajv-validator/ajv/compare/v8.14.0...v8.15.0

###
[`v8.14.0`](https://togithub.com/ajv-validator/ajv/releases/tag/v8.14.0)

[Compare
Source](https://togithub.com/ajv-validator/ajv/compare/v8.13.0...v8.14.0)

#### What's Changed

- readme: build badge by
[@&#8203;epoberezkin](https://togithub.com/epoberezkin) in
[https://github.com/ajv-validator/ajv/pull/2424](https://togithub.com/ajv-validator/ajv/pull/2424)
- Update workflows by [@&#8203;rotu](https://togithub.com/rotu) in
[https://github.com/ajv-validator/ajv/pull/2410](https://togithub.com/ajv-validator/ajv/pull/2410)
- docs: add warning to maxLength / minLength by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2428](https://togithub.com/ajv-validator/ajv/pull/2428)
- fix: broken link in docs warning by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2431](https://togithub.com/ajv-validator/ajv/pull/2431)
- compileAsync a schema with discriminator and $ref, fixes
[#&#8203;2427](https://togithub.com/ajv-validator/ajv/issues/2427) by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2433](https://togithub.com/ajv-validator/ajv/pull/2433)
- bump version to 8.14.0 for publishing by
[@&#8203;jasoniangreen](https://togithub.com/jasoniangreen) in
[https://github.com/ajv-validator/ajv/pull/2440](https://togithub.com/ajv-validator/ajv/pull/2440)

#### New Contributors

- [@&#8203;rotu](https://togithub.com/rotu) made their first
contribution in
[https://github.com/ajv-validator/ajv/pull/2410](https://togithub.com/ajv-validator/ajv/pull/2410)

**Full Changelog**:
https://github.com/ajv-validator/ajv/compare/v8.13.0...v8.14.0

###
[`v8.13.0`](https://togithub.com/ajv-validator/ajv/releases/tag/v8.13.0)

[Compare
Source](https://togithub.com/ajv-validator/ajv/compare/v8.12.0...v8.13.0)

-   add named exports
-   update dependencies
-   update node.js

</details>

<details>
<summary>mhart/aws4 (aws4)</summary>

### [`v1.13.2`](https://togithub.com/mhart/aws4/releases/tag/v1.13.2)

[Compare
Source](https://togithub.com/mhart/aws4/compare/v1.13.1...v1.13.2)

Limit hostname labels to 63 chars max.

[63 octets is the maximum length a hostname label can
be.](https://en.wikipedia.org/wiki/Hostname#Syntax)

Thanks to 김한솔 for contacting me – this contact prompted me to make this
change.

**Full Changelog**:
https://github.com/mhart/aws4/compare/v1.13.1...v1.13.2

### [`v1.13.1`](https://togithub.com/mhart/aws4/releases/tag/v1.13.1)

[Compare
Source](https://togithub.com/mhart/aws4/compare/v1.13.0...v1.13.1)

Fixes [#&#8203;157](https://togithub.com/mhart/aws4/issues/157)
[#&#8203;158](https://togithub.com/mhart/aws4/issues/158)
[#&#8203;168](https://togithub.com/mhart/aws4/issues/168)

We introduce an extra (non-documented) function here, `filterHeaders`,
to populate a cached value `filteredHeaders` similar to `parsedPath`.

Thanks to [@&#8203;Hobart2967](https://togithub.com/Hobart2967) and
[@&#8203;mxxk](https://togithub.com/mxxk) for their contributions (and
nudges!)

### [`v1.13.0`](https://togithub.com/mhart/aws4/releases/tag/v1.13.0)

[Compare
Source](https://togithub.com/mhart/aws4/compare/v1.12.1...v1.13.0)

Copy headers on the request so that (among other things) users can reuse
a headers object across multiple requests without it being modified.

###
[`v1.12.1`](https://togithub.com/mhart/aws4/compare/v1.12.0...v1.12.1)

[Compare
Source](https://togithub.com/mhart/aws4/compare/v1.12.0...v1.12.1)

</details>

<details>
<summary>rexxars/eventsource-parser (eventsource-parser)</summary>

###
[`v3.0.0`](https://togithub.com/rexxars/eventsource-parser/blob/HEAD/CHANGELOG.md#300-2024-10-19)

[Compare
Source](https://togithub.com/rexxars/eventsource-parser/compare/v2.0.1...v3.0.0)

##### ⚠ BREAKING CHANGES

- The parser now takes an object of callbacks instead of an `onParse`
callback. This means you do not have to check the type of the event in
the `onEvent` callback, but instead provide separate callbacks for each
event type.
- The `ParsedEvent` type has been renamed to `EventSourceMessage` and
the `type` attribute has been removed.
- The `EventSourceCallback` type has been removed in favor of the
`ParserCallbacks` interface.

BREAKING CHNAGE: The `ReconnectInterval` type has been removed in favor
of providing the interval directly to the `onRetry` callback.

- The `ParseEvent` type has been removed in favor of providing separate
callbacks for each event type.
- The parser has been rewritten to be more specification compliant.
Certain *rare* edge cases may now be handled differently. Mixed CRLF and
LF line endings will now be handled correctly. `retry` fields now have
to be completely valid integers to be parsed.

##### Features

- provide `onError`, `onComment`, and `onRetry` callbacks
([#&#8203;15](https://togithub.com/rexxars/eventsource-parser/issues/15))
([c544729](c54472901d))

###
[`v2.0.1`](https://togithub.com/rexxars/eventsource-parser/blob/HEAD/CHANGELOG.md#201-2024-08-07)

[Compare
Source](https://togithub.com/rexxars/eventsource-parser/compare/v2.0.0...v2.0.1)

##### Bug Fixes

- include root-level legacy export in published files
([c814b4b](c814b4bc03))

###
[`v2.0.0`](https://togithub.com/rexxars/eventsource-parser/blob/HEAD/CHANGELOG.md#200-2024-08-07)

[Compare
Source](https://togithub.com/rexxars/eventsource-parser/compare/v1.1.2...v2.0.0)

##### ⚠ BREAKING CHANGES

-   BREAKING: minimum node.js version is now v18

##### Bug Fixes

- BREAKING: minimum node.js version is now v18
([d652333](d652333674))
- enable legacy exports
([b88e02c](b88e02cdfb))

###
[`v1.1.2`](https://togithub.com/rexxars/eventsource-parser/blob/HEAD/CHANGELOG.md#112-2024-02-13)

[Compare
Source](https://togithub.com/rexxars/eventsource-parser/compare/v1.1.1...v1.1.2)

##### Bug Fixes

- add field `typesVersions` in package.json
([efcde97](efcde97173)),
closes
[#&#8203;7](https://togithub.com/rexxars/eventsource-parser/issues/7)

</details>

<details>
<summary>niieani/gpt-tokenizer (gpt-tokenizer)</summary>

###
[`v2.6.2`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.6.2)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.6.1...2.6.2)

##### Bug Fixes

- correct special token matching & counting
([3547826](3547826b37))
- unify property and variable names across the library
([6030d91](6030d91cbd))

###
[`v2.6.1`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.6.1)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.6.0...2.6.1)

##### Bug Fixes

- expose vocabulary size
([402ff0b](402ff0bea1)),
closes
[#&#8203;66](https://togithub.com/niieani/gpt-tokenizer/issues/66)
- use extensions in models.ts
([78b803d](78b803d4cf)),
closes
[#&#8203;65](https://togithub.com/niieani/gpt-tokenizer/issues/65)

###
[`v2.6.0`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.6.0)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.5.1...2.6.0)

##### Bug Fixes

- initialize encodings array in parts
([aa6c71d](aa6c71d1d3)),
closes
[#&#8203;62](https://togithub.com/niieani/gpt-tokenizer/issues/62)

##### Features

- add new and update existing models
([e832f9a](e832f9a3c6))
- provide comprehensive data for all OpenAI models
([ec2ad7e](ec2ad7efc7))

###
[`v2.5.1`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.5.1)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.5.0...2.5.1)

(no changes, only benchmark update)

###
[`v2.5.0`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.5.0)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.4.1...2.5.0)

##### Features

- added o1-preview and o1-mini chat completion models
([#&#8203;56](https://togithub.com/niieani/gpt-tokenizer/issues/56))
([41673af](41673afe70))

###
[`v2.4.1`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.4.1)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.4.0...2.4.1)

##### Bug Fixes

- **deps:** update dependency gpt-tokenizer to ^2.4.0
([bf4b459](bf4b459d8d))

###
[`v2.4.0`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.4.0)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.3.0...2.4.0)

##### Features

- performance optimizations
([661e283](661e283ec9))

###
[`v2.3.0`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.3.0)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.2.3...2.3.0)

##### Features

- improve performance, memory usage & initialization time
([#&#8203;50](https://togithub.com/niieani/gpt-tokenizer/issues/50))
([e2c560a](e2c560aafe)),
closes
[#&#8203;18](https://togithub.com/niieani/gpt-tokenizer/issues/18)
[#&#8203;35](https://togithub.com/niieani/gpt-tokenizer/issues/35)

###
[`v2.2.3`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.2.3)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.2.2...2.2.3)

##### Bug Fixes

- **deps:** update dependency rfc4648 to ^1.5.3
([fcbf48a](fcbf48a553))

###
[`v2.2.2`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.2.2)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.2.1...2.2.2)

##### Bug Fixes

- improve test typing
([bbd0764](bbd0764ad2))
- upgrade dependencies (including typescript)
([75ebd54](75ebd542d8)),
closes
[#&#8203;49](https://togithub.com/niieani/gpt-tokenizer/issues/49)

###
[`v2.2.1`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.2.1)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.2.0...2.2.1)

##### Bug Fixes

- add files for other models
([c21d498](c21d4986b2)),
closes
[#&#8203;19](https://togithub.com/niieani/gpt-tokenizer/issues/19)
- regenerate o200k encoding from tiktoken file
([c7ba009](c7ba0091c6))

###
[`v2.2.0`](https://togithub.com/niieani/gpt-tokenizer/releases/tag/2.2.0)

[Compare
Source](https://togithub.com/niieani/gpt-tokenizer/compare/2.1.2...2.2.0)

##### Bug Fixes

- add correct encoding for o200k_base
([137e07b](137e07ba92))
- add gpt-4o on readme as supported model
([27b4e20](27b4e20dc4))
- update readme
([0b33e1e](0b33e1edbe))

##### Features

- add o200k_base test plans
([44ce38e](44ce38eae9))
- added o200k_base to encodings and configured it's specialTokens
([2a9da2b](2a9da2b799))

</details>

<details>
<summary>openai/openai-node (openai)</summary>

###
[`v4.72.0`](https://togithub.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4720-2024-11-12)

[Compare
Source](https://togithub.com/openai/openai-node/compare/v4.71.1...v4.72.0)

Full Changelog:
[v4.71.1...v4.72.0](https://togithub.com/openai/openai-node/compare/v4.71.1...v4.72.0)

##### Features

- add back deno runtime testing without type checks
([1626cf5](1626cf57e9))

##### Chores

- **ecosystem-tests:** bump wrangler version
([#&#8203;1178](https://togithub.com/openai/openai-node/issues/1178))
([4dfb0c6](4dfb0c6aa7))

###
[`v4.71.1`](https://togithub.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4711-2024-11-06)

[Compare
Source](https://togithub.com/openai/openai-node/compare/v4.71.0...v4.71.1)

Full Changelog:
[v4.71.0...v4.71.1](https://togithub.com/openai/openai-node/compare/v4.71.0...v4.71.1)

##### Bug Fixes

- change release please configuration for jsr.json
([#&#8203;1174](https://togithub.com/openai/openai-node/issues/1174))
([c39efba](c39efba812))

###
[`v4.71.0`](https://togithub.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4710-2024-11-04)

[Compare
Source](https://togithub.com/openai/openai-node/compare/v4.70.3...v4.71.0)

Full Changelog:
[v4.70.3...v4.71.0](https://togithub.com/openai/openai-node/compare/v4.70.3...v4.71.0)

##### Features

- **api:** add support for predicted outputs
([#&#8203;1172](https://togithub.com/openai/openai-node/issues/1172))
([08a7bb4](08a7bb4d4b))

###
[`v4.70.3`](https://togithub.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4703-2024-11-04)

[Compare
Source](https://togithub.com/openai/openai-node/compare/v4.70.2...v4.70.3)

Full Changelog:
[v4.70.2...v4.70.3](https://togithub.com/openai/openai-node/compare/v4.70.2...v4.70.3)

##### Bug Fixes

- change streaming helper imports to be relative
([e73b7cf](e73b7cf842))

###
[`v4.70.2`](https://togithub.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4702-2024-11-01)

[Compare
Source](https://togithub.com/openai/openai-node/compare/v4.70.1...v4.70.2)

Full Changelog:
[v4.70.1...v4.70.2](https://togithub.com/openai/openai-node/compare/v4.70.1...v4.70.2)

##### Bug Fixes

- add permissions to github workflow
([ee75e00](ee75e00b0f))
- skip deno ecosystem test
([5b181b0](5b181b01b6))

###
[`v4.70.1`](https://togithub.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4701-2024-11-01)

[Compare
Source](https://togithub.com/openai/openai-node/compare/v4.70.0...v4.70.1)

Full Changelog:
[v4.70.0...v4.70.1](https://togithub.com/openai/openai-node/compare/v4.70.0...v4.70.1)

##### Bug Fixes

- don't require deno to run build-deno
([#&#8203;1167](https://togithub.com/openai/openai-node/issues/1167))
([9d857bc](9d857bc531))

###
[`v4.70.0`](https://togithub.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4700-2024-11-01)

[Compare
Source](https://togithub.com/openai/openai-node/compare/v4.69.0...v4.70.0)

Full Changelog:
[v4.69.0...v4.70.0](https://togithub.com/openai/openai-node/compare/v4.69.0...v4.70.0)

##### Features

- publish to jsr
([#&#8203;1165](https://togithub.com/openai/openai-node/issues/1165))
([5aa93a7](5aa93a7fe7))

##### Chores

- **internal:** fix isolated modules exports
([9cd1958](9cd19584dc))

##### Refactors

- use type imports for type-only imports
([#&#8203;1159](https://togithub.com/openai/openai-node/issues/1159))
([07bbaf6](07bbaf6eca))

</details>

<details>
<summary>gajus/table (table)</summary>

### [`v6.8.2`](https://togithub.com/gajus/table/releases/tag/v6.8.2)

[Compare
Source](https://togithub.com/gajus/table/compare/v6.8.1...v6.8.2)

##### Bug Fixes

- Generate larger tables more quickly
([#&#8203;224](https://togithub.com/gajus/table/issues/224))
([1a39e0c](1a39e0c549))

</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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJUZWFtOkFJIEluZnJhIiwiYmFja3BvcnQ6YWxsLW9wZW4iLCJyZWxlYXNlX25vdGU6c2tpcCJdfQ==-->

---------

Co-authored-by: Larry Gregory <larry.gregory@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-03 13:06:23 -06:00
Zacqary Adam Xeper
8f267fd83c
[ResponseOps][Rules] Move Rule Form code into @kbn/response-ops-rule-form (#198725)
## Summary

Part of #195211

Moves Rule Form code out of `@kbn/alerts-ui-shared` and into a new
package called `@kbn/response-ops-rule-form`.

Some types and hooks that are used by multiple features or solutions are
still in `@kbn/alerts-ui-shared` and have been rerouted. The bulk of
Rule Form-specific code is in this new package.


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

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Kevin Delemme <kevin.delemme@elastic.co>
2024-12-03 12:40:48 -06:00
Marco Vettorello
b61ad41284
[deps] Replace faker with @faker-js (#201105)
## Summary

The `faker` library is[ not maintained
anymore](https://fakerjs.dev/about/announcements/2022-01-14.html#i-heard-something-happened-what-s-the-tldr)
and is replaced by a community fork `@faker-js`.
This PR migrates all the usages of faker to the new library, trying to
use the same methods (even if they have slight differences in results
like `faker.random.number()` has a max of 99999 where instead
`faker.number.int()` have a MAX_SAFE_INTEGER as max).
2024-12-03 18:17:49 +01:00
Kate Sosedova
75842556c3
Fix the text color for a navigation callout (#202509)
## Summary

We currently have a problem with the text inside the callout for new
navigation which asks for the feedback.
The PR makes color default so that it correlates with the regular text
color of EUI.
[Slack
conversation](https://elastic.slack.com/archives/C7QC1JV6F/p1733133123930929).


![image](https://github.com/user-attachments/assets/1f6f5e96-1f87-496b-9cc4-3b33beb0efd3)
2024-12-03 17:00:40 +01:00
Dzmitry Lemechko
27f650bf99
[chore] update playwright version + ownership (#202535)
## Summary

Since the new Kibana test framework has a strong dependency on
`@playwright/test`, moving it under appex-qa ownership

I had to update and explicitly specify types when extending the
pre-existing fixtures as there was a bug fix enforcing it
https://github.com/microsoft/playwright/pull/32066
2024-12-03 15:47:30 +01:00
Julia Rechkunova
14bdd8d51b
[Discover] Remove the legacy table (#201254)
- Closes https://github.com/elastic/kibana/issues/167582

## Summary

This PR removes the code related to the legacy doc table and 2 Advanced
Settings: `doc_table:legacy` and `truncate:maxHeight`.

The legacy table in Discover was replaced by the new data grid in v8.3.
The `doc_table:legacy` Advanced Setting was added to let users switch
back to the legacy table if necessary. The removal of the setting and
the legacy table entirely would allow us to reduce bundle size,
maintenance burden, and code complexity.

Also the legacy table does not support many new features which were
added to the grid only (e.g. comparing selected documents, context-aware
UI based on current solution project, column resizing, bulk row
selection, copy actions, new doc viewer flyout, and more).

Since v8.15 `doc_table:legacy` is marked as deprecated on Advanced
Settings page via https://github.com/elastic/kibana/issues/179899

Since v8.16 `truncate:maxHeight` is marked as deprecated too via
https://github.com/elastic/kibana/pull/183736

The removal of these 2 settings and the associated code is planned for
v9.

### 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
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-12-03 12:03:08 +01:00
Ania Kowalska
f0fbefa144
[Discover] Highlight matching field values when performing a KQL search on a keyword field (#201952)
## Summary

Closes [Highlighting isn't visible in Discover on keywords if the field
also has text type while searching
#118590](https://github.com/elastic/kibana/issues/118590 )

Added `text` field highlight when querying on matching `keyword`

Before:

![image](https://github.com/user-attachments/assets/8b296df6-5647-4c4f-bfb1-4cd9f575e3c9)

After:
<img width="722" alt="Screenshot 2024-11-27 at 13 10 51"
src="https://github.com/user-attachments/assets/c4c0ae23-e6bc-4840-84fb-908c50da5491">


### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] 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
- [ ] 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 was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Identify risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...
2024-12-03 11:43:07 +01:00
Alberto Blázquez
e5b1773971
Create the "Asset Inventory" Kibana Plugin (#202291)
## Summary

Closes https://github.com/elastic/kibana/issues/201704.

Create an empty "Asset Inventory" plugin with the minimal boilerplate
required to set it up, install it and run it on Kibana with a blank
slate.

I generated the files using the `node scripts/generate_plugin <NAME>`
script as per [this documentation
page](https://docs.elastic.dev/kibana-dev-docs/getting-started/hello-world-app#2-option-2---use-the-automatic-plugin-generator).

### Screenshots


<details><summary>Main page (Sample page)</summary>
<img width="2498" alt="Screenshot 2024-11-29 at 14 20 57"
src="https://github.com/user-attachments/assets/9d8a3751-519b-4661-bc90-cbb1e836b111">
</details> 

### Implementation details

- [x] Generated a new Kibana plugin with minimal boilerplate and zero
dependencies
- [x] Use [Cloud Security
Posture](https://github.com/elastic/kibana/tree/main/x-pack/plugins/cloud_security_posture)
plugin as configuration reference
- [x] Render "Inventory" title on the main page
- [x] Ensure the plugin is properly integrated into Kibana's build and
can be loaded without errors
- [x] Place the plugin under the `x-pack/plugins` directory
- [x] Include Readme file
- [x] Introduce placeholders for initialization of pipelines and
transforms following [Cloud Security
Posture](https://github.com/elastic/kibana/blob/main/x-pack/plugins/cloud_security_posture/server/plugin.ts)
plugin initialize function.

### PR Checklist

- [ ] No docs for now
~~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~~
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Risks

No risks at all since this is totally green-field and will be hidden by
a feature toggle.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Paulo Silva <paulo.henrique@elastic.co>
2024-12-03 11:29:53 +01:00
Christos Nasikas
a3496c9ca6
[ResponseOps][Alerting] Decouple feature IDs from consumers (#183756)
## Summary

This PR aims to decouple the feature IDs from the `consumer` attribute
of rules and alerts.

Towards: https://github.com/elastic/kibana/issues/187202
Fixes: https://github.com/elastic/kibana/issues/181559
Fixes: https://github.com/elastic/kibana/issues/182435

> [!NOTE]  
> Unfortunately, I could not break the PR into smaller pieces. The APIs
could not work anymore with feature IDs and had to convert them to use
rule type IDs. Also, I took the chance and refactored crucial parts of
the authorization class that in turn affected a lot of files. Most of
the changes in the files are minimal and easy to review. The crucial
changes are in the authorization class and some alerting APIs.

## Architecture

### Alerting RBAC model

The Kibana security uses Elasticsearch's [application
privileges](https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-privileges.html#security-api-put-privileges).
This way Kibana can represent and store its privilege models within
Elasticsearch roles. To do that, Kibana security creates actions that
are granted by a specific privilege. Alerting uses its own RBAC model
and is built on top of the existing Kibana security model. The Alerting
RBAC uses the `rule_type_id` and `consumer` attributes to define who
owns the rule and the alerts procured by the rule. To connect the
`rule_type_id` and `consumer` with the Kibana security actions the
Alerting RBAC registers its custom actions. They are constructed as
`alerting:<rule-type-id>/<feature-id>/<alerting-entity>/<operation>`.
Because to authorizate a resource an action has to be generated and
because the action needs a valid feature ID the value of the `consumer`
should be a valid feature ID. For example, the
`alerting:siem.esqlRule/siem/rule/get` action, means that a user with a
role that grants this action can get a rule of type `siem.esqlRule` with
consumer `siem`.

### Problem statement

At the moment the `consumer` attribute should be a valid feature ID.
Though this approach worked well so far it has its limitation.
Specifically:

- Rule types cannot support more than one consumer.
- To associate old rules with a new feature ID required a migration on
the rule's SOs and the alerts documents.
- The API calls are feature ID-oriented and not rule-type-oriented.
- The framework has to be aware of the values of the `consumer`
attribute.
- Feature IDs are tightly coupled with the alerting indices leading to
[bugs](https://github.com/elastic/kibana/issues/179082).
- Legacy consumers that are not a valid feature anymore can cause
[bugs](https://github.com/elastic/kibana/issues/184595).
- The framework has to be aware of legacy consumers to handle edge
cases.
- The framework has to be aware of specific consumers to handle edge
cases.

### Proposed solution

This PR aims to decouple the feature IDs from consumers. It achieves
that a) by changing the way solutions configure the alerting privileges
when registering a feature and b) by changing the alerting actions. The
schema changes as:

```
// Old formatting
id: 'siem', <--- feature ID
alerting:['siem.queryRule']

// New formatting
id: 'siem', <--- feature ID
alerting: [{ ruleTypeId: 'siem.queryRule', consumers: ['siem'] }] <-- consumer same as the feature ID in the old formatting
```

The new actions are constructed as
`alerting:<rule-type-id>/<consumer>/<alerting-entity>/<operation>`. For
example `alerting:rule-type-id/my-consumer/rule/get`. The new action
means that a user with a role that grants this action can get a rule of
type `rule-type` with consumer `my-consumer`. Changing the action
strings is not considered a breaking change as long as the user's
permission works as before. In our case, this is true because the
consumer will be the same as before (feature ID), and the alerting
security actions will be the same. For example:

**Old formatting**

Schema:
```
id: 'logs', <--- feature ID
alerting:['.es-query'] <-- rule type ID
```

Generated action:

```
alerting:.es-query/logs/rule/get
```

**New formatting**

Schema:
```
id: 'siem', <--- feature ID
alerting: [{ ruleTypeId: '.es-query', consumers: ['logs'] }] <-- consumer same as the feature ID in the old formatting
```

Generated action:

```
alerting:.es-query/logs/rule/get <--- consumer is set as logs and the action is the same as before
```

In both formating the actions are the same thus breaking changes are
avoided.

### Alerting authorization class
The alerting plugin uses and exports the alerting authorization class
(`AlertingAuthorization`). The class is responsible for handling all
authorization actions related to rules and alerts. The class changed to
handle the new actions as described in the above sections. A lot of
methods were renamed, removed, and cleaned up, all method arguments
converted to be an object, and the response signature of some methods
changed. These changes affected various pieces of the code. The changes
in this class are the most important in this PR especially the
`_getAuthorizedRuleTypesWithAuthorizedConsumers` method which is the
cornerstone of the alerting RBAC. Please review carefully.

### Instantiation of the alerting authorization class
The `AlertingAuthorizationClientFactory` is used to create instances of
the `AlertingAuthorization` class. The `AlertingAuthorization` class
needs to perform async operations upon instantiation. Because JS, at the
moment, does not support async instantiation of classes the
`AlertingAuthorization` class was assigning `Promise` objects to
variables that could be resolved later in other phases of the lifecycle
of the class. To improve readability and make the lifecycle of the class
clearer, I separated the construction of the class (initialization) from
the bootstrap process. As a result, getting the `AlertingAuthorization`
class or any client that depends on it (`getRulesClient` for example) is
an async operation.

### Filtering
A lot of routes use the authorization class to get the authorization
filter (`getFindAuthorizationFilter`), a filter that, if applied,
returns only the rule types and consumers the user is authorized to. The
method that returns the filter was built in a way to also support
filtering on top of the authorization filter thus coupling the
authorized filter with router filtering. I believe these two operations
should be decoupled and the filter method should return a filter that
gives you all the authorized rule types. It is the responsibility of the
consumer, router in our case, to apply extra filters on top of the
authorization filter. For that reason, I made all the necessary changes
to decouple them.

### Legacy consumers & producer
A lot of rules and alerts have been created and are still being created
from observability with the `alerts` consumer. When the Alerting RBAC
encounters a rule or alert with `alerts` as a consumer it falls back to
the `producer` of the rule type ID to construct the actions. For example
if a rule with `ruleTypeId: .es-query` and `consumer: alerts` the
alerting action will be constructed as
`alerting:.es-query/stackAlerts/rule/get` where `stackRules` is the
producer of the `.es-query` rule type. The `producer` is used to be used
in alerting authorization but due to its complexity, it was deprecated
and only used as a fallback for the `alerts` consumer. To avoid breaking
changes all feature privileges that specify access to rule types add the
`alerts` consumer when configuring their alerting privileges. By moving
the `alerts` consumer to the registration of the feature we can stop
relying on the `producer`. The `producer` is not used anymore in the
authorization class. In the next PRs the `producer` will removed
entirely.

### Routes
The following changes were introduced to the alerting routes:

- All related routes changed to be rule-type oriented and not feature ID
oriented.
- All related routes support the `ruleTypeIds` and the `consumers`
parameters for filtering. In all routes, the filters are constructed as
`ruleTypeIds: ['foo'] AND consumers: ['bar'] AND authorizationFilter`.
Filtering by consumers is important. In o11y for example, we do not want
to show ES rule types with the `stackAlerts` consumer even if the user
has access to them.
- The `/internal/rac/alerts/_feature_ids` route got deleted as it was
not used anywhere in the codebase and it was internal.

All the changes in the routes are related to internal routes and no
breaking changes are introduced.

### Constants
I moved the o11y and stack rule type IDs to `kbn-rule-data-utils` and
exported all security solution rule type IDs from
`kbn-securitysolution-rules`. I am not a fan of having a centralized
place for the rule type IDs. Ideally, consumers of the framework should
specify keywords like `observablility` (category or subcategory) or even
`apm.*` and the framework should know which rule type IDs to pick up. I
think it is out of the scope of the PR, and at the moment it seems the
most straightforward way to move forward. I will try to clean up as much
as possible in further iterations. If you are interested in the upcoming
work follow this issue https://github.com/elastic/kibana/issues/187202.

### Other notable code changes
- Change all instances of feature IDs to rule type IDs.
- `isSiemRuleType`: This is a temporary helper function that is needed
in places where we handle edge cases related to security solution rule
types. Ideally, the framework should be agnostic to the rule types or
consumers. The plan is to be removed entirely in further iterations.
- Rename alerting `PluginSetupContract` and `PluginStartContract` to
`AlertingServerSetup` and `AlertingServerStart`. This made me touch a
lot of files but I could not resist.
- `filter_consumers` was mistakenly exposed to a public API. It was
undocumented.
- Files or functions that were not used anywhere in the codebase got
deleted.
- Change the returned type of the `list` method of the
`RuleTypeRegistry` from `Set<RegistryRuleType>` to `Map<string,
RegistryRuleType>`.
- Assertion of `KueryNode` in tests changed to an assertion of KQL using
`toKqlExpression`.
- Removal of `useRuleAADFields` as it is not used anywhere.

## Testing

> [!CAUTION]
> It is very important to test all the areas of the application where
rules or alerts are being used directly or indirectly. Scenarios to
consider:
> - The correct rules, alerts, and aggregations on top of them are being
shown as expected as a superuser.
> - The correct rules, alerts, and aggregations on top of them are being
shown as expected by a user with limited access to certain features.
> - The changes in this PR are backward compatible with the previous
users' permissions.

### Solutions
Please test and verify that:
- All the rule types you own with all possible combinations of
permissions both in ESS and in Serverless.
- The consumers and rule types make sense when registering the features.
- The consumers and rule types that are passed to the components are the
intended ones.

### ResponseOps
The most important changes are in the alerting authorization class, the
search strategy, and the routes. Please test:
- The rules we own with all possible combinations of permissions.
- The stack alerts page and its solution filtering.
- The categories filtering in the maintenance window UI.

## Risks
> [!WARNING]
> The risks involved in this PR are related to privileges. Specifically:
> - Users with no privileges can access rules and alerts they do not
have access to.
> - Users with privileges cannot access rules and alerts they have
access to.
>
> An excessive list of integration tests is in place to ensure that the
above scenarios will not occur. In the case of a bug, we could a)
release an energy release for serverless and b) backport the fix in ESS.
Given that this PR is intended to be merged in 8.17 we have plenty of
time to test and to minimize the chances of risks.

## FQA

- I noticed that a lot of routes support the `filter` parameter where we
can pass an arbitrary KQL filter. Why we do not use this to filter by
the rule type IDs and the consumers and instead we introduce new
dedicated parameters?

The `filter` parameter should not be exposed in the first place. It
assumes that the consumer of the API knows the underlying structure and
implementation details of the persisted storage API (SavedObject client
API). For example, a valid filter would be
`alerting.attributes.rule_type_id`. In this filter the consumer should
know a) the name of the SO b) the keyword `attributes` (storage
implementation detail) and c) the name of the attribute as it is
persisted in ES (snake case instead of camel case as it is returned by
the APIs). As there is no abstraction layer between the SO and the API,
it makes it very difficult to make changes in the persistent schema or
the APIs. For all the above I decided to introduce new query parameters
where the alerting framework has total control over it.

- I noticed in the code a lot of instances where the consumer is used.
Should not remove any logic around consumers?

This PR is a step forward making the framework as agnostic as possible.
I had to keep the scope of the PR as contained as possible. We will get
there. It needs time :).

- I noticed a lot of hacks like checking if the rule type is `siem`.
Should not remove the hacks?

This PR is a step forward making the framework as agnostic as possible.
I had to keep the scope of the PR as contained as possible. We will get
there. It needs time :).

- I hate the "Role visibility" dropdown. Can we remove it?

I also do not like it. The goal is to remove it. Follow
https://github.com/elastic/kibana/issues/189997.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@elastic.co>
Co-authored-by: Paula Borgonovi <159723434+pborgonovi@users.noreply.github.com>
2024-12-03 12:21:53 +02:00
Krzysztof Kowalczyk
666e771c21
[Embeddable] Hide edit filters if embeddable is type search (#202320)
## Summary
This PR hides `Edit filters` button when the type of embeddable is
`search`.

Closes: #196730
2024-12-03 09:23:38 +01:00
Dzmitry Lemechko
d4094c17be
[scout] migrate more Discover tests (#201842)
## Summary

This PR migrates the following FTR tests to `@kbn/scout`:

`x-pack/test/functional/apps/discover/error_handling.ts` =>
`x-pack/plugins/discover_enhanced/ui_tests/tests/error_handling.spec.ts`

`x-pack/test/functional/apps/discover/saved_search_embeddable.ts` =>

`x-pack/plugins/discover_enhanced/ui_tests/tests/saved_search_embeddable.spec.ts`

`x-pack/test/functional/apps/discover/saved_searches.ts` =>
`x-pack/plugins/discover_enhanced/ui_tests/tests/saved_searches.spec.ts`

`x-pack/test/functional/apps/discover/value_suggestions.ts` 2nd describe
block =>

`x-pack/plugins/discover_enhanced/ui_tests/tests/value_suggestions_use_time_range_disabled.spec.ts`

Some other changes to mention:

**packages/kbn-test-subj-selector**:
- support of `^foo` syntax similar to `CSS [attribute^=value] Selector`

**packages/kbn-scout**:
- new worker fixture `uiSettings` to wrap Advanced Settings set/unset
capability
- extend `ScoutPage` fixture with `typeWithDelay` method required for
many Kibana input fields
- extend `PageObjects` fixture with `DashboardApp` & `FilterBar`, also
extending existing ones.

How to test:

```bash
// ESS
node scripts/scout_start_servers.js --stateful
npx playwright test --config x-pack/plugins/discover_enhanced/ui_tests/playwright.config.ts --grep @ess

// Serverless
node scripts/scout_start_servers.js --serverless=es
npx playwright test --config x-pack/plugins/discover_enhanced/ui_tests/playwright.config.ts --grep @svlSearch
```

---------

Co-authored-by: Robert Oskamp <traeluki@gmail.com>
2024-12-02 20:57:29 +01:00
Davis McPhee
281269f6a0
[Unified Data Table] Stop passing data grid density as key (#202390)
## Summary

When the data grid density setting was added, an issue was found with
resetting the density state:
https://github.com/elastic/kibana/pull/188495#discussion_r1712510252. It
was caused by an EUI bug: https://github.com/elastic/eui/issues/7962.
The EUI bug has been fixed and this is no longer an issue, so we can
remove the workaround we were using by passing the data grid density in
the `key` prop to the data grid to force a re-render. Besides removing a
small piece of tech debt, this change improves performance when
switching densities, and no longer closes the popover when changing the
density (like other settings).

### 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
- [ ] 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 was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2024-12-02 14:22:53 -04:00
Navarone Feekery
686e356d96
[Search][ES3] Fix polynomial regex (#202508)
## Summary

The expression here violates [polynomial regular expression used on
uncontrolled
data](https://codeql.github.com/codeql-query-help/javascript/js-polynomial-redos/)

This PR replaces the problem regex with one that is not ambiguous about
when to start matching `-` sequences. This is done through using a
negative look-behind.
2024-12-02 17:59:37 +01:00
Alejandro Fernández Haro
3e1d62ebc4
[Config Service] Use stripUnknownKeys when checking enabled flags (#201579)
## Summary

Resolves #201442.

The underlying issue is that `isEnabledAtPath` validates the entire
config object when it only cares about `.enabled`. This PR performs that
check using `stripUnknownKeys: true`, as we'll perform the actual
validation later on.


### 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
2024-12-02 10:30:09 -06:00
Jesus Wahrman
9b99070470
[docs] Remove experimental message from saved objects import and export apis (#202173)
## Summary

resolves https://github.com/elastic/kibana/issues/159454

Remove experimental message from saved objects import and export apis.


### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials

### Identify risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-12-02 12:05:52 +01:00
Robert Jaszczurek
aa4c39c119
[ML] Adds action to add log rate analysis to a case (#201549)
## Summary

Follow up to [#197247](https://github.com/elastic/kibana/issues/197247)

Adds action to add Log Rate Analysis Embeddable to a case.



https://github.com/user-attachments/assets/f45554e1-cef7-4c54-bea5-c509f236a956



### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-12-02 11:59:54 +01:00
Gerard Soldevila
397314c952
Sustainable Kibana Architecture: Update tooling to take into account the new folders (#202327)
## Summary

Otherwise we're going to be removing APIs of relocated modules.
2024-12-02 04:04:35 -06:00
Cauê Marcondes
d8f3f4cb3c
[Inventory][ECO] Entity type Remove Control groups filter (#202177)
closes https://github.com/elastic/kibana/issues/201584

- Removes control group entity types filter
- Adds multi-select entity types filer
- Add kuery to url
- Remove unified entities page
- Adding telemetry when entity type is filtered
- Refactoring...



https://github.com/user-attachments/assets/98fb11ab-76e7-497b-af86-86378c6bfd7f

---------

Co-authored-by: Irene Blanco <irene.blanco@elastic.co>
2024-12-02 09:14:35 +00:00
Vadim Kibana
378002f9f6
[ES|QL] AST node synthesizer (#201814)
## Summary

Closes https://github.com/elastic/kibana/issues/191812

Adds ability to create ES|QL AST nodes from plain strings and compose
them.

Create an integer literal:

```js
const node = expr `42`;
```

Create any expression:

```js
const node = expr `nested.field = fn(123)`;
```

Compose AST nodes:

```js
const value = expr `123`;
const node = expr `nested.field = fn(${value})`;
```

## Usage

You can create an assignment expression AST node as simle as:

```ts
import { synth } from '@kbn/esql-ast';

const node = synth.expr `my.field = max(10, ?my_param)`;
// { type: 'function', name: '=', args: [ ... ]}
```

To construct an equivalent AST node using the `Builder` class, you would
need to
write the following code:

```ts
import { Builder } from '@kbn/esql-ast';

const node = Builder.expression.func.binary('=', [
  Builder.expression.column({
    args: [Builder.identifier({ name: 'my' }), Builder.identifier({ name: 'field' })],
  }),
  Builder.expression.func.call('max', [
    Builder.expression.literal.integer(10),
    Builder.param.named({ value: 'my_param' }),
  ]),
]);
// { type: 'function', name: '=', args: [ ... ]}
```

You can nest template strings to create more complex AST nodes:

```ts
const field = synth.expr `my.field`;
const value = synth.expr `max(10, 20)`;

const assignment = synth.expr`${field} = ${value}`;
// { type: 'function', name: '=', args: [ 
//     { type: 'column', args: [ ... ] },
//     { type: 'function', name: 'max', args: [ ... ] }
// ]}
```

Use the `synth.cmd` method to create command nodes:

```ts
const command = synth.cmd `WHERE my.field == 10`;
// { type: 'command', name: 'WHERE', args: [ ... ]}
```

AST nodes created by the synthesizer are pretty-printed when you coerce
them to
a string or call the `toString` method:

```ts
const command = synth.cmd ` WHERE my.field == 10 `; // { type: 'command', ... }
String(command); // "WHERE my.field == 10"
```


## Reference

### `synth.expr`

The `synth.expr` synthesizes an expression AST nodes. (*Expressions* are
basically any thing that can go into a `WHERE` command, like boolean
expression,
function call, literal, params, etc.)

Use it as a function:

```ts
const node = synth.expr('my.field = max(10, 20)');
```

Specify parser options:

```ts
const node = synth.expr('my.field = max(10, 20)', { withFormatting: false });
```

Use it as a template string tag:

```ts
const node = synth.expr `my.field = max(10, 20)`;
```

Specify parser options, when using as a template string tag:

```ts
const node = synth.expr({ withFormatting: false }) `my.field = max(10, 20)`;
```

Combine nodes using template strings:

```ts
const field = synth.expr `my.field`;
const node = synth.expr `${field} = max(10, 20)`;
```

Print the node as a string:

```ts
const node = synth.expr `my.field = max(10, 20)`;
String(node); // 'my.field = max(10, 20)'
```


### `synth.cmd`

The `synth.cmd` synthesizes a command AST node (such as `SELECT`,
`WHERE`,
etc.). You use it the same as the `synth.expr` function or template
string tag.
The only difference is that the `synth.cmd` function or tag creates a
command
AST node.

```ts
const node = synth.cmd `WHERE my.field == 10`;
// { type: 'command', name: 'where', args: [ ... ]}
```



### 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#_add_your_labels)
2024-12-02 03:12:36 -06:00
Kibana Machine
6ef4912c65
[ES|QL] Update function metadata (#202395)
This PR updates the function definitions and inline docs based on the
latest metadata from Elasticsearch.
2024-12-02 08:10:32 +01:00
Kerry Gallagher
b0122f547d
[Discover / Logs] Add new "Saved Search component" (#199787)
## Summary

Implements
https://github.com/elastic/logs-dev/issues/111#issuecomment-2446470635.

This adds a new "Saved Search component". The component is a wrapper
around the current Saved Search Embeddable, but uses
`ReactEmbeddableRenderer` directly to render the embeddable outside of
Dashboard contexts. It monitors changes to things like `index`,
`filters` etc and communicates these changes through the embeddable API.

For this PoC two locations were changed to use this component 1) Logs
Overview flyout 2) APM Logs tab (when the Logs Overview isn't enabled
via advanced settings).

The component itself is technically beyond a PoC, and resides in it's
own package. ~I'd like to get eyes from the Discover folks etc on the
approach, and if we're happy I can fix the remaining known issues (apart
from the mixing of columns point as I believe this exists on the roadmap
anyway) and we can merge this for the initial two replacement points.~
[Thanks Davis
👌](https://github.com/elastic/logs-dev/issues/111#issuecomment-2475350199).

`nonPersistedDisplayOptions` is added to facilitate some configurable
options via runtime state, but without the complexity of altering the
actual saved search saved object.

On the whole I've tried to keep this as clean as possible whilst working
within the embeddable framework, outside of a dashboard context.

## Known issues

- ~"Flyout on flyout" in the logs overview flyout (e.g. triggering the
table's flyout in this context).~ Fixed with `enableFlyout` option.
- ~Filter buttons should be disabled via pills (e.g. in Summary
column).~ Fixed with `enableFilters` option.
- Summary (`_source`) column cannot be used alongside other columns,
e.g. log level, so column customisation isn't currently enabled. You'll
just get timestamp and summary. This requires changes in the Unified
Data Table. **Won't be fixed in this PR**

- We are left with this panel button that technically doesn't do
anything outside of a dashboard. I don't *think* there's an easy way to
disable this. **Won't be fixed in this PR**
![Screenshot 2024-11-20 at 11 50
43](https://github.com/user-attachments/assets/e43a47cd-e36e-4511-ba88-c928a4acd634)


## Followups

- ~The Logs Overview details state machine can be cleaned up (it doesn't
need to fetch documents etc anymore).~ The state machine no longer
fetches it's own documents. Some scaffolding is left in place as it'll
be needed for showing category details anyway.

## Example

![Screenshot 2024-11-20 at 12 20
08](https://github.com/user-attachments/assets/3b25d591-e3e2-4e8a-98a8-1bfc849d3bc1)
![Screenshot 2024-11-20 at 12 23
34](https://github.com/user-attachments/assets/a2d28036-98c5-4404-934e-2298cf4a66bf)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-29 23:09:24 +00:00
Elena Shostak
976b94ffa5
Dependency Ownership CLI (#201773)
## Summary

1. Show all packages owned by a specific team
```
node scripts/dependency_ownership -o <owner>
```
2. Identify owners of a specific dependency
```
node scripts/dependency_ownership -d <dependency>
```

3. List dependencies without an owner
```
node scripts/dependency_ownership --missing-owner
```

4. Generate a full dependency ownership report
```
node scripts/dependency_ownership
```

### 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
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)


__Closes: https://github.com/elastic/kibana/issues/196767__

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-29 17:18:36 +01:00
Navarone Feekery
1749c88f7d
[Search][ES3] Auto generate connector name and index_name (#202149)
## Summary

Adds Connector name and index_name auto-generation to ES3. This is taken
from the [ESS implementation
here](https://github.com/elastic/kibana/blob/main/x-pack/plugins/enterprise_search/server/lib/connectors/generate_connector_name.ts).

The ES3 implementation functions a little differently, because the ES3
Connector creation flow is different.
For ES3, the auto-generated Connector `name` and `index_name` are
automatically saved to the Connector document when a `service_type` is
selected. This is because the selection of a `service_type` already
creates the Connector record, so it made the most sense to piggyback on
that process.

If the user defines a name before selecting a service type, the
user-defined name is kept.
2024-11-29 17:03:54 +01:00
Jatin Kathuria
de9d5465df
[Security Solution] Adds callback onUpdatePageIndex to get current pageIndex in Unified Data table (#201240)
## Summary

Handles resolution for
- Notes fetching data for all Timeline Records which leads to
performance issues.
- https://github.com/elastic/kibana/issues/201330 

## Issue - Notes fetching data for all Timeline Records 

Currently, there was no way for consumer of `UnifiedDataGrid` to get the
current `pageIndex`. Security Solution needs to get the current
`pageIndex` so the items on the current page can be calculated.

@elastic/kibana-data-discovery , please let us know if you have any
opinion here.

This results in notes being fetched for all Timeline Records which means
minimum of 500 records and if user has queries 5000 records ( for
example ), a request will be made to query notes for all those 5000
notes which leads to performance issue and sometimes error as shown
below:


![image](https://github.com/user-attachments/assets/6fcfe05d-340c-4dcb-a273-5af53ed12945)


## 👨‍💻 Changes

This adds attribute `pageIndex` to timeline state. 

```javascript
{
    "pageIndex": number
}
```
`pageIndex` helps with getting the events for that particular page.

## 🟡 Caveat

- Currently this `pageIndex` is shared between Query and EQL tabs which
can lead to wonky behavior at time.
- Additionally, as of now table maintains its own page index and
consumer component cannot effect the `pageIndex` of the UnifiedDataGrid.
2024-11-29 16:14:27 +01:00