Commit graph

166 commits

Author SHA1 Message Date
Larry Gregory
c0b3dac7cb
Dependency ownership for Kibana Management team, part 1 (#202776)
## Summary

This updates our `renovate.json` configuration to mark the Kibana
Management team as owners of their set of dependencies.
2024-12-04 10:02:22 -06:00
Marco Vettorello
eb8f2617e0
[deps] Remove faker from renovate (#202777)
## Summary

With the [replacement](https://github.com/elastic/kibana/pull/201105) of
`faker` with `@faker-js` there is no more need of this renovate
configuration.
2024-12-04 11:33:02 +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
Larry Gregory
33e91592e8
Dependency ownership for Kibana Data Discovery team, part 1 (#202578) 2024-12-02 20:45:53 -05:00
Dzmitry Lemechko
783a97cda0
[renovate] move ownership for faker to team:kibana-visualizations (#202329)
## Summary

@markov00 opened PR to
[migrate](https://github.com/elastic/kibana/pull/201105) from `faker`,
but it probably will take extra time and to keep track let's move its
ownership to `team:kibana-visualizations`

---------

Co-authored-by: Marco Vettorello <vettorello.marco@gmail.com>
2024-12-02 14:39:48 +01:00
Larry Gregory
d28d2c3415
Dependency ownership for Kibana Core team, part 1 (#201380)
## Summary

This updates our `renovate.json` configuration to mark the Core team as
owners of their set of dependencies.
2024-11-25 08:12:32 -06:00
Larry Gregory
0f6e7fc3c3
Dependency ownership for Kibana Cloud Security Posture team, part 1 (#201212)
## Summary

This updates our `renovate.json` configuration to mark the Kibana CSP
team as owners of their set of dependencies.
2024-11-21 15:04:06 -06:00
Larry Gregory
8c00f5f1af
Dependency ownership for Fleet team, part 1 (#200990)
## Summary
This updates our renovate.json configuration to mark the Fleet team as
owners of their set of dependencies.
2024-11-21 07:57:30 -06:00
Dzmitry Lemechko
c04d80b03f
[Dependency ownership] move enzyme to shared-ux (#200964)
## Summary

According to `Kibana Dependency ownership report` majority of React
dependencies are owned by `elastic/appex-sharedux` team.

We had a chat and agreed that it makes sense to change ownership for
React testing libraries like `enzyme` to `elastic/appex-sharedux` for
consistency (testing dependencies are usually updated together with
React ones)

Ownership report was updated.
2024-11-20 13:01:11 -06:00
Dzmitry Lemechko
88a280c250
[chore] remove unused nyc configs and dependencies (#200909)
## Summary

nyc (istanbuljs) cleanup as we no longer collect code coverage for
functional tests
2024-11-20 16:41:30 +01:00
Larry Gregory
8ce1c466e3
Dependency ownership for Shared UX team, part 1 (#200794)
## Summary

This updates our `renovate.json` configuration to mark the Shared UX
team as owners of their set of dependencies. I made an attempt to group
the dependencies into logical groups, but this is easily changed if
desired.
2024-11-20 08:59:52 -06:00
Ignacio Rivas
0bb62939f0
Add @elastic/request-converter to renovate.json (#200588) 2024-11-20 11:23:38 +01:00
Larry Gregory
5268fc5d77
Dependency ownership for QA team (#200589)
## Summary

This updates our `renovate.json` configuration to mark the QA team as
owners of their set of dependencies.
2024-11-19 13:14:17 -05:00
Larry Gregory
d910e5e8a3
Dependency ownership for AI Infra Team (#200238)
## Summary

This updates our `renovate.json` configuration to mark the AI Infra team
as owners of their set of dependencies.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-11-18 08:34:09 -06:00
Alejandro Fernández Haro
41998b48f7
Improve stack traces in dev mode (#195916) 2024-10-18 17:35:08 +02:00
Kfir Peled
be0eadfb9f
[Cloud Security] Graph visualization and API (#195307)
## Summary

This PR adds:
- Graph visualization component using `xyflow`, and layouts the graph
using `dagre`.
- API that supports the graph visualization
- API tests
- Serverless API tests

**List of open issues (will be tracked in a different ticket):**
- Identify if `related.hosts`, `related.ip` and `related.user` are
mapped before the query. (can be fixed by
https://github.com/elastic/elasticsearch/issues/112912)
- Update nodes rendering to match recent figma changes
- Return 404 when feature is not enabled
- Add keyboard accessibility
- Resolve axe failures (run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))

### How to test

You can view the graph using storybook's
[playground](https://supreme-adventure-8qjmlp1.pages.github.io/graph-storybook/?path=/story/components-graph-components-dagree-layout-graph--graph-stacked-edge-cases).

To test this PR you can run

```
yarn storybook cloud_security_posture_packages
```

To test the API you can use the mocked data

```bash
node scripts/es_archiver load x-pack/test/cloud_security_posture_api/es_archives/logs_gcp_audit \ 
--es-url http://elastic:changeme@localhost:9200 \
--kibana-url http://elastic:changeme@localhost:5601
```

And through dev tools:

```
POST kbn:/internal/cloud_security_posture/graph?apiVersion=1
{
  "query": {
    "actorIds": ["admin@example.com"],
    "eventIds": [""],
    "start": "now-1y/y",
    "end": "now/d"
  }
}
```

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

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-10-11 22:37:02 -05:00
Nick Partridge
ac2e0c81cf
Update @elastic/charts renovate config labels (#195642) 2024-10-09 20:01:21 +02:00
Alejandro Fernández Haro
f29c513465
Add @elastic/apm-rum-core to renovate (#195112) 2024-10-08 04:07:14 +02:00
Victor Martinez
94aa915169
github-actions: notify github commands for all the observability code (#195219) 2024-10-07 22:19:08 +02:00
Alejandro Fernández Haro
833a267419
chore(deps): add lodash to renovate (#194613) 2024-10-02 14:24:02 +02:00
Alejandro Fernández Haro
04fe43d4c2
chore(deps): upgrade rxjs (#194610) 2024-10-02 14:22:28 +02:00
Alejandro Fernández Haro
4dca8f6f70
chore(deps): Add joi to the hapi group in renovate (#194623) 2024-10-02 14:21:54 +02:00
Alejandro Fernández Haro
d570d60b0b
Upgrade http dependencies (#180986)
Co-authored-by: florent-leborgne <florent.leborgne@elastic.co>
Co-authored-by: Rudolf Meijering <skaapgif@gmail.com>
2024-10-01 11:50:47 -05:00
Alejandro Fernández Haro
02ce1b9101
[Feature Flags Service] Hello world 👋 (#188562)
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Jean-Louis Leysens <jloleysens@gmail.com>
2024-09-18 11:02:55 -05:00
Jeramy Soucy
c426b06aa4
Adds @mswjs/http-middleware to renovate.json (#193257)
## Summary

Assigns ownership of new dev dep `@mswjs/http-middleware` to cloud
security team (`kibana-cloud-security-posture`).

Dependency was addded in https://github.com/elastic/kibana/pull/187219
2024-09-18 15:44:53 +02:00
Nick Peihl
6689169687
Move @elastic/kibana-gis ownership to @elastic/kibana-presentation (#192521)
## Summary

The legacy `@elastic/kibana-gis` team is now a part of
`@elastic/kibana-presentation`. So we should move ownership of all code
to the correct team.
2024-09-16 09:50:50 -05:00
Walter Rafelsberger
6a270cf4d6
Upgrade @testing-library/user-event to latest ^14.5.2 (#189949)
## Summary

Upgrades `@testing-library/user-event` to `^14.5.2`. See the release
notes for `v14` for breaking changes:
https://github.com/testing-library/user-event/releases/tag/v14.0.0

I was facing an
[issue](https://github.com/testing-library/user-event/issues/662) with
`v13.5.0` with `userEvent.click()` in a PR
(https://github.com/elastic/kibana/pull/189729) and was able to verify
that `v14.4.3` onwards fixes it so I decided to update that package.
What a rabbit hole 😅 !

- In `user-event` `v14` events return a promise, so this PR updates
usage of the likes of `userEvent.click` with `await userEvent.click`.
Regex to search for `userEvent` calls that miss `await` except `.setup`:
`(?<!await\s)userEvent\.(?!setup\b)`
- The way to handle pointer events needed changing from `, undefined, {
skipPointerEventsCheck: true });` to `, { pointerEventsCheck: 0 });`.
- I tried a bit to do the refactor with codemods, but there were quite
some edge cases so it ended up being done manually.
- I looked into all failing tests and tried my best to update them, but
for some of them I lacked the context to make them work again. If you're
a code owner and find a skipped test in this PR please give it a try to
fix and push in this PR or let me know if it's fine for you to fix in
follow ups.

List of files where I had to skip tests (`git diff main...HEAD
-G'\.skip' --name-only`):

### `packages/kbn-dom-drag-drop`

- `packages/kbn-dom-drag-drop/src/droppable.test.tsx`

### `x-pack/plugins/cases`

- `x-pack/plugins/cases/public/components/templates/form.test.tsx`
-
`x-pack/plugins/cases/public/components/user_actions/user_actions_list.test.tsx`

### `x-pack/plugins/cloud_security_posture`

-
`x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx`

### `x-pack/plugins/lens`

-
`x-pack/plugins/lens/public/datasources/form_based/dimension_panel/format_selector.test.tsx`

### `x-pack/plugins/observability_solution`

-
`x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/fields/request_body_field.test.tsx`

### `x-pack/plugins/security_solution`

-
`x-pack/plugins/security_solution/public/management/components/console/components/command_input/integration_tests/command_input.test.tsx`
-
`x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/kill_process_action.test.tsx`
-
`x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/release_action.test.tsx`
-
`x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/status_action.test.tsx`
-
`x-pack/plugins/security_solution/public/management/components/endpoint_responder/command_render_components/integration_tests/upload_action.test.tsx`
-
`x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/integration_tests/response_actions_log.test.tsx`
-
`x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/event_filters_flyout.test.tsx`
-
`x-pack/plugins/security_solution/public/management/pages/response_actions/view/response_actions_list_page.test.tsx`

----

I plan to do a talk on Kibana Demo Days to walk through some of the
breaking changes and learnings.

### 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
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2024-09-10 14:31:27 +02:00
Paulo Henrique
2a4ac8b2e1
[Renovate] [msw] Update cloud security team label (#192110)
## Summary

This PR fixes the team label used by the Renovate PRs for the MSW
package.

It also sets the `minimumReleaseAge` to 7 days for better
maintainability.
2024-09-06 18:31:05 -05:00
Gloria Hornero
4041d274b3
[ON-WEEK][POC] Playwright (#190803)
## UPDATE
It has been removed the execution of the playwright tests on buildkite,
the execution will be re-enabled as soon as we are ready and as
described below in the PR, there are still steps pending to be done.

## Motivation

**Cypress is not performing well lately.**
* We have been facing significant performance issues with Cypress. For
instance, it takes a long time to open the visual interface and start
executing tests.

**Teams are finding it increasingly challenging to write new tests and
debug existing ones.**
* The time and effort required to create new tests or troubleshoot
existing ones have become burdensome.

**Concern about the impact this could have on our testing practices.**
* Lose motivation to write tests or, worse, skip writing crucial tests.

## Why Playwright?

* Compared to Cypress, Playwright seems to be known for its faster
execution times and lower resource consumption. What could have a
positive impact by having faster feedback during development and
execution of new tests as well as more efficient use of CI resources.

* Provides powerful debugging tools which can make easier to write,
debug and execute tests.

* Seems to provide the same capabilities we currently use in our Cypress
tests.

* Given Playwright's active development and backing by Microsoft, it is
likely to continue evolving rapidly, making it a safe long-term choice.

Considering all the above, Playwright seems to be a strong candidate to
replace Cypress and address all the issues we are facing lately
regarding UI test automation.

## Objective of this POC

To write in Playwright a couple of tests we currently have on Cypress to
check the performance of the tool as well as the development experience.

The tests selected have been:
-
[enable_risk_score_redirect.cy.ts](https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/dashboards/enable_risk_score_redirect.cy.ts)
- Owned by Entity Analytics team and selected by its simplicity since it
does not need any special setup to be executed and is short.

-
[manual_rule_run.cy.ts](https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/manual_rule_run.cy.ts)
- Owned by Detection Engine team and selected because is short and adds
a bit more of complexity due to it needs of clean-up and setting up
initial data through the API.
  
## How to execute the tests

### Visual mode
- Navigate to: `x-pack/test/security_solution_playwright`
- Execute: `yarn open:ess` for ESS environment or `yarn open:serverless`
for serverless environment.

### Headless mode
- Navigate to: `x-pack/test/security_solution_playwright`
- Execute: `yarn run:ess` for ESS environment or `yarn run:serverless`
for serverless environment.

### From VScode
- Install `Playwright Test for VScode` extension by Microsoft
- Navigate to: `x-pack/test/security_solution_playwright`
- Execute: `yarn open:ess` for ESS environment or `yarn open:serverless`
for serverless environment.
- Open your IDE
- Click on the `Testing` icon
- On the `Test Explorer` click on the three dots to select the profile
you are going to execute `ess` or `serverless`
- Click on the test you want to execute or navigate to the spec file of
the test and execute it from the same spec.

## My experience
- Tests are way easier to implement than with Cypress.
- Playwright does not rely on chainable commands. Chainable commands on
Cypress can lead to confusing code.
- Without chainable commands, the flow of the tests is more explicit and
easier to understand.
- You can notice that the tool has been designed with Typescript in
mind.
- Is super easy to implement the Page Object Model pattern (POM).
- With POM the test code is clean and focused on "what" rather than
"how".
- Love the fact that you can execute the tests from the same IDE without
having to switch windows during test development.
- The visual mode execution gives you lots of information out of the
box.

## The scope of this PR
- Sets the initial infrastructure to write and execute tests with
Playwright.
- Has examples and set a basis about how to write tests using the POM.
- Allows the execution of the tests in ESS and serverless (just
stateless environment).
- Integrates the execution of the tests with buildkite.

## Pending to be done/investigate
- Proper readme
- How to split tests and PO between the different teams
- Good reports on CI
- Upload screenshots on CI
- Flaky test suite runner 
- Complete the labeling
- Execution of the tests on MKI environments

## FAQ
**Can I start adding tests to playwright?**
Currently, you can explore and experiment with Playwright, but there is
still work pending to be done to make the tool officially usable.

**Why security engineering productivity is the owner of the playwright
folder?**
This is something temporary to make sure that good practices are
followed.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: dkirchan <diamantis.kirchantzoglou@elastic.co>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
Co-authored-by: Jon <jon@budzenski.me>
2024-09-06 13:09:18 +02:00
Jamie Tanna
260df9d412
Revert "Update renovate config (#191304)" (#191495)
Reverts elastic/kibana#191304
2024-08-27 07:59:30 -05:00
Larry Gregory
f544fb05bb
Update renovate config (#191304)
## Summary

Update the renovate configuration by migrating deprecated configuration
to supported configuration.

This was generated using the instructions found in
https://docs.renovatebot.com/config-validation/:

```sh
npx --yes --package renovate -- renovate-config-validator --strict
```

<details>
<summary>View full output</summary>
```
 INFO: Validating renovate.json
 WARN: Config migration necessary
       "oldConfig": {
         "$schema": "https://docs.renovatebot.com/renovate-schema.json",
         "extends": [
           "config:recommended",
           "helpers:pinGitHubActionDigests",
           "helpers:pinGitHubActionDigestsToSemver"
         ],
         "ignorePaths": ["**/__fixtures__/**", "**/fixtures/**"],
         "enabledManagers": ["npm", "github-actions", "custom.regex"],
         "baseBranches": ["main", "7.17"],
         "prConcurrentLimit": 0,
         "prHourlyLimit": 0,
         "separateMajorMinor": false,
         "rangeStrategy": "bump",
         "semanticCommits": "disabled",
         "vulnerabilityAlerts": {"enabled": false},
         "lockFileMaintenance": {"enabled": false},
         "packageRules": [
           {"matchDepPatterns": [".*"], "enabled": false},
           {
             "groupName": "chainguard",
             "matchPackageNames": ["docker.elastic.co/wolfi/chainguard-base"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "enabled": true
           },
           {
             "groupName": "operations actions",
             "matchManagers": ["github-actions"],
             "matchPackageNames": [
               "actions/checkout",
               "elastic/github-actions/project-assigner",
               "hmarr/auto-approve-action",
               "octokit/graphql-action",
               "sergeysova/jq-action",
               "sourenlouv/backport"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "backport:all-open", "release_note:skip"],
             "enabled": true
           },
           {
             "groupName": "@elastic/charts",
             "matchDepNames": ["@elastic/charts"],
             "reviewers": ["team:visualizations", "markov00", "nickofthyme"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "Team:Visualizations"],
             "enabled": true
           },
           {
             "groupName": "@elastic/elasticsearch",
             "matchDepNames": ["@elastic/elasticsearch"],
             "reviewers": ["team:kibana-operations", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "backport:skip",
               "Team:Operations",
               "Team:Core"
             ],
             "enabled": true
           },
           {
             "groupName": "@elastic/elasticsearch",
             "matchDepNames": ["@elastic/elasticsearch"],
             "reviewers": ["team:kibana-operations", "team:kibana-core"],
             "matchBaseBranches": ["7.17"],
             "labels": [
               "release_note:skip",
               "Team:Operations",
               "Team:Core",
               "backport:skip"
             ],
             "enabled": true
           },
           {
             "groupName": "LaunchDarkly",
             "matchDepNames": [
               "launchdarkly-js-client-sdk",
               "@launchdarkly/node-server-sdk",
               "launchdarkly/find-code-references"
             ],
             "reviewers": ["team:kibana-security", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "Team:Security",
               "Team:Core",
               "backport:prev-minor"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "APM",
             "matchDepNames": [
               "elastic-apm-node",
               "@elastic/apm-rum",
               "@elastic/apm-rum-react"
             ],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "enabled": true
           },
           {
             "groupName": "@elastic/ebt",
             "matchDepNames": ["@elastic/ebt"],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "enabled": true
           },
           {
             "groupName": "ansi-regex",
             "matchDepNames": ["ansi-regex"],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "OpenAPI Spec",
             "matchDepNames": ["@redocly/cli"],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "babel",
             "matchDepNames": ["@types/babel__core", "/^@babel/", "/^babel-plugin/"],
             "matchDepPatterns": ["^@babel", "^babel-plugin"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "typescript",
             "matchDepNames": ["typescript", "@types/jsdom"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "prettier",
             "matchDepNames": [
               "prettier",
               "eslint-plugin-prettier",
               "eslint-config-prettier"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "allowedVersions": "<3.0",
             "enabled": true
           },
           {
             "groupName": "typescript-eslint",
             "matchDepPatterns": ["^@typescript-eslint"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "eslint-plugin-depend",
             "matchDepPatterns": ["eslint-plugin-depend"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "polyfills",
             "matchDepNames": ["core-js", "/polyfill/"],
             "matchDepPatterns": ["polyfill"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "CLI tooling",
             "matchDepNames": ["listr2"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "backport:all-open", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "vega related modules",
             "matchDepNames": [
               "vega",
               "vega-lite",
               "vega-schema-url-parser",
               "vega-tooltip"
             ],
             "reviewers": ["team:kibana-visualizations"],
             "matchBaseBranches": ["main"],
             "labels": ["Feature:Vega", "Team:Visualizations"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "cypress",
             "matchDepPatterns": ["cypress"],
             "reviewers": ["Team:apm", "Team: SecuritySolution"],
             "matchBaseBranches": ["main"],
             "labels": ["buildkite-ci", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "security solution modules",
             "matchDepNames": ["zod", "langchain"],
             "reviewers": ["Team: SecuritySolution"],
             "matchBaseBranches": ["main"],
             "labels": ["Team: SecuritySolution"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "platform security modules",
             "matchDepNames": [
               "css.escape",
               "node-forge",
               "formik",
               "@types/node-forge",
               "require-in-the-middle",
               "tough-cookie",
               "@types/tough-cookie",
               "xml-crypto",
               "@types/xml-crypto",
               "@kayahr/text-encoding"
             ],
             "reviewers": ["team:kibana-security"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Security", "release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "CodeQL",
             "matchDepNames": [
               "github/codeql-action/analyze",
               "github/codeql-action/init"
             ],
             "reviewers": ["team:kibana-security"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Security", "release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "ftr",
             "matchDepNames": [
               "@types/chromedriver",
               "@types/selenium-webdriver",
               "chromedriver",
               "geckodriver",
               "ms-chromium-edge-driver",
               "selenium-webdriver"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "scss",
             "matchDepNames": ["sass-embedded"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "minify",
             "matchDepNames": ["gulp-terser", "terser"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "@testing-library",
             "matchDepNames": [
               "@testing-library/dom",
               "@testing-library/jest-dom",
               "@testing-library/react",
               "@testing-library/react-hooks",
               "@testing-library/user-event",
               "@types/testing-library__jest-dom"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "jest",
             "matchDepNames": [
               "@jest/console",
               "@jest/reporters",
               "@jest/types",
               "babel-jest",
               "expect",
               "jest",
               "jest-cli",
               "jest-config",
               "jest-diff",
               "jest-environment-jsdom",
               "jest-matcher-utils",
               "jest-mock",
               "jest-runtime",
               "jest-snapshot"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "@storybook",
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "matchDepPatterns": ["^@storybook"],
             "excludeDepNames": ["@storybook/testing-react"],
             "labels": [
               "Team:Operations",
               "release_note:skip",
               "ci:build-storybooks",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "allowedVersions": "<7.0",
             "enabled": true
           },
           {
             "groupName": "@storybook/testing-react",
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "matchDepNames": ["@storybook/testing-react"],
             "labels": [
               "Team:Operations",
               "release_note:skip",
               "ci:build-storybooks",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "allowedVersions": "<2.0",
             "enabled": true
           },
           {
             "groupName": "react-query",
             "matchDepNames": [
               "@tanstack/react-query",
               "@tanstack/react-query-devtools"
             ],
             "reviewers": [
               "team:response-ops",
               "team:kibana-cloud-security-posture",
               "team:security-asset-management",
               "team:fleet",
               "team:awp-platform",
               "team:security-onboarding-and-lifecycle-mgt"
             ],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "react-hook-form",
             "matchDepNames": ["react-hook-form"],
             "reviewers": ["team:security-asset-management", "team:uptime"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "redux",
             "matchDepNames": ["redux", "react-redux"],
             "reviewers": [
               "team:search-kibana",
               "team:kibana-presentation",
               "team:kibana-data-discovery",
               "team:kibana-management",
               "team:kibana-gis",
               "team:security-solution"
             ],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "Profiling",
             "matchDepNames": ["peggy", "@types/dagre"],
             "reviewers": ["team:obs-ux-infra_services-team"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "TTY Output",
             "matchDepNames": ["xterm", "byte-size", "@types/byte-size"],
             "reviewers": ["team:sec-cloudnative-integrations"],
             "matchBaseBranches": ["main"],
             "labels": [
               "Team: AWP: Visualization",
               "release_note:skip",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "Cloud Defend",
             "matchDepNames": ["monaco-yaml"],
             "reviewers": ["team:sec-cloudnative-integrations"],
             "matchBaseBranches": ["main"],
             "labels": [
               "Team: Cloud Native Integrations",
               "release_note:skip",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "JSON Web Token",
             "matchDepNames": ["jsonwebtoken"],
             "reviewers": ["team:response-ops", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "XState",
             "matchDepNames": ["xstate", "@xstate/{/,}**"],
             "matchDepPrefixes": ["@xstate/"],
             "reviewers": ["team:obs-ux-logs-team"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Obs UX Logs", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "OpenTelemetry modules",
             "matchDepPrefixes": ["@opentelemetry/"],
             "reviewers": ["team:stack-monitoring"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Monitoring"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "csp",
             "matchDepNames": ["content-security-policy-parser"],
             "reviewers": ["team:kibana-security", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "backport:skip",
               "ci:serverless-test-all"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "AlertingEmails",
             "matchDepNames": ["nodemailer"],
             "reviewers": ["team:response-ops"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:prev-minor"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "Kibana ES|QL Team",
             "matchDepNames": ["recast"],
             "reviewers": ["team:kibana-esql"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:ESQL", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "MSW",
             "matchPackageNames": ["msw"],
             "reviewers": ["team:kibana-cloud-security-posture"],
             "matchBaseBranches": ["main"],
             "labels": ["Team: Cloud Security", "release_note:skip", "backport:skip"],
             "enabled": true
           },
           {
             "groupName": "re2js",
             "matchDepNames": ["re2js"],
             "reviewers": ["team:visualizations", "dej611"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "backport:all-open",
               "Team:Visualizations"
             ],
             "enabled": true
           },
           {
             "groupName": "Serve swagger docs",
             "matchDepNames": ["express", "swagger-jsdoc", "swagger-ui-express"],
             "reviewers": ["team:obs-entities"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "team:obs-entities"],
             "enabled": true
           }
         ],
         "customManagers": [
           {
             "description": "Update Wolfi base image",
             "customType": "regex",
             "fileMatch": [
               "^src/dev/build/tasks/os_packages/docker_generator/run\\.ts$"
             ],
             "matchStrings": [
               "(?<depName>docker\\.elastic\\.co/wolfi/chainguard-base):(?<currentValue>[-a-zA-Z0-9.]+)?(?:@(?<currentDigest>sha256:[a-fA-F0-9]+))?"
             ],
             "datasourceTemplate": "docker"
           },
           {
             "description": "Update pipelib image",
             "customType": "regex",
             "fileMatch": [
               "^\\.buildkite/pipeline-resource-definitions/scripts/validate-pipeline-definition\\.sh$",
               "^\\.buildkite/scripts/steps/checks/renovate\\.sh$"
             ],
             "matchStrings": [
               "(?<depName>docker\\.elastic\\.co/ci-agent-images/pipelib):(?<currentValue>[-a-zA-Z0-9.]+)?(?:@(?<currentDigest>sha256:[a-fA-F0-9]+))?"
             ],
             "datasourceTemplate": "docker"
           }
         ]
       },
       "newConfig": {
         "$schema": "https://docs.renovatebot.com/renovate-schema.json",
         "extends": [
           "config:recommended",
           "helpers:pinGitHubActionDigests",
           "helpers:pinGitHubActionDigestsToSemver"
         ],
         "ignorePaths": ["**/__fixtures__/**", "**/fixtures/**"],
         "enabledManagers": ["npm", "github-actions", "custom.regex"],
         "baseBranches": ["main", "7.17"],
         "prConcurrentLimit": 0,
         "prHourlyLimit": 0,
         "separateMajorMinor": false,
         "rangeStrategy": "bump",
         "semanticCommits": "disabled",
         "vulnerabilityAlerts": {"enabled": false},
         "lockFileMaintenance": {"enabled": false},
         "packageRules": [
           {"enabled": false, "matchDepNames": ["/.*/"]},
           {
             "groupName": "chainguard",
             "matchPackageNames": ["docker.elastic.co/wolfi/chainguard-base"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "enabled": true
           },
           {
             "groupName": "operations actions",
             "matchManagers": ["github-actions"],
             "matchPackageNames": [
               "actions/checkout",
               "elastic/github-actions/project-assigner",
               "hmarr/auto-approve-action",
               "octokit/graphql-action",
               "sergeysova/jq-action",
               "sourenlouv/backport"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "backport:all-open", "release_note:skip"],
             "enabled": true
           },
           {
             "groupName": "@elastic/charts",
             "matchDepNames": ["@elastic/charts"],
             "reviewers": ["team:visualizations", "markov00", "nickofthyme"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "Team:Visualizations"],
             "enabled": true
           },
           {
             "groupName": "@elastic/elasticsearch",
             "matchDepNames": ["@elastic/elasticsearch"],
             "reviewers": ["team:kibana-operations", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "backport:skip",
               "Team:Operations",
               "Team:Core"
             ],
             "enabled": true
           },
           {
             "groupName": "@elastic/elasticsearch",
             "matchDepNames": ["@elastic/elasticsearch"],
             "reviewers": ["team:kibana-operations", "team:kibana-core"],
             "matchBaseBranches": ["7.17"],
             "labels": [
               "release_note:skip",
               "Team:Operations",
               "Team:Core",
               "backport:skip"
             ],
             "enabled": true
           },
           {
             "groupName": "LaunchDarkly",
             "matchDepNames": [
               "launchdarkly-js-client-sdk",
               "@launchdarkly/node-server-sdk",
               "launchdarkly/find-code-references"
             ],
             "reviewers": ["team:kibana-security", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "Team:Security",
               "Team:Core",
               "backport:prev-minor"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "APM",
             "matchDepNames": [
               "elastic-apm-node",
               "@elastic/apm-rum",
               "@elastic/apm-rum-react"
             ],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "enabled": true
           },
           {
             "groupName": "@elastic/ebt",
             "matchDepNames": ["@elastic/ebt"],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "enabled": true
           },
           {
             "groupName": "ansi-regex",
             "matchDepNames": ["ansi-regex"],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "OpenAPI Spec",
             "matchDepNames": ["@redocly/cli"],
             "reviewers": ["team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "Team:Core", "backport:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "babel",
             "matchDepNames": ["@types/babel__core", "/^@babel/", "/^babel-plugin/"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "typescript",
             "matchDepNames": ["typescript", "@types/jsdom"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "prettier",
             "matchDepNames": [
               "prettier",
               "eslint-plugin-prettier",
               "eslint-config-prettier"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "allowedVersions": "<3.0",
             "enabled": true
           },
           {
             "groupName": "typescript-eslint",
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true,
             "matchDepNames": ["/^@typescript-eslint/"]
           },
           {
             "groupName": "eslint-plugin-depend",
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true,
             "matchDepNames": ["/eslint-plugin-depend/"]
           },
           {
             "groupName": "polyfills",
             "matchDepNames": ["core-js", "/polyfill/"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "CLI tooling",
             "matchDepNames": ["listr2"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "backport:all-open", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "vega related modules",
             "matchDepNames": [
               "vega",
               "vega-lite",
               "vega-schema-url-parser",
               "vega-tooltip"
             ],
             "reviewers": ["team:kibana-visualizations"],
             "matchBaseBranches": ["main"],
             "labels": ["Feature:Vega", "Team:Visualizations"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "cypress",
             "reviewers": ["Team:apm", "Team: SecuritySolution"],
             "matchBaseBranches": ["main"],
             "labels": ["buildkite-ci", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true,
             "matchDepNames": ["/cypress/"]
           },
           {
             "groupName": "security solution modules",
             "matchDepNames": ["zod", "langchain"],
             "reviewers": ["Team: SecuritySolution"],
             "matchBaseBranches": ["main"],
             "labels": ["Team: SecuritySolution"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "platform security modules",
             "matchDepNames": [
               "css.escape",
               "node-forge",
               "formik",
               "@types/node-forge",
               "require-in-the-middle",
               "tough-cookie",
               "@types/tough-cookie",
               "xml-crypto",
               "@types/xml-crypto",
               "@kayahr/text-encoding"
             ],
             "reviewers": ["team:kibana-security"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Security", "release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "CodeQL",
             "matchDepNames": [
               "github/codeql-action/analyze",
               "github/codeql-action/init"
             ],
             "reviewers": ["team:kibana-security"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Security", "release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "ftr",
             "matchDepNames": [
               "@types/chromedriver",
               "@types/selenium-webdriver",
               "chromedriver",
               "geckodriver",
               "ms-chromium-edge-driver",
               "selenium-webdriver"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "scss",
             "matchDepNames": ["sass-embedded"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "minify",
             "matchDepNames": ["gulp-terser", "terser"],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "@testing-library",
             "matchDepNames": [
               "@testing-library/dom",
               "@testing-library/jest-dom",
               "@testing-library/react",
               "@testing-library/react-hooks",
               "@testing-library/user-event",
               "@types/testing-library__jest-dom"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "jest",
             "matchDepNames": [
               "@jest/console",
               "@jest/reporters",
               "@jest/types",
               "babel-jest",
               "expect",
               "jest",
               "jest-cli",
               "jest-config",
               "jest-diff",
               "jest-environment-jsdom",
               "jest-matcher-utils",
               "jest-mock",
               "jest-runtime",
               "jest-snapshot"
             ],
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Operations", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "@storybook",
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "labels": [
               "Team:Operations",
               "release_note:skip",
               "ci:build-storybooks",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "allowedVersions": "<7.0",
             "enabled": true,
             "matchDepNames": ["/^@storybook/", "!@storybook/testing-react"]
           },
           {
             "groupName": "@storybook/testing-react",
             "reviewers": ["team:kibana-operations"],
             "matchBaseBranches": ["main"],
             "matchDepNames": ["@storybook/testing-react"],
             "labels": [
               "Team:Operations",
               "release_note:skip",
               "ci:build-storybooks",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "allowedVersions": "<2.0",
             "enabled": true
           },
           {
             "groupName": "react-query",
             "matchDepNames": [
               "@tanstack/react-query",
               "@tanstack/react-query-devtools"
             ],
             "reviewers": [
               "team:response-ops",
               "team:kibana-cloud-security-posture",
               "team:security-asset-management",
               "team:fleet",
               "team:awp-platform",
               "team:security-onboarding-and-lifecycle-mgt"
             ],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "react-hook-form",
             "matchDepNames": ["react-hook-form"],
             "reviewers": ["team:security-asset-management", "team:uptime"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "redux",
             "matchDepNames": ["redux", "react-redux"],
             "reviewers": [
               "team:search-kibana",
               "team:kibana-presentation",
               "team:kibana-data-discovery",
               "team:kibana-management",
               "team:kibana-gis",
               "team:security-solution"
             ],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "Profiling",
             "matchDepNames": ["peggy", "@types/dagre"],
             "reviewers": ["team:obs-ux-infra_services-team"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "TTY Output",
             "matchDepNames": ["xterm", "byte-size", "@types/byte-size"],
             "reviewers": ["team:sec-cloudnative-integrations"],
             "matchBaseBranches": ["main"],
             "labels": [
               "Team: AWP: Visualization",
               "release_note:skip",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "Cloud Defend",
             "matchDepNames": ["monaco-yaml"],
             "reviewers": ["team:sec-cloudnative-integrations"],
             "matchBaseBranches": ["main"],
             "labels": [
               "Team: Cloud Native Integrations",
               "release_note:skip",
               "backport:skip"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "JSON Web Token",
             "matchDepNames": ["jsonwebtoken"],
             "reviewers": ["team:response-ops", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:all-open"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "XState",
             "matchDepNames": ["xstate", "@xstate/{/,}**"],
             "reviewers": ["team:obs-ux-logs-team"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Obs UX Logs", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "OpenTelemetry modules",
             "reviewers": ["team:stack-monitoring"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:Monitoring"],
             "minimumReleaseAge": "7 days",
             "enabled": true,
             "matchDepNames": ["@opentelemetry/{/,}**"]
           },
           {
             "groupName": "csp",
             "matchDepNames": ["content-security-policy-parser"],
             "reviewers": ["team:kibana-security", "team:kibana-core"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "backport:skip",
               "ci:serverless-test-all"
             ],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "AlertingEmails",
             "matchDepNames": ["nodemailer"],
             "reviewers": ["team:response-ops"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "backport:prev-minor"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "Kibana ES|QL Team",
             "matchDepNames": ["recast"],
             "reviewers": ["team:kibana-esql"],
             "matchBaseBranches": ["main"],
             "labels": ["Team:ESQL", "release_note:skip"],
             "minimumReleaseAge": "7 days",
             "enabled": true
           },
           {
             "groupName": "MSW",
             "matchPackageNames": ["msw"],
             "reviewers": ["team:kibana-cloud-security-posture"],
             "matchBaseBranches": ["main"],
             "labels": ["Team: Cloud Security", "release_note:skip", "backport:skip"],
             "enabled": true
           },
           {
             "groupName": "re2js",
             "matchDepNames": ["re2js"],
             "reviewers": ["team:visualizations", "dej611"],
             "matchBaseBranches": ["main"],
             "labels": [
               "release_note:skip",
               "backport:all-open",
               "Team:Visualizations"
             ],
             "enabled": true
           },
           {
             "groupName": "Serve swagger docs",
             "matchDepNames": ["express", "swagger-jsdoc", "swagger-ui-express"],
             "reviewers": ["team:obs-entities"],
             "matchBaseBranches": ["main"],
             "labels": ["release_note:skip", "team:obs-entities"],
             "enabled": true
           }
         ],
         "customManagers": [
           {
             "description": "Update Wolfi base image",
             "customType": "regex",
             "fileMatch": [
               "^src/dev/build/tasks/os_packages/docker_generator/run\\.ts$"
             ],
             "matchStrings": [
               "(?<depName>docker\\.elastic\\.co/wolfi/chainguard-base):(?<currentValue>[-a-zA-Z0-9.]+)?(?:@(?<currentDigest>sha256:[a-fA-F0-9]+))?"
             ],
             "datasourceTemplate": "docker"
           },
           {
             "description": "Update pipelib image",
             "customType": "regex",
             "fileMatch": [
               "^\\.buildkite/pipeline-resource-definitions/scripts/validate-pipeline-definition\\.sh$",
               "^\\.buildkite/scripts/steps/checks/renovate\\.sh$"
             ],
             "matchStrings": [
               "(?<depName>docker\\.elastic\\.co/ci-agent-images/pipelib):(?<currentValue>[-a-zA-Z0-9.]+)?(?:@(?<currentDigest>sha256:[a-fA-F0-9]+))?"
             ],
             "datasourceTemplate": "docker"
           }
         ]
       }
```
</details>

------

This PR has 2 commits:
1. `7039eaf25b`: contains only whitespace
changes, in order to make the resulting diff easier to digest.
2. `da12693c10`: the actual config
migration.
2024-08-26 21:25:03 -05:00
Brad White
d07ffe2a04
Add Kibana Dev Container (#188887)
## Summary
- Closes elastic/kibana-operations#101

This PR adds a [Dev Container](https://containers.dev/) to utilize for
Kibana local development in an isolated environment. The original
intention was to create a local environment for FIPS development because
setting up Kibana in FIPS mode is complicated and has the potential to
break the user's OS. However, it has been altered to allow for general
development if an engineer chooses as well. The idea is for this be a
cost efficient replacement for
[kibana-remote-dev](https://github.com/elastic/kibana-remote-dev)
eventually.

### Testing
- In VS Code you should be able to use the `Dev Containers: Clone GitHub
Pull Request in Named Container Volume...` command from the Command
Palette (F1) to easily test this PR.
- See the
[docs](bd125fc230/dev_docs/getting_started/setting_up_a_development_env.mdx (using-the-kibana-dev-container-optional))
for additional information on setting up the Dev Container.


### Bazel
I tried many different solutions to copy the local Bazel cache into the
container to speed up bootstrap, but it either would break Bazel or
didn't provide any meaningful boost in performance. I opted to forgo
keeping it in this PR due to the complexity and since we're planning to
phase out Bazel in the future anyways.
2024-08-26 14:38:45 -07:00
Alejandro Fernández Haro
9ab690e23b
Upgrade FullStory snippet (#189960)
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2024-08-23 12:17:21 -05:00
Dima Arnautov
f9c43f61c9
[ML] Replace apiDoc annotations with routes definitions for OpenAPI spec generation (#190840)
## Summary

- Removes `apidoc-markdown` dependency and custom scripts for generating
internal documentation for ML Kibana endpoints
- Replaces apidoc annotations with `summary` and `description` props for
route handlers and kbn-schemas to generate an OpenAPI spec file
- `/internal/ml/jobs/delete_jobs` route was not versioned for some
reason, I changed that


#### How to test 

1. Enable OAS endpoint in `kibana.dev.yml`

```yaml
server.oas.enabled: true
```
2. Start Kibana dev server 
```bash
yarn start --no-base-path
```
3. Call the OAS endpoint for ML _internal_ routes 
```bash
curl -s -u <USERNAME>:<PASSWORD> http://localhost:5601/api/oas\?pathStartsWith\=/internal/ml\&access\=internal -o ml_kibana_openapi.json
```
2024-08-23 08:28:57 -05:00
Jon
7f4b5389f0
[renovate] Label chainguard updates (#190719) 2024-08-19 12:55:46 -07:00
Tom Myers
e9c913dcb0
Add OpenAPI specs for EEM APIs (#190203) 2024-08-19 20:05:25 +02:00
Jon
2077468c37
[renovate] Add launchdarkly github action (#190535)
Adds the GitHub action `launchdarkly/find-code-references` to the
LaunchDarkly group of dependencies.

A pull request will be opened shortly after introducing sha pinning to
the dependency.
2024-08-14 15:08:30 -05:00
Jon
4b0fb8fd58
[renovate] Add operations related github actions (#190538) 2024-08-14 14:03:05 -05:00
Jon
69c50c8774
[renovate] Add CodeQL github action (#190537) 2024-08-14 13:53:02 -05:00
Jon
0719f5c110
[renovate] Test github action package match (#190427)
Another attempt at fixing github action pinning. This scopes us to the
actions/checkout package only for now, and we can expand it later.

Previously: https://github.com/elastic/kibana/pull/190377, which was
successful for the auto-approve-backport acttion.
2024-08-13 09:48:13 -05:00
Jamie Tanna
bec63eca4c
chore(renovate): add Regex Manager to enabledManagers (#190385)
## Summary

As it's required for us to extract Chainguard images, as well as some
other cases like Buildkite.

### Checklist

Delete any items that are not applicable to this PR.

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


### Risk Matrix

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

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

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

| Risk | Probability | Severity | Mitigation/Notes |

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


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2024-08-13 07:05:50 -05:00
Jon
97fd4e4a42
[ci] Validate renovate config (#190234)
Adds `renovate.json` config validation to `Quick Checks`
2024-08-12 17:13:07 -05:00
Jamie Tanna
ed4139e0f7
fix(renovate): correctly specify depName for chainguard-base extraction (#190308)
## Summary

As we had not specified a `depName` capture group - or explicitly
defined `depNameTemplate`, Renovate's extraction fails, as it cannot
determine which package it is matching on.

Closes #190204


### Checklist

Delete any items that are not applicable to this PR.

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


### Risk Matrix

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

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

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

| Risk | Probability | Severity | Mitigation/Notes |

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


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2024-08-12 07:28:16 -05:00
Isaac Karrer
60c5eca33e
Feat/renovate custom chainguard matcher pt2 (#190260)
## Summary

Drops a comment for the current chaingaurd reference incase it is
implemented in a tech that requires endings other than `.ts`, and then
creates a PR grouping for the chainguard images.
2024-08-09 13:22:35 -05:00
Alejandro Fernández Haro
5f985213af
Add eslint-plugin-depend (#190233) 2024-08-09 20:07:01 +02:00
Isaac Karrer
77be3c0b32
add custom matcher for run.ts (#190186)
## Summary

A custom matcher for chainguard updates.


https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/run.ts#L46
2024-08-09 09:07:40 -05:00
Jon
a1dd807718
[ci] Fix renovate config (#190242)
Will follow up with a check to prevent these issues with
https://github.com/elastic/kibana/pull/190234
2024-08-09 08:56:22 -05:00
Jon
9a54dbcf8d
[renovate] Enable GitHub actions (#190173)
https://docs.renovatebot.com/modules/manager/github-actions/
2024-08-08 16:13:59 -05:00
Alejandro Fernández Haro
7bd6ca647d
[renovate] Do not backport redocly/cli updates (#189471) 2024-07-30 11:45:29 +02:00
Brad White
e67b9678b3
[Renovate] Restrict prettier version (#189124)
## Summary

Upgrade to `prettier@3` is blocked by jest upgrade to `jest@30`. See
https://github.com/elastic/kibana/pull/188021#issuecomment-2221253306
2024-07-24 13:29:18 -07:00