Skip to content

move kbn-client into its own package#258963

Merged
dmlemeshko merged 8 commits intoelastic:mainfrom
dmlemeshko:add-kbn-client
Mar 23, 2026
Merged

move kbn-client into its own package#258963
dmlemeshko merged 8 commits intoelastic:mainfrom
dmlemeshko:add-kbn-client

Conversation

@dmlemeshko
Copy link
Copy Markdown
Contributor

@dmlemeshko dmlemeshko commented Mar 21, 2026

Summary

Extracts the Kibana tooling HTTP client (KbnClient and related helpers) from @kbn/test into a dedicated @kbn/kbn-client package. @kbn/test continues to re-export the same symbols so existing import { … } from '@kbn/test' call sites keep working.

Why

  • Smaller, clearer dependency graph for tools that only need a Kibana HTTP client (e.g. Scout, Cypress helpers, evals) without pulling in the full FTR/Jest/Mocha surface of @kbn/test.
  • Single public entry for client APIs instead of deep imports like @kbn/test/src/kbn_client/..., which aligns with package boundaries and makes types like UiSettingValues and ReqOptions part of a stable export surface.
  • Easier next steps to peel off other focused pieces (e.g. SAML session management) on top of @kbn/kbn-client instead of growing @kbn/test further.

Notes

  • New package is devOnly like @kbn/test.
  • Jest/unit tests for the client live under @kbn/kbn-client.

@dmlemeshko dmlemeshko added release_note:skip Skip the PR/issue when compiling release notes backport:all-open Backport to all branches that could still receive a release labels Mar 21, 2026
@dmlemeshko dmlemeshko marked this pull request as ready for review March 21, 2026 18:11
@dmlemeshko dmlemeshko requested review from a team as code owners March 21, 2026 18:11
@elasticmachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] Osquery Cypress Tests #3 / EXPERIMENTAL - History (queryHistoryRework) should filter history via search input

Metrics [docs]

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
@kbn/kbn-client - 53 +53
@kbn/test 323 350 +27
total +80

Any counts in public APIs

Total count of every any typed public API. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats any for more detailed information.

id before after diff
@kbn/kbn-client - 1 +1
@kbn/test 4 5 +1
total +2

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
@kbn/kbn-client - 7 +7
@kbn/test 15 6 -9
total -2
Unknown metric groups

API count

id before after diff
@kbn/kbn-client - 62 +62
@kbn/test 383 417 +34
total +96

History

Copy link
Copy Markdown
Contributor

@maxcold maxcold left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cloud_security_posture tests change lgtm

@dmlemeshko dmlemeshko merged commit c701e38 into elastic:main Mar 23, 2026
19 checks passed
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 8.19, 9.2, 9.3

https://github.com/elastic/kibana/actions/runs/23434087431

@kibanamachine
Copy link
Copy Markdown
Contributor

💔 All backports failed

Status Branch Result
8.19 Backport failed because of merge conflicts
9.2 Backport failed because of merge conflicts
9.3 Backport failed because of merge conflicts

Manual backport

To create the backport manually run:

node scripts/backport --pr 258963

Questions ?

Please refer to the Backport tool documentation

dmlemeshko added a commit to dmlemeshko/kibana that referenced this pull request Mar 23, 2026
Extracts the Kibana tooling HTTP client (`KbnClient` and related
helpers) from `@kbn/test` into a dedicated `@kbn/kbn-client` package.
`@kbn/test` continues to re-export the same symbols so existing `import
{ … } from '@kbn/test'` call sites keep working.

- Smaller, clearer dependency graph for tools that only need a Kibana
HTTP client (e.g. `Scout`, `Cypress` helpers, `evals`) without pulling
in the full FTR/Jest/Mocha surface of `@kbn/test`.
- Single public entry for client APIs instead of deep imports like
`@kbn/test/src/kbn_client/...`, which aligns with package boundaries and
makes types like UiSettingValues and ReqOptions part of a stable export
surface.
- Easier next steps to peel off other focused pieces (e.g. SAML session
management) on top of `@kbn/kbn-client` instead of growing `@kbn/test`
further.

- New package is `devOnly` like @kbn/test.
- Jest/unit tests for the client live under `@kbn/kbn-client`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit c701e38)
@dmlemeshko
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
9.3

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

dmlemeshko added a commit to dmlemeshko/kibana that referenced this pull request Mar 23, 2026
## Summary

Extracts the Kibana tooling HTTP client (`KbnClient` and related
helpers) from `@kbn/test` into a dedicated `@kbn/kbn-client` package.
`@kbn/test` continues to re-export the same symbols so existing `import
{ … } from '@kbn/test'` call sites keep working.

### Why

- Smaller, clearer dependency graph for tools that only need a Kibana
HTTP client (e.g. `Scout`, `Cypress` helpers, `evals`) without pulling
in the full FTR/Jest/Mocha surface of `@kbn/test`.
- Single public entry for client APIs instead of deep imports like
`@kbn/test/src/kbn_client/...`, which aligns with package boundaries and
makes types like UiSettingValues and ReqOptions part of a stable export
surface.
- Easier next steps to peel off other focused pieces (e.g. SAML session
management) on top of `@kbn/kbn-client` instead of growing `@kbn/test`
further.

### Notes
- New package is `devOnly` like @kbn/test.
- Jest/unit tests for the client live under `@kbn/kbn-client`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit c701e38)

# Conflicts:
#	.github/CODEOWNERS
#	src/platform/packages/shared/kbn-kbn-client/src/kbn_client/kbn_client_requester_error.test.ts
#	x-pack/platform/packages/shared/kbn-evals/moon.yml
#	x-pack/platform/packages/shared/kbn-evals/src/utils/evaluations_kbn_client.test.ts
#	x-pack/platform/packages/shared/kbn-evals/src/utils/evaluations_kbn_client.ts
#	x-pack/platform/packages/shared/kbn-evals/src/utils/kbn_client_with_retries.ts
#	x-pack/platform/packages/shared/kbn-evals/tsconfig.json
@dmlemeshko
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
9.3

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

dmlemeshko added a commit to dmlemeshko/kibana that referenced this pull request Mar 23, 2026
## Summary

Extracts the Kibana tooling HTTP client (`KbnClient` and related
helpers) from `@kbn/test` into a dedicated `@kbn/kbn-client` package.
`@kbn/test` continues to re-export the same symbols so existing `import
{ … } from '@kbn/test'` call sites keep working.

### Why

- Smaller, clearer dependency graph for tools that only need a Kibana
HTTP client (e.g. `Scout`, `Cypress` helpers, `evals`) without pulling
in the full FTR/Jest/Mocha surface of `@kbn/test`.
- Single public entry for client APIs instead of deep imports like
`@kbn/test/src/kbn_client/...`, which aligns with package boundaries and
makes types like UiSettingValues and ReqOptions part of a stable export
surface.
- Easier next steps to peel off other focused pieces (e.g. SAML session
management) on top of `@kbn/kbn-client` instead of growing `@kbn/test`
further.

### Notes
- New package is `devOnly` like @kbn/test.
- Jest/unit tests for the client live under `@kbn/kbn-client`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit c701e38)

# Conflicts:
#	.github/CODEOWNERS
#	src/platform/packages/shared/kbn-kbn-client/src/kbn_client/kbn_client_requester_error.test.ts
#	src/platform/packages/shared/kbn-test/src/auth/session_manager.ts
#	x-pack/platform/packages/shared/kbn-evals/moon.yml
#	x-pack/platform/packages/shared/kbn-evals/src/utils/evaluations_kbn_client.test.ts
#	x-pack/platform/packages/shared/kbn-evals/src/utils/evaluations_kbn_client.ts
#	x-pack/platform/packages/shared/kbn-evals/src/utils/kbn_client_with_retries.ts
#	x-pack/platform/packages/shared/kbn-evals/tsconfig.json
#	x-pack/solutions/security/test/cloud_security_posture_functional/data_views/data_views.ts
#	x-pack/solutions/security/test/moon.yml
#	x-pack/solutions/security/test/tsconfig.json
@dmlemeshko
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
9.2

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

dmlemeshko added a commit to dmlemeshko/kibana that referenced this pull request Mar 23, 2026
## Summary

Extracts the Kibana tooling HTTP client (`KbnClient` and related
helpers) from `@kbn/test` into a dedicated `@kbn/kbn-client` package.
`@kbn/test` continues to re-export the same symbols so existing `import
{ … } from '@kbn/test'` call sites keep working.

### Why

- Smaller, clearer dependency graph for tools that only need a Kibana
HTTP client (e.g. `Scout`, `Cypress` helpers, `evals`) without pulling
in the full FTR/Jest/Mocha surface of `@kbn/test`.
- Single public entry for client APIs instead of deep imports like
`@kbn/test/src/kbn_client/...`, which aligns with package boundaries and
makes types like UiSettingValues and ReqOptions part of a stable export
surface.
- Easier next steps to peel off other focused pieces (e.g. SAML session
management) on top of `@kbn/kbn-client` instead of growing `@kbn/test`
further.

### Notes
- New package is `devOnly` like @kbn/test.
- Jest/unit tests for the client live under `@kbn/kbn-client`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit c701e38)

# Conflicts:
#	.github/CODEOWNERS
#	src/platform/packages/shared/kbn-kbn-client/src/kbn_client/kbn_client_requester_error.test.ts
#	src/platform/packages/shared/kbn-scout/src/common/services/clients.ts
#	src/platform/packages/shared/kbn-scout/src/playwright/fixtures/scope/worker/core_fixtures.ts
#	src/platform/packages/shared/kbn-scout/src/playwright/fixtures/scope/worker/scout_space/index.ts
#	src/platform/packages/shared/kbn-scout/src/playwright/fixtures/scope/worker/scout_space/parallel.ts
#	src/platform/packages/shared/kbn-scout/src/playwright/fixtures/scope/worker/ui_settings/index.ts
#	src/platform/packages/shared/kbn-scout/src/playwright/fixtures/scope/worker/ui_settings/single_thread.ts
#	src/platform/packages/shared/kbn-test/src/auth/session_manager.ts
#	src/platform/packages/shared/kbn-test/src/functional_test_runner/lib/dedicated_task_runner.ts
#	x-pack/platform/packages/shared/kbn-evals/moon.yml
#	x-pack/platform/packages/shared/kbn-evals/src/utils/evaluations_kbn_client.test.ts
#	x-pack/platform/packages/shared/kbn-evals/src/utils/evaluations_kbn_client.ts
#	x-pack/platform/packages/shared/kbn-evals/src/utils/http_handler_from_kbn_client.ts
#	x-pack/platform/packages/shared/kbn-evals/src/utils/kbn_client_with_retries.ts
#	x-pack/platform/packages/shared/kbn-evals/tsconfig.json
#	x-pack/solutions/security/test/cloud_security_posture_functional/data_views/data_views.ts
#	x-pack/solutions/security/test/moon.yml
#	x-pack/solutions/security/test/tsconfig.json
@dmlemeshko
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
8.19

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kubasobon pushed a commit that referenced this pull request Mar 24, 2026
## Summary

Extracts the Kibana tooling HTTP client (`KbnClient` and related
helpers) from `@kbn/test` into a dedicated `@kbn/kbn-client` package.
`@kbn/test` continues to re-export the same symbols so existing `import
{ … } from '@kbn/test'` call sites keep working.

### Why

- Smaller, clearer dependency graph for tools that only need a Kibana
HTTP client (e.g. `Scout`, `Cypress` helpers, `evals`) without pulling
in the full FTR/Jest/Mocha surface of `@kbn/test`.
- Single public entry for client APIs instead of deep imports like
`@kbn/test/src/kbn_client/...`, which aligns with package boundaries and
makes types like UiSettingValues and ReqOptions part of a stable export
surface.
- Easier next steps to peel off other focused pieces (e.g. SAML session
management) on top of `@kbn/kbn-client` instead of growing `@kbn/test`
further.

### Notes
- New package is `devOnly` like @kbn/test.
- Jest/unit tests for the client live under `@kbn/kbn-client`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
@kibanamachine kibanamachine added the backport missing Added to PRs automatically when the are determined to be missing a backport. label Mar 24, 2026
@kibanamachine
Copy link
Copy Markdown
Contributor

Looks like this PR has backport PRs but they still haven't been merged. Please merge them ASAP to keep the branches relatively in sync.
cc: @dmlemeshko

1 similar comment
@kibanamachine
Copy link
Copy Markdown
Contributor

Looks like this PR has backport PRs but they still haven't been merged. Please merge them ASAP to keep the branches relatively in sync.
cc: @dmlemeshko

dmlemeshko added a commit that referenced this pull request Mar 25, 2026
# Backport

This will backport the following commits from `main` to `9.2`:
- [move kbn-client into its own package
(#258963)](#258963)

<!--- Backport version: 11.0.1 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Dzmitry
Lemechko","email":"dzmitry.lemechko@elastic.co"},"sourceCommit":{"committedDate":"2026-03-23T11:02:23Z","message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.4.0"],"title":"move
kbn-client into its own
package","number":258963,"url":"https://github.com/elastic/kibana/pull/258963","mergeCommit":{"message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/258963","number":258963,"mergeCommit":{"message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852"}},{"url":"https://github.com/elastic/kibana/pull/259147","number":259147,"branch":"9.3","state":"OPEN"}]}]
BACKPORT-->

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
jeramysoucy pushed a commit to jeramysoucy/kibana that referenced this pull request Mar 26, 2026
## Summary

Extracts the Kibana tooling HTTP client (`KbnClient` and related
helpers) from `@kbn/test` into a dedicated `@kbn/kbn-client` package.
`@kbn/test` continues to re-export the same symbols so existing `import
{ … } from '@kbn/test'` call sites keep working.

### Why

- Smaller, clearer dependency graph for tools that only need a Kibana
HTTP client (e.g. `Scout`, `Cypress` helpers, `evals`) without pulling
in the full FTR/Jest/Mocha surface of `@kbn/test`.
- Single public entry for client APIs instead of deep imports like
`@kbn/test/src/kbn_client/...`, which aligns with package boundaries and
makes types like UiSettingValues and ReqOptions part of a stable export
surface.
- Easier next steps to peel off other focused pieces (e.g. SAML session
management) on top of `@kbn/kbn-client` instead of growing `@kbn/test`
further.

### Notes
- New package is `devOnly` like @kbn/test.
- Jest/unit tests for the client live under `@kbn/kbn-client`.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
@kibanamachine
Copy link
Copy Markdown
Contributor

Looks like this PR has backport PRs but they still haven't been merged. Please merge them ASAP to keep the branches relatively in sync.
cc: @dmlemeshko

dmlemeshko added a commit that referenced this pull request Mar 27, 2026
# Backport

This will backport the following commits from `main` to `9.3`:
- [move kbn-client into its own package
(#258963)](#258963)

<!--- Backport version: 11.0.1 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Dzmitry
Lemechko","email":"dzmitry.lemechko@elastic.co"},"sourceCommit":{"committedDate":"2026-03-23T11:02:23Z","message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.4.0"],"title":"move
kbn-client into its own
package","number":258963,"url":"https://github.com/elastic/kibana/pull/258963","mergeCommit":{"message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/258963","number":258963,"mergeCommit":{"message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852"}},{"url":"https://github.com/elastic/kibana/pull/259146","number":259146,"branch":"9.3","state":"OPEN"}]}]
BACKPORT-->
dmlemeshko added a commit that referenced this pull request Mar 27, 2026
# Backport

This will backport the following commits from `main` to `8.19`:
- [move kbn-client into its own package
(#258963)](#258963)

<!--- Backport version: 11.0.1 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Dzmitry
Lemechko","email":"dzmitry.lemechko@elastic.co"},"sourceCommit":{"committedDate":"2026-03-23T11:02:23Z","message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.4.0"],"title":"move
kbn-client into its own
package","number":258963,"url":"https://github.com/elastic/kibana/pull/258963","mergeCommit":{"message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/258963","number":258963,"mergeCommit":{"message":"move
kbn-client into its own package (#258963)\n\n## Summary\n\nExtracts the
Kibana tooling HTTP client (`KbnClient` and related\nhelpers) from
`@kbn/test` into a dedicated `@kbn/kbn-client` package.\n`@kbn/test`
continues to re-export the same symbols so existing `import\n{ … } from
'@kbn/test'` call sites keep working.\n\n### Why\n\n- Smaller, clearer
dependency graph for tools that only need a Kibana\nHTTP client (e.g.
`Scout`, `Cypress` helpers, `evals`) without pulling\nin the full
FTR/Jest/Mocha surface of `@kbn/test`.\n- Single public entry for client
APIs instead of deep imports like\n`@kbn/test/src/kbn_client/...`, which
aligns with package boundaries and\nmakes types like UiSettingValues and
ReqOptions part of a stable export\nsurface.\n- Easier next steps to
peel off other focused pieces (e.g. SAML session\nmanagement) on top of
`@kbn/kbn-client` instead of growing `@kbn/test`\nfurther.\n\n###
Notes\n- New package is `devOnly` like @kbn/test.\n- Jest/unit tests for
the client live under `@kbn/kbn-client`.\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"c701e38da601a1981589cce98ad76bc03e316852"}},{"url":"https://github.com/elastic/kibana/pull/259147","number":259147,"branch":"9.3","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/259148","number":259148,"branch":"9.2","state":"OPEN"}]}]
BACKPORT-->

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
@kibanamachine kibanamachine added v8.19.14 and removed backport missing Added to PRs automatically when the are determined to be missing a backport. labels Mar 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:all-open Backport to all branches that could still receive a release release_note:skip Skip the PR/issue when compiling release notes v8.19.14 v9.2.8 v9.3.3 v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants