Skip to content

[Cascade] make cascade layout enabled by default#260698

Merged
eokoneyo merged 4 commits into
elastic:mainfrom
eokoneyo:chore/resolve-258550
Apr 7, 2026
Merged

[Cascade] make cascade layout enabled by default#260698
eokoneyo merged 4 commits into
elastic:mainfrom
eokoneyo:chore/resolve-258550

Conversation

@eokoneyo
Copy link
Copy Markdown
Contributor

@eokoneyo eokoneyo commented Apr 1, 2026

Summary

Closes #258550

Sets the cascade layout to true by default, in preparation for tech preview, and in turn sets cascade to disabled for existing test that had used queries that included an ES|QL STATS command which the cascade experience is driven by.

@eokoneyo eokoneyo self-assigned this Apr 1, 2026
@eokoneyo eokoneyo added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// labels Apr 1, 2026
@eokoneyo
Copy link
Copy Markdown
Contributor Author

eokoneyo commented Apr 1, 2026

/ci

@eokoneyo eokoneyo force-pushed the chore/resolve-258550 branch from 68ea4bc to 35123f4 Compare April 1, 2026 17:51
@eokoneyo
Copy link
Copy Markdown
Contributor Author

eokoneyo commented Apr 1, 2026

/ci

@eokoneyo eokoneyo force-pushed the chore/resolve-258550 branch from 35123f4 to bc481f7 Compare April 2, 2026 06:46
@eokoneyo
Copy link
Copy Markdown
Contributor Author

eokoneyo commented Apr 2, 2026

/ci

@elasticmachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #110 / Serverless security API cloud_security_posture GET /internal/cloud_security_posture/benchmark Should return non-empty array filled with Rules if user has CSP integrations

Metrics [docs]

✅ unchanged

History

cc @eokoneyo

@eokoneyo eokoneyo marked this pull request as ready for review April 2, 2026 08:15
@eokoneyo eokoneyo requested review from a team as code owners April 2, 2026 08:15
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/appex-sharedux (Team:SharedUX)

Copy link
Copy Markdown
Contributor

@peteharverson peteharverson left a comment

Choose a reason for hiding this comment

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

Changes to the ML test file LGTM.
Great to see cascade being enabled! 🚀

Comment on lines +20 to +26
kbnTestServer: {
...kbnTestServer,
serverArgs: [
...kbnTestServer.serverArgs,
'--feature_flags.overrides.discover.cascadeLayoutEnabled=false',
],
},
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.

The tests in this config are run against MKI and this override won't be respected by Project deployment probably causing the tests to fail and blocking release pipeline:

  • if feature flag is required by some tests, you need to create FTR feature flag config and move loading them from this config to the feature flag one. The new config won't be run on MKI, but only on Kibana CI
  • as soon as flag is enabled on MKI, you can move the tests back under the default config

Comment on lines +20 to +26
kbnTestServer: {
...kbnTestServer,
serverArgs: [
...kbnTestServer.serverArgs,
'--feature_flags.overrides.discover.cascadeLayoutEnabled=false',
],
},
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.

Same issue here, we can't override default configs under x-pack/platform/test/serverless/functional/configs/

Copy link
Copy Markdown
Contributor

@dmlemeshko dmlemeshko left a comment

Choose a reason for hiding this comment

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

Feature flag should be enabled for serverless tests via dedicated feature flag configs, this way we don't run them on MKI before flag is enabled there

Tests that rely on cascadeLayoutEnabled=false cannot safely run on MKI
because server arg overrides are ignored by Project deployments. Move
the discover/esql test suite out of the regular group configs and into
dedicated config.feature_flags.ts files (one per serverless project:
search, observability, security) so they only execute in Kibana CI.

Removes config.group21.ts for search (it exclusively loaded discover/esql)
and registers the three new feature flag configs in the respective
Buildkite yml files.

Made-with: Cursor
@eokoneyo eokoneyo requested a review from a team as a code owner April 2, 2026 11:06
@eokoneyo
Copy link
Copy Markdown
Contributor Author

eokoneyo commented Apr 6, 2026

@elasticmachine merge upstream

- x-pack/platform/test/serverless/functional/configs/search/config.group18.ts
- x-pack/platform/test/serverless/functional/configs/search/config.group19.ts
- x-pack/platform/test/serverless/functional/configs/search/config.group20.ts
- x-pack/platform/test/serverless/functional/configs/search/config.group21.ts
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.

probably it was removed accidentally?

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.

There was only one test here, so I moved it into the feature flag tests. config.group21.ts was renamed to config.feature_flags.ts

Copy link
Copy Markdown
Contributor

@dmlemeshko dmlemeshko left a comment

Choose a reason for hiding this comment

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

FTR configs update LGTM

Copy link
Copy Markdown
Contributor

@AlexGPlay AlexGPlay left a comment

Choose a reason for hiding this comment

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

discover changes lgtm

@eokoneyo eokoneyo merged commit bfc2446 into elastic:main Apr 7, 2026
18 checks passed
@eokoneyo eokoneyo deleted the chore/resolve-258550 branch April 7, 2026 15:59
mbondyra added a commit to Heenawter/kibana that referenced this pull request Apr 7, 2026
* commit 'bfc2446fdbcba2b3183f4518817c9757198c95ef':
  [Cascade] make cascade layout enabled by default (elastic#260698)
  [Dashboard Agent] Extract safe dashboard attachment integration refactors (elastic#261422)
  [One Workflow] Replace workflows:aiAgent:enabled with agentBuilder:experimentalFeatures (elastic#261330)
  [EDR Workflows] Osquery: hide query code from dropdown and show Elastic for automated Run By (elastic#261394)
  [Observability Onboarding] Add data detection & loading indicators to onboarding flows  (elastic#257870)
  [Significant events] Format event count with locale-aware number separators (elastic#261570)
  [Fleet] Fix deprecated filter in browse integrations (elastic#261459)
  [Lens as code] Split `xyStateSchema` config (elastic#261089)
  [Data Views as Code] Use `ref_id` and add metadata in data views schemas (elastic#261181)

Made-with: Cursor

# Conflicts:
#	x-pack/platform/packages/shared/dashboard-agent/dashboard-agent-common/types.ts
@davismcphee davismcphee added release_note:feature Makes this part of the condensed release notes and removed release_note:skip Skip the PR/issue when compiling release notes labels Apr 24, 2026
florent-leborgne added a commit to elastic/docs-content that referenced this pull request May 5, 2026
…S|QL (#6190)

## ⛔ Hold for release

**Do not merge before all of the following ship:**

- [ ] Stack 9.4.0 GA released.
- [ ] Cascade layout LaunchDarkly flag flipped on for production
Serverless (target: week of 2026-05-05).

Until those gates are met, the cascade layout is invisible on production
Serverless and ECH, even though the supporting Kibana code has shipped.

## Summary

Documents the ES|QL `CATEGORIZE` UX enhancements that ship in Kibana 9.4
and Serverless preview:

- New "View grouped results from a STATS query" section in
`explore-analyze/discover/try-esql.md` covering:
- The cascade (grouped) layout for ES|QL `STATS BY` queries with a
single grouping field.
  - The `BUCKET`/`TBUCKET` and multi-field exclusion.
- The **Group by** selector (with technical preview badge), the results
count, and the opt-out path.
  - `CATEGORIZE` pattern token rendering, with a single-query example.
- Grouped row actions (Copy to clipboard, Filter in, Filter out, Open in
new tab).
- Reciprocal tip on the existing classic-mode pattern analysis page
(`explore-analyze/discover/run-pattern-analysis-discover.md`) pointing
to the new ES|QL section.

Closes #5733.
Supersedes #5457 (carries over the BUCKET/TBUCKET caveat as a
single-paragraph clarification).

### SPARKLINE deferral

`SPARKLINE` was originally part of this PR but has been deferred from
9.4 to 9.5. The combined `CATEGORIZE` + `SPARKLINE` example, the
`SAMPLE` scaling tip, and the sparkline screenshot are commented out in
the markdown source inside a clearly-marked `RESTORE FOR 9.5` block. The
reciprocal tip on the pattern analysis page no longer mentions
sparklines. Restore work is tracked in #6215.

## Verification

All scenarios still in scope verified on a local 9.4 snapshot Kibana +
Elasticsearch build with a Trial license:

1. Single-field `STATS BY` triggers the grouped layout with the **Group
by** selector and "N groups" results count.
2. Multi-field `STATS BY` falls back to the flat table.
3. `BUCKET`/`TBUCKET` grouping queries fall back to the flat table.
4. **Group by** → **none** opt-out switches back to flat and restores
the regular toolbar.
5. Grouped row actions (Copy / Filter in / Filter out / Open in new tab)
all behave as documented.
6. `CATEGORIZE` renders patterns with token highlighting.

(`CATEGORIZE` + `SPARKLINE` was also verified on the local snapshot
build before the SPARKLINE content was deferred.)

## Source verification

Cross-checked against `elastic/kibana` `main` and the `9.4` branch:

- Cascade gating (`isCascadedDocumentsVisible`,
`SUPPORTED_CASCADE_GROUPING_COUNT = 1`) in
`cascaded_documents_provider.tsx`.
- Feature flag fallback `true` in `build_services.ts`, set by
[`elastic/kibana#260698`](elastic/kibana#260698)
and present on the 9.4 branch.
- Supported grouping functions list:
`SUPPORTED_STATS_COMMAND_OPTION_FUNCTIONS = ['categorize']` in
`kbn-esql-utils/src/utils/cascaded_documents_helpers/utils.ts` (this is
why BUCKET/TBUCKET don't trigger the cascade).
- Row actions and i18n labels in `use_row_header_components.tsx` and
`use_table_header_components.tsx`.

## Screenshots

One screenshot placeholder is inline in the diff as a commented-out
image directive:

1. Overview of the grouped layout (toolbar with the **Group by** button
replacing the standard toolbar, "N groups" results count, one expanded
row showing underlying documents).

The previously-planned `CATEGORIZE` + `SPARKLINE` row screenshot is
commented out alongside the SPARKLINE content; it will be restored as
part of #6215.

## Note on supersession

This PR replaces #6086 (which couldn't be reopened because the branch
HEAD has moved past the closed-state ref). The same branch
(`docs-issue-5733-categorize-ux`) is reused. #6086 is left closed for
history.

## Generative AI disclosure

- [x] Yes - drafted with Claude Opus 4.7 in Cursor.

---------

Co-authored-by: Benjamin Ironside Goldstein <91905639+benironside@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting release_note:feature Makes this part of the condensed release notes Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configure cascade in discover feature flag to true by default

8 participants