Skip to content

Commit f875e53

Browse files
authored
Merge branch 'main' into changes-history/mvp-ui
2 parents 5854035 + 9b97e78 commit f875e53

612 files changed

Lines changed: 19029 additions & 14815 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.buildkite/ftr-manifests/ftr_platform_stateful_configs.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ enabled:
123123
- src/platform/test/functional/apps/management/group2/config.ts
124124
- src/platform/test/functional/apps/management/group3/config.ts
125125
- src/platform/test/functional/apps/management/group4/config.ts
126-
- src/platform/test/functional/apps/saved_objects_management/config.ts
127126
- src/platform/test/functional/apps/status_page/config.ts
128127
- src/platform/test/functional/apps/visualize/group1/config.ts
129128
- src/platform/test/functional/apps/visualize/group2/config.ts
@@ -319,7 +318,6 @@ enabled:
319318
- x-pack/platform/test/functional/apps/remote_clusters/config.ts
320319
- x-pack/platform/test/functional/apps/reporting_management/config.ts
321320
- x-pack/platform/test/functional/apps/rollup_job/config.ts
322-
- x-pack/platform/test/functional/apps/saved_objects_management/config.ts
323321
- x-pack/platform/test/functional/apps/security/config.ts
324322
- x-pack/platform/test/functional/apps/snapshot_restore/config.ts
325323
- x-pack/platform/test/functional/apps/spaces/config.ts

.buildkite/scout_ci_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ plugins:
4040
- logstash
4141
- maps
4242
- ml
43+
- monitoring
4344
- navigation
4445
- observability
4546
- observability_onboarding

.github/CODEOWNERS

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2289,9 +2289,7 @@ x-pack/platform/plugins/shared/ml/server/models/data_recognizer/modules/security
22892289
# Core
22902290
/src/platform/test/api_integration/fixtures/kbn_archiver/management/saved_objects/relationships.json @elastic/kibana-core @elastic/kibana-data-discovery
22912291
/src/platform/test/functional/fixtures/kbn_archiver/saved_search.json @elastic/kibana-core # Assigned per only use: https://github.com/elastic/kibana/blob/main/test/interpreter_functional/test_suites/run_pipeline/esaggs.ts#L100
2292-
/src/platform/test/functional/fixtures/kbn_archiver/saved_objects_management/show_relationships.json @elastic/kibana-core # Assigned per only use: https://github.com/elastic/kibana/blob/main/test/functional/apps/saved_objects_management/show_relationships.ts#L20
22932292
/src/platform/test/functional/fixtures/kbn_archiver/saved_objects_management/hidden_from_http_apis.json @elastic/kibana-core
2294-
/src/platform/test/functional/fixtures/kbn_archiver/saved_objects_management/edit_saved_object.json @elastic/kibana-core # Assigned per only use: https://github.com/elastic/kibana/blob/main/test/functional/apps/saved_objects_management/inspect_saved_objects.ts#L40
22952293
/src/platform/test/functional/fixtures/es_archiver/saved_objects_management @elastic/kibana-core
22962294
/src/platform/test/api_integration/fixtures/es_archiver/saved_objects @elastic/kibana-core
22972295
/src/platform/test/api_integration/fixtures/kbn_archiver/saved_objects @elastic/kibana-core
@@ -2362,7 +2360,6 @@ x-pack/platform/test/plugin_api_integration/test_suites/platform/ @elastic/kiban
23622360
/src/platform/test/api_integration/apis/stats @elastic/kibana-core # Assigned per: https://github.com/elastic/kibana/pull/20577
23632361
/src/platform/test/api_integration/apis/saved_objects* @elastic/kibana-core
23642362
/src/platform/test/api_integration/apis/core/*.ts @elastic/kibana-core
2365-
/x-pack/platform/test/functional/apps/saved_objects_management @elastic/kibana-core
23662363
/x-pack/platform/test/usage_collection @elastic/kibana-core
23672364
/x-pack/platform/test/licensing_plugin @elastic/kibana-core
23682365
/x-pack/platform/test/functional_execution_context @elastic/kibana-core
@@ -2711,7 +2708,6 @@ x-pack/platform/test/functional/page_objects/search_profiler_page.ts @elastic/se
27112708
/src/platform/test/functional/page_objects/embedded_console.ts @elastic/kibana-management
27122709
/src/platform/test/functional/page_objects/console_page.ts @elastic/kibana-management
27132710
/src/platform/test/functional/firefox/console.config.ts @elastic/kibana-management
2714-
/src/platform/test/functional/apps/saved_objects_management @elastic/kibana-management
27152711
/src/platform/test/functional/apps/console/*.ts @elastic/kibana-management
27162712
/src/platform/test/api_integration/apis/console/*.ts @elastic/kibana-management
27172713
/src/platform/test/accessibility/apps/management.ts @elastic/kibana-management
@@ -3181,6 +3177,7 @@ x-pack/platform/plugins/shared/actions/server/lib/token_tracking @elastic/securi
31813177
/x-pack/solutions/security/plugins/security_solution/server/lib/detection_engine/routes/index @elastic/security-detection-engine
31823178
/x-pack/solutions/security/plugins/security_solution/server/lib/detection_engine/routes/signals @elastic/security-detection-engine
31833179
/x-pack/solutions/security/plugins/security_solution/server/lib/detection_engine/routes/unified_alerts @elastic/security-detection-engine @elastic/security-threat-hunting
3180+
/x-pack/solutions/security/plugins/security_solution/server/lib/detection_engine/routes/attacks @elastic/security-detection-engine @elastic/security-threat-hunting
31843181

31853182
/x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine @elastic/security-detection-engine
31863183

.github/workflows/failed-test-investigator.md

Lines changed: 22 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -87,20 +87,9 @@ Investigate a failed-test issue, classify the failure, and propose a fix when ap
8787
- **`issues` trigger**: use the triggering issue (non-PR, labeled `failed-test`).
8888
- **`workflow_dispatch`**: use issue `${{ github.event.inputs.issue_number }}`. Fetch it explicitly before analysis, and post the final comment there.
8989

90-
## Where did the test run?
91-
92-
The test's **target** (e.g. `local-stateful-classic`, `cloud-serverless-security_complete`) tells you where it ran:
93-
94-
- **`cloud-*`** — ran against a real Elastic Cloud project (serverless) or deployment (stateful). Pipeline names: `appex-qa-{serverless|stateful}-kibana-{ftr|scout}-tests`.
95-
- **`local-*`** — ran on the agent's local machine. `kibana-on-merge` and `kibana-pull-request` are local (no Elastic Cloud API calls), so the environment is more stable and less prone to network/env flakiness.
96-
9790
## Investigate
9891

99-
1. Read the issue title, body, labels, and all comments.
100-
2. Parse test metadata if present: location (test file path), config path, code owners, target.
101-
3. Look at all the failures reported in the issue. The very same test could have been failing with different error messages, for different reasons, on different pipelines, and on different branches.
102-
4. Inspect the relevant test file and nearby helpers/fixtures. For Scout, start from the reported location; otherwise infer from the title.
103-
5. Check recent git history and blame on the test file and related product code.
92+
Investigate the test failure(s) using the `flaky-test-investigator` skill.
10493

10594
Every conclusion must cite specific evidence. Do not guess.
10695

@@ -150,53 +139,32 @@ No other side-effects beyond posting the comment and updating the label.
150139

151140
## Comment format
152141

153-
Post exactly one comment with two main parts:
154-
155-
- **Visible section**: a very concise summary that would inform a developer with a quick glance. Highlight main findings. Keep it high-signal and to the point.
156-
- **Collapsed `<details>` section**: full long-form context for the downstream auto-fix agent (and any human who wants to audit the call).
157-
158-
The visible section is a _distillation_ of the collapsed one. Do not repeat content verbatim across both: the visible bullets summarize, the collapsed block holds the full evidence the summary was derived from.
159-
160-
### Visible (top), in this order:
161-
162-
1. **One-line bold headline** stating the result kind and one identifying detail. Consistent with `classification` but not templated. Example: `**Likely test-design fix** — missing waitForAlertsToPopulate() in building_block_alerts.spec.ts`.
163-
164-
2. **A 3–5 sentence prose paragraph** (no headings, no bullets) covering: what broke and where (name the test file/name), the most likely root cause, and any evidence-backed author attribution with `@username` so they get notified on first read.
165-
166-
3. **One-line action hint**: the proposed fix, recommended action, or missing evidence. Skip if the paragraph already covers it.
167-
168-
4. **Findings bullets** — exactly these four, in this order, with one concrete value each. Downstream tooling parses these directly; preserve keys, casing, and `` - `key`: value `` shape:
169-
170-
- `classification`: `test-design` | `test-environment` | `application` | `external` | `inconclusive`
171-
- `confidence`: `high` | `medium` | `low`
172-
- `test.type`: `scout` (if `scout-playwright` label) | `ftr` | `jest` | `unknown`
173-
- `test.file`: repo-relative path, or `unknown`
174-
175-
5. **Suspected root cause** — 2–4 short bullets, each tied to a specific piece of evidence. Skip the section entirely when `classification` is `external` or `inconclusive` and there is nothing concrete to assert.
176-
177-
6. **Key references** — at most 3 Markdown links: the failing test file, the failing CI run, and the implicated commit (when one exists). Skip any of the three that are not applicable; skip the section entirely when none apply.
178-
179-
### Collapsed (`<details>`):
180-
181-
This section is the full context for agents and humans to dive deep into the findings. Verify all information. Wrap it in a single `<details>` block. The blank lines around `</summary>` and `</details>` are required for the inner markdown to render.
182-
183-
```
184-
<details>
185-
<summary>See full details</summary>
142+
Post exactly one comment. Keep the visible portion very short and easy to read:
186143

187-
#### Full root-cause analysis
144+
1. **One-line bold headline** stating the result kind and one identifying detail.
145+
2. **Diagnosis** (≤5 concise bullet points): what broke and where, the most likely root cause.
146+
3. **Next steps** (≤5 concise bullet points).
188147

189-
The long-form version of the visible "Suspected root cause" bullets. Walk through the evidence chain step by step. Cite the specific log lines, stack frames, blame results, or related PRs that led to the conclusion.
148+
Put the full `flaky-test-investigator` skill output inside a collapsed `<details><summary>Investigation details</summary> ... </details>` block (not in the visible portion). Open the block with a `#### Findings` subsection containing exactly these four bullets in this order — downstream tooling parses them, so preserve keys, casing, and `` - `key`: value `` shape. These bullets must live **inside `<details>`**, never in the visible portion:
190149

191-
#### Evidence used
150+
- `classification`: `test-design` | `test-environment` | `application` | `external` | `inconclusive`
151+
- `confidence`: `high` | `medium` | `low`
152+
- `test.type`: `scout` (if `scout-playwright` label) | `ftr` | `jest` | `unknown`
153+
- `test.file`: repo-relative path, or `unknown`
192154

193-
A complete list of the evidence consulted: issue comments, file paths, commits, CI runs, blame output, related PRs. Each item should be a Markdown link, not a bare path or SHA.
155+
The skill's "Reporting" subsections should also be inside the collapsible section:
194156

195-
#### Suggested patch
157+
- What the test does
158+
- What failed and when
159+
- Where it ran
160+
- Root cause hypothesis
161+
- Evidence
162+
- Failure screenshot
163+
- Recommended next step
164+
- Open questions
196165

197-
Only when justified by the evidence: a small diff-style snippet showing the suggested edit. Include the exact file, function, assertion, wait condition, fixture, selector, API, or behavior to change. Omit this section entirely when no defensible patch can be proposed.
166+
Blank lines around `</summary>` and `</details>` are required for the inner markdown to render.
198167

199-
</details>
200-
```
168+
End the comment with this footer line (verbatim, on its own line after the `</details>` block):
201169

202-
Use `####` headings inside the details block (not `###`) so they nest below the comment's own structure. Any of the three subsections may be omitted when there is nothing meaningful to put in it.
170+
`<sup>AI-generated, share feedback in [#appex-qa](https://elastic.slack.com/archives/C04HT4P1YS3)</sup>`

docs/extend/scout.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Scout is Kibana’s **modern UI and API test framework** built on [Playwright](h
1212
- [Best practices](./scout/best-practices.md) (see also [UI](./scout/ui-best-practices.md) and [API](./scout/api-best-practices.md) test best practices)
1313
- [UI testing](./scout/ui-testing.md)
1414
- [API testing](./scout/api-testing.md)
15+
- [Migrate tests to Scout](./scout/migrate-tests.md)
1516

1617
## Scout benefits [scout-main-features]
1718

@@ -57,7 +58,7 @@ We welcome contributions to one of the Scout packages.
5758
| Is reusable but scoped to a solution | In the solution Scout package (for example `@kbn/scout-security`, `@kbn/scout-oblt`, `@kbn/scout-search`) | Solution workflows and domain-specific helpers |
5859
| Is specific to one plugin or package | In your plugin or package’s `test/scout` directory | Components specific to your plugin or package only |
5960

60-
## Need help?
61+
## Need help? [need-help]
6162

6263
- **Internal (Elasticians)**: reach out to the AppEx QA team in the `#kibana-scout` Slack channel for guidance.
6364

@@ -95,7 +96,7 @@ Existing FTR tests continue to run, and teams can migrate them to Scout incremen
9596

9697
#### Q: Should I migrate every FTR test to Scout? [scout-faq-migrate-ftr-to-scout]
9798

98-
_It, depends_: [pick the right test type](./scout/best-practices.md#pick-the-right-test-type) before migrating a test.
99+
_It depends_: [pick the right test type](./scout/best-practices.md#pick-the-right-test-type) before migrating a test. Refer to our [Migrate tests to Scout](./scout/migrate-tests.md) guide.
99100

100101
#### Q: Does Scout support feature flags? [scout-faq-feature-flags]
101102

docs/extend/scout/deployment-tags.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,21 @@ test.describe(
5151

5252
This test will only run locally (stateful classic and serverless Security complete tier), and will be skipped by Elastic Cloud pipelines.
5353

54+
## Pick the right tags [scout-deployment-tags-pick]
55+
56+
Pick the narrowest scope that's still correct for the feature under test, as every extra deployment target spins up an additional run:
57+
58+
| The test covers… | Use |
59+
| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
60+
| A platform feature that works everywhere | [`tags.deploymentAgnostic`](#scout-deployment-tags-deployment-agnostic) |
61+
| A solution feature | `tags.stateful.<solution>` + `tags.serverless.<solution>` (use `.complete` when the solution has tiers) |
62+
| Behavior specific to one serverless project tier | The explicit tier tag, e.g. `tags.serverless.security.essentials` or `tags.serverless.observability.logs_essentials` |
63+
| Behavior that only exists on stateful | `tags.stateful.<solution>` alone |
64+
65+
::::::{warning}
66+
Don't reach for `tags.deploymentAgnostic` from a solution module. It runs your test across every solution and is expensive — use explicit per-deployment tags instead. See the [`tags.deploymentAgnostic` note](#scout-deployment-tags-deployment-agnostic).
67+
::::::
68+
5469
## Common shortcuts [scout-deployment-tags-shortcuts]
5570

5671
### `tags.deploymentAgnostic` [scout-deployment-tags-deployment-agnostic]

docs/extend/scout/feature-flags.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ Some Kibana features are gated behind feature flags or experimental configuratio
88

99
## When to use runtime versus server-level flags [scout-feature-flags-when-to-use]
1010

11-
| | Runtime flags | Custom server configs |
12-
|---|---|---|
13-
| **API** | `apiServices.core.settings()` | `ScoutServerConfig` config set |
14-
| **Restart required** | No — applied while running | Yes — must be present at boot |
15-
| **Elastic Cloud (QA)** | Supported | Not supported — local only |
16-
| **CI cost** | Low — shares default servers | Higher — dedicated server instance |
17-
| **Toggle per suite** | Yes | No — fixed at server start |
18-
| **When to use** | **Preferred** for most flags | Settings required at boot (e.g., route registration) |
11+
| | Runtime flags | Custom server configs |
12+
| ---------------------- | ----------------------------- | ---------------------------------------------------- |
13+
| **API** | `apiServices.core.settings()` | `ScoutServerConfig` config set |
14+
| **Restart required** | No — applied while running | Yes — must be present at boot |
15+
| **Elastic Cloud (QA)** | Supported | Not supported — local only |
16+
| **CI cost** | Low — shares default servers | Higher — dedicated server instance |
17+
| **Toggle per suite** | Yes | No — fixed at server start |
18+
| **When to use** | **Preferred** for most flags | Settings required at boot (e.g., route registration) |
1919

2020
For custom server configs, reach out to the AppEx QA team before creating one (see [below](#scout-feature-flags-custom-servers)).
2121

@@ -89,7 +89,7 @@ test.describe('Browse integration', { tag: tags.stateful.classic }, () => {
8989

9090
When using `feature_flags.overrides`, the keys must match the feature flag IDs registered by the owning plugin. Overrides bypass variation and type validation, so ensure the values match what the consuming code expects.
9191

92-
## Custom server configs (reach out to AppEx QA first) [scout-feature-flags-custom-servers]
92+
## Custom server configs [scout-feature-flags-custom-servers]
9393

9494
Some settings — such as those used during the plugin `setup` lifecycle (e.g., HTTP route registration) — cannot be changed at runtime and must be present when Kibana starts. For these cases Scout supports **custom server configuration sets** that manage a local Kibana process.
9595

docs/extend/scout/getting-started.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ Start here to set up Scout in a plugin/package, run tests, and debug failures.
1010
- [Run Scout tests](./run-tests.md)
1111
- [Debug Scout test runs](./debugging.md)
1212
- [Best practices for Scout tests](./best-practices.md)
13+
- [Migrate tests to Scout](./migrate-tests.md)

0 commit comments

Comments
 (0)