Skip to content

[scout] migrate FTR logstash api tests#262953

Merged
dmlemeshko merged 13 commits intoelastic:mainfrom
dmlemeshko:scout/migrate-logstash-api-tests
Apr 18, 2026
Merged

[scout] migrate FTR logstash api tests#262953
dmlemeshko merged 13 commits intoelastic:mainfrom
dmlemeshko:scout/migrate-logstash-api-tests

Conversation

@dmlemeshko
Copy link
Copy Markdown
Contributor

@dmlemeshko dmlemeshko commented Apr 14, 2026

Summary

Closes https://github.com/elastic/appex-qa-team/issues/851

Logstash API tests migrated from FTR → Scout

Source: x-pack/platform/test/api_integration/apis/logstash/ (5 test files, now deleted)
Target: x-pack/platform/plugins/private/logstash/test/scout/api/

New spec files:

File Covers
cluster.spec.ts GET /api/logstash/cluster
pipeline.spec.ts GET, PUT, DELETE /api/logstash/pipeline/{id}
pipelines_delete.spec.ts POST /api/logstash/pipelines/delete
pipelines_list.spec.ts GET /api/logstash/pipelines (was skipped in FTR — now unskipped)
  • No esArchiver — .logstash is a restricted system index; bulk indexing is blocked even for superuser. Pipelines are seeded via esClient.logstash.putPipeline in beforeAll per spec instead
  • Minimum roles — LOGSTASH_MANAGER_ROLE (manage_logstash_pipelines) for pipeline ops; LOGSTASH_CLUSTER_ROLE (monitor) for the cluster endpoint (FTR used superuser for everything)
  • Stateful only — no serverless Logstash tests exist or were added
  • Coverage improvements — added 404 assertion for non-existing pipeline GET; explicit numSuccesses/numErrors check on bulk delete; sort-order assertion on pipeline list

@dmlemeshko dmlemeshko added backport:all-open Backport to all branches that could still receive a release release_note:skip Skip the PR/issue when compiling release notes labels Apr 14, 2026
@dmlemeshko dmlemeshko marked this pull request as ready for review April 14, 2026 14:46
@dmlemeshko dmlemeshko requested review from a team as code owners April 14, 2026 14:46
@dmlemeshko dmlemeshko changed the title [scout] migrate logstash api tests [scout] migrate FTR logstash api tests Apr 14, 2026
Copy link
Copy Markdown
Contributor

@steliosmavro steliosmavro left a comment

Choose a reason for hiding this comment

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

LGTM overall, left a small nit 🚀

Comment on lines +16 to +38
apiTest.beforeAll(async ({ requestAuth, apiClient }) => {
credentials = await requestAuth.getApiKeyForCustomRole(testData.LOGSTASH_MANAGER_ROLE);

for (const id of [testData.PIPELINE_IDS.BULK_DELETE_1, testData.PIPELINE_IDS.BULK_DELETE_2]) {
await apiClient.put(testData.API_PATHS.PIPELINE(id), {
headers: { ...testData.COMMON_HEADERS, ...credentials.apiKeyHeader },
body: { description: 'pipeline for bulk-delete test', pipeline: '# empty' },
responseType: 'json',
});
}
});

apiTest.afterAll(async ({ apiClient }) => {
// Guard: if beforeAll threw before credentials was assigned, there is nothing to clean up
if (!credentials) return;
for (const id of [testData.PIPELINE_IDS.BULK_DELETE_1, testData.PIPELINE_IDS.BULK_DELETE_2]) {
await apiClient
.delete(testData.API_PATHS.PIPELINE(id), {
headers: { ...testData.COMMON_HEADERS, ...credentials.apiKeyHeader },
})
.catch(() => {});
}
});
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Shouldn't we use apiServices or esClient (when apiServices doesn't have a suitable helper) inside the setup/teardown hooks?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

good point

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done in 423d643

@macroscopeapp
Copy link
Copy Markdown
Contributor

macroscopeapp Bot commented Apr 15, 2026

Catch flakiness early (recommended)

Recommended before merge: run the flaky test runner against this PR to catch flakiness early.

Trigger a run with the Flaky Test Runner UI or post this comment on the PR:

/flaky scoutConfig:x-pack/platform/plugins/private/logstash/test/scout/api/playwright.config.ts:30

Posted via Macroscope — Flaky Test Runner nudge

@dmlemeshko
Copy link
Copy Markdown
Contributor Author

/flaky scoutConfig:x-pack/platform/plugins/private/logstash/test/scout/api/playwright.config.ts:30

@kibanamachine
Copy link
Copy Markdown
Contributor

Flaky Test Runner

✅ Build triggered - kibana-flaky-test-suite-runner#11652

  • x-pack/platform/plugins/private/logstash/test/scout/api/playwright.config.ts x30

@kibanamachine
Copy link
Copy Markdown
Contributor

Flaky Test Runner Stats

🎉 All tests passed! - kibana-flaky-test-suite-runner#11652

[✅] x-pack/platform/plugins/private/logstash/test/scout/api/playwright.config.ts: 30/30 tests passed.

see run history

Copy link
Copy Markdown
Contributor

@mashhurs mashhurs left a comment

Choose a reason for hiding this comment

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

LGTM!
Honestly nor much experience on Kibana dev, especially on scout.
But this change is better than before that doesn't map 1:1 test cases but also improves considering 404 response or cluster role aligns with docs. Thank you alot.

It is not related to this but I figured out that we don't have test cases to validate worker, batch size, queue type, etc... I will follow up on this.

});

for (let i = 1; i <= 21; i++) {
await esClient.logstash.putPipeline({
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: maybe I am a fan of promise that Promise.all and Promise.allSettled look good use case here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I changed it to use existing helper 3d85880


/** Minimum ES privileges required to call GET /api/logstash/cluster (proxies ES info()) */
export const LOGSTASH_CLUSTER_ROLE: ElasticsearchRoleDescriptor = {
cluster: ['monitor'],
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is a great change actually that aligns with the docs! Thank you.

@dmlemeshko
Copy link
Copy Markdown
Contributor Author

/flaky scoutConfig:x-pack/platform/plugins/private/logstash/test/scout/api/playwright.config.ts:30

@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 8.19, 9.2, 9.3, 9.4

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

kibanamachine added a commit to kibanamachine/kibana that referenced this pull request Apr 18, 2026
## Summary

Closes elastic/appex-qa-team#851

Logstash API tests migrated from FTR → Scout

Source: `x-pack/platform/test/api_integration/apis/logstash/` (5 test
files, now deleted)
Target: `x-pack/platform/plugins/private/logstash/test/scout/api/`

New spec files:

File | Covers
-- | --
cluster.spec.ts | GET /api/logstash/cluster
pipeline.spec.ts | GET, PUT, DELETE /api/logstash/pipeline/{id}
pipelines_delete.spec.ts | POST /api/logstash/pipelines/delete
pipelines_list.spec.ts | GET /api/logstash/pipelines (was skipped in FTR
— now unskipped)

- No esArchiver — `.logstash` is a restricted system index; bulk
indexing is blocked even for superuser. Pipelines are seeded via
`esClient.logstash.putPipeline` in `beforeAll` per spec instead
- Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)
for pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the cluster
endpoint (FTR used superuser for everything)
- Stateful only — no serverless Logstash tests exist or were added
- Coverage improvements — added 404 assertion for non-existing pipeline
GET; explicit numSuccesses/numErrors check on bulk delete; sort-order
assertion on pipeline list

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit 4720f96)
kibanamachine added a commit that referenced this pull request Apr 18, 2026
# Backport

This will backport the following commits from `main` to `9.4`:
 - [scout] migrate FTR logstash api tests (#262953) (4720f96)

<!--- Backport version: 9.6.6 -->

### 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-04-18T10:59:59Z","message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400"},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[]}]
BACKPORT-->

Co-authored-by: Dzmitry Lemechko <dzmitry.lemechko@elastic.co>
kapral18 added a commit to kapral18/kibana that referenced this pull request Apr 19, 2026
* main: (114 commits)
  Fix observability_ai_assistant_tool_call EBT error when connector is an inference endpoint (elastic#263334)
  init on install (elastic#263732)
  [One Workflow] fail-fast TaskRecovery for interrupted runs (elastic#261275)
  [Entity Store] Reset state error after successful task run (elastic#263087)
  [api-docs] 2026-04-19 Daily api_docs build (elastic#264280)
  [UII] Fix integration card row height calculation (elastic#264212)
  [scout] migrate FTR logstash api tests (elastic#262953)
  [StorageIndexAdapter] Set auto_expand_replicas to fix yellow health on single-node ES clusters (elastic#263096)
  [api-docs] 2026-04-18 Daily api_docs build (elastic#264260)
  [Scout] Update test config manifests (elastic#264257)
  [Security Solution][Detection Engine] enables AI rule creation feature flag (elastic#264036)
  [dashboards as code] only validate id on PUT route when creating new dashboard (elastic#264161)
  chore(NA): bump version to 9.5.0 (elastic#262165)
  skip failing test suite (elastic#263649)
  skip failing test suite (elastic#264236)
  [Discover] Convert remaining Enzyme tests to RTL (elastic#259676)
  auto-implement: Labels in model endpoints table of the model details flyout look misaligned (elastic#263770)
  [ci] Promote ES docker image after verification (elastic#263890)
  [Observability:Onboarding] Remove suppress global announcements that was breaking ensemble tests (elastic#264169)
  [Cases][AttachmentV2] Migrate persistable state part 2 - ML and AIOps charts (elastic#262597)
  ...
@dmlemeshko dmlemeshko removed the backport:all-open Backport to all branches that could still receive a release label Apr 20, 2026
@kibanamachine kibanamachine added the backport:skip This PR does not require backporting label Apr 20, 2026
@dmlemeshko dmlemeshko added backport:all-open Backport to all branches that could still receive a release and removed backport:skip This PR does not require backporting labels Apr 20, 2026
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 8.19, 9.2, 9.3, 9.4

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

@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 8.19, 9.2, 9.3, 9.4

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

@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
9.4 Backport failed because of merge conflicts

Manual backport

To create the backport manually run:

node scripts/backport --pr 262953

Questions ?

Please refer to the Backport tool documentation

@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
9.4 Backport failed because of merge conflicts

You might need to backport the following PRs to 9.4:
- auto-implement: Labels in model endpoints table of the model details flyout look misaligned (#263770)
- [Osquery] Enables OpenAPI documentation for 5 new Osquery 9.4 API endpoints (#262810)
- [SecuritySolution][Navigation] Enable updates to Security classic nav (#263110)
- [Entity Store v1] Update docs to comply with OpenAPI Specification (OAS) (#262526)
- [Entity Analytics] Fix toggle ignoring V2 store status when V1 experimental flag is disabled (#263918)

Manual backport

To create the backport manually run:

node scripts/backport --pr 262953

Questions ?

Please refer to the Backport tool documentation

@dmlemeshko
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
9.4

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 Apr 20, 2026
## Summary

Closes elastic/appex-qa-team#851

Logstash API tests migrated from FTR → Scout

Source: `x-pack/platform/test/api_integration/apis/logstash/` (5 test
files, now deleted)
Target: `x-pack/platform/plugins/private/logstash/test/scout/api/`

New spec files:

File | Covers
-- | --
cluster.spec.ts | GET /api/logstash/cluster
pipeline.spec.ts | GET, PUT, DELETE /api/logstash/pipeline/{id}
pipelines_delete.spec.ts | POST /api/logstash/pipelines/delete
pipelines_list.spec.ts | GET /api/logstash/pipelines (was skipped in FTR
— now unskipped)

- No esArchiver — `.logstash` is a restricted system index; bulk
indexing is blocked even for superuser. Pipelines are seeded via
`esClient.logstash.putPipeline` in `beforeAll` per spec instead
- Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)
for pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the cluster
endpoint (FTR used superuser for everything)
- Stateful only — no serverless Logstash tests exist or were added
- Coverage improvements — added 404 assertion for non-existing pipeline
GET; explicit numSuccesses/numErrors check on bulk delete; sort-order
assertion on pipeline list

---------

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

# Conflicts:
#	x-pack/platform/plugins/private/logstash/test/scout/api/playwright.config.ts
#	x-pack/platform/plugins/shared/index_management/public/application/store/selectors/index.d.ts
#	x-pack/platform/test/api_integration/apis/logstash/cluster/index.ts
dmlemeshko added a commit to dmlemeshko/kibana that referenced this pull request Apr 20, 2026
## Summary

Closes elastic/appex-qa-team#851

Logstash API tests migrated from FTR → Scout

Source: `x-pack/platform/test/api_integration/apis/logstash/` (5 test
files, now deleted)
Target: `x-pack/platform/plugins/private/logstash/test/scout/api/`

New spec files:

File | Covers
-- | --
cluster.spec.ts | GET /api/logstash/cluster
pipeline.spec.ts | GET, PUT, DELETE /api/logstash/pipeline/{id}
pipelines_delete.spec.ts | POST /api/logstash/pipelines/delete
pipelines_list.spec.ts | GET /api/logstash/pipelines (was skipped in FTR
— now unskipped)

- No esArchiver — `.logstash` is a restricted system index; bulk
indexing is blocked even for superuser. Pipelines are seeded via
`esClient.logstash.putPipeline` in `beforeAll` per spec instead
- Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)
for pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the cluster
endpoint (FTR used superuser for everything)
- Stateful only — no serverless Logstash tests exist or were added
- Coverage improvements — added 404 assertion for non-existing pipeline
GET; explicit numSuccesses/numErrors check on bulk delete; sort-order
assertion on pipeline list

---------

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

# Conflicts:
#	.buildkite/scout_ci_config.yml
#	x-pack/platform/plugins/private/logstash/moon.yml
#	x-pack/platform/plugins/private/logstash/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 Apr 20, 2026
## Summary

Closes elastic/appex-qa-team#851

Logstash API tests migrated from FTR → Scout

Source: `x-pack/platform/test/api_integration/apis/logstash/` (5 test
files, now deleted)
Target: `x-pack/platform/plugins/private/logstash/test/scout/api/`

New spec files:

File | Covers
-- | --
cluster.spec.ts | GET /api/logstash/cluster
pipeline.spec.ts | GET, PUT, DELETE /api/logstash/pipeline/{id}
pipelines_delete.spec.ts | POST /api/logstash/pipelines/delete
pipelines_list.spec.ts | GET /api/logstash/pipelines (was skipped in FTR
— now unskipped)

- No esArchiver — `.logstash` is a restricted system index; bulk
indexing is blocked even for superuser. Pipelines are seeded via
`esClient.logstash.putPipeline` in `beforeAll` per spec instead
- Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)
for pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the cluster
endpoint (FTR used superuser for everything)
- Stateful only — no serverless Logstash tests exist or were added
- Coverage improvements — added 404 assertion for non-existing pipeline
GET; explicit numSuccesses/numErrors check on bulk delete; sort-order
assertion on pipeline list

---------

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

# Conflicts:
#	.buildkite/scout_ci_config.yml
#	x-pack/platform/plugins/private/logstash/moon.yml
#	x-pack/platform/plugins/private/logstash/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 that referenced this pull request Apr 20, 2026
# Backport

This will backport the following commits from `main` to `9.2`:
- [[scout] migrate FTR logstash api tests
(#262953)](#262953)

<!--- 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-04-18T10:59:59Z","message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.5.0"],"title":"[scout]
migrate FTR logstash api
tests","number":262953,"url":"https://github.com/elastic/kibana/pull/262953","mergeCommit":{"message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/262953","number":262953,"mergeCommit":{"message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400"}},{"url":"https://github.com/elastic/kibana/pull/264265","number":264265,"branch":"9.4","state":"MERGED","mergeCommit":{"sha":"d3629c41337d5a523f769a50c995cb9bb8cbd8a2","message":"[9.4]
[scout] migrate FTR logstash api tests (#262953) (#264265)\n\n#
Backport\n\nThis will backport the following commits from `main` to
`9.4`:\n - [scout] migrate FTR logstash api tests (#262953)
(4720f96)\n\n\n\n### Questions ?\nPlease refer to the [Backport
tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n\n\nCo-authored-by:
Dzmitry Lemechko
<dzmitry.lemechko@elastic.co>"}},{"url":"https://github.com/elastic/kibana/pull/264361","number":264361,"branch":"9.3","state":"OPEN"}]}]
BACKPORT-->
dmlemeshko added a commit that referenced this pull request Apr 20, 2026
# Backport

This will backport the following commits from `main` to `9.3`:
- [[scout] migrate FTR logstash api tests
(#262953)](#262953)

<!--- 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-04-18T10:59:59Z","message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.5.0"],"title":"[scout]
migrate FTR logstash api
tests","number":262953,"url":"https://github.com/elastic/kibana/pull/262953","mergeCommit":{"message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/262953","number":262953,"mergeCommit":{"message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400"}},{"url":"https://github.com/elastic/kibana/pull/264265","number":264265,"branch":"9.4","state":"MERGED","mergeCommit":{"sha":"d3629c41337d5a523f769a50c995cb9bb8cbd8a2","message":"[9.4]
[scout] migrate FTR logstash api tests (#262953) (#264265)\n\n#
Backport\n\nThis will backport the following commits from `main` to
`9.4`:\n - [scout] migrate FTR logstash api tests (#262953)
(4720f96)\n\n\n\n### Questions ?\nPlease refer to the [Backport
tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n\n\nCo-authored-by:
Dzmitry Lemechko <dzmitry.lemechko@elastic.co>"}}]}] BACKPORT-->
@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

dmlemeshko added a commit that referenced this pull request Apr 22, 2026
# Backport

This will backport the following commits from `main` to `8.19`:
- [[scout] migrate FTR logstash api tests
(#262953)](#262953)

<!--- 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-04-18T10:59:59Z","message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","v9.5.0","v9.3.4","v9.2.9"],"title":"[scout]
migrate FTR logstash api
tests","number":262953,"url":"https://github.com/elastic/kibana/pull/262953","mergeCommit":{"message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/262953","number":262953,"mergeCommit":{"message":"[scout]
migrate FTR logstash api tests (#262953)\n\n## Summary\n\nCloses
https://github.com/elastic/appex-qa-team/issues/851\n\nLogstash API
tests migrated from FTR → Scout\n\nSource:
`x-pack/platform/test/api_integration/apis/logstash/` (5 test\nfiles,
now deleted)\nTarget:
`x-pack/platform/plugins/private/logstash/test/scout/api/`\n\nNew spec
files:\n\n\nFile | Covers\n-- | --\ncluster.spec.ts | GET
/api/logstash/cluster\npipeline.spec.ts | GET, PUT, DELETE
/api/logstash/pipeline/{id}\npipelines_delete.spec.ts | POST
/api/logstash/pipelines/delete\npipelines_list.spec.ts | GET
/api/logstash/pipelines (was skipped in FTR\n— now unskipped)\n\n- No
esArchiver — `.logstash` is a restricted system index; bulk\nindexing is
blocked even for superuser. Pipelines are seeded
via\n`esClient.logstash.putPipeline` in `beforeAll` per spec instead\n-
Minimum roles — `LOGSTASH_MANAGER_ROLE` (manage_logstash_pipelines)\nfor
pipeline ops; `LOGSTASH_CLUSTER_ROLE` (monitor) for the
cluster\nendpoint (FTR used superuser for everything)\n- Stateful only —
no serverless Logstash tests exist or were added\n- Coverage
improvements — added 404 assertion for non-existing pipeline\nGET;
explicit numSuccesses/numErrors check on bulk delete;
sort-order\nassertion on pipeline list\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"4720f964d72ec70a6a13345dd656949dc0613400"}},{"branch":"9.3","label":"v9.3.4","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/264361","number":264361,"state":"MERGED","mergeCommit":{"sha":"f4630ceb53a9f2b718492394667895d82852f9f1","message":"[9.3]
[scout] migrate FTR logstash api tests (#262953) (#264361)\n\n#
Backport\n\nThis will backport the following commits from `main` to
`9.3`:\n- [[scout] migrate FTR logstash api
tests\n(#262953)](https://github.com/elastic/kibana/pull/262953)\n\n\n\n###
Questions ?\nPlease refer to the [Backport
tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n"}},{"branch":"9.2","label":"v9.2.9","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/264365","number":264365,"state":"MERGED","mergeCommit":{"sha":"c687030e1a03e0485de03e2f001ec1a68d0dc392","message":"[9.2]
[scout] migrate FTR logstash api tests (#262953) (#264365)\n\n#
Backport\n\nThis will backport the following commits from `main` to
`9.2`:\n- [[scout] migrate FTR logstash api
tests\n(#262953)](https://github.com/elastic/kibana/pull/262953)\n\n\n\n###
Questions ?\nPlease refer to the [Backport
tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n"}},{"url":"https://github.com/elastic/kibana/pull/264265","number":264265,"branch":"9.4","state":"MERGED","mergeCommit":{"sha":"d3629c41337d5a523f769a50c995cb9bb8cbd8a2","message":"[9.4]
[scout] migrate FTR logstash api tests (#262953) (#264265)\n\n#
Backport\n\nThis will backport the following commits from `main` to
`9.4`:\n - [scout] migrate FTR logstash api tests (#262953)
(4720f96)\n\n\n\n### Questions ?\nPlease refer to the [Backport
tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n\n\nCo-authored-by:
Dzmitry Lemechko <dzmitry.lemechko@elastic.co>"}}]}] BACKPORT-->
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.15 v9.2.9 v9.3.4 v9.5.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants