Skip to content

CPS tech preview#5498

Open
shainaraskas wants to merge 62 commits intomainfrom
cps-tech-preview
Open

CPS tech preview#5498
shainaraskas wants to merge 62 commits intomainfrom
cps-tech-preview

Conversation

@shainaraskas
Copy link
Copy Markdown
Collaborator

@shainaraskas shainaraskas commented Mar 13, 2026

This PR contains most of the content changes for the tech preview scope of CPS

Contents

Config

Page Scope Notes
Configure cross-project search the CPS model, project compatibility, recommended CPS architectures, feature impacts and limitations, links Earlier reviews in #5245 (for reference only; review here)
Link and manage projects for cross-project search procedures to link and unlink projects Earlier reviews in #5245
Manage access and scope for cross-project search Access/permissions to data in the CPS model - reliance on cloud-level roles and permissions

Mechanism that impact CPS scope: user permissions, space settings, project routing, qualified search expressions

setting cps scope on spaces

CPS scope logic in kibana
Earlier reviews in #5245

Usage

Core usage

Page Scope Notes
Cross-project search Explanation of default behavior, origin/linked projects, security/access evaluation, supported APIs, limitations, examples Edits only - see live docs

Kibana usage + feature impacts

Page Scope Notes
Managing cross-project search scope in your project apps How your query scope is determined in kibana, mechanisms for adjusting CPS scope, CPS availability by app
Create a dashboard New Store CPS scope with dashboard option
Exploring dashboards Viewing clusters/shards queried to fetch data includes CPS info

How CPS scope is determined for dashboards and how to identify/adjust scope
Data views The default CPS scope used for data views, and how to restrict/override the active scope
Use ES|QL in the Kibana UI How to override the CPS scope in an ES|QL query (in the context of the in-Kibana editor)
ES|QL visualizations Impact of CPS scope on this visualization type, overriding at the query level
Maps Impact of CPS scope on map layers, query overrides for ES|QL layers

Rule and alert docs

Page Scope Notes
Set up [alerting] applies_to tags for CCS-related content (does not apply to serverless)
Create and manage alerting rules with Kibana Impact of CPS scope on rules (space-level scope only, overrides for ES|QL rule only)
Observability: Create and manage rules for Elastic Observability same content as Create and manage alerting rules with Kibana
Security: Cross-project search and detection rules same content as Create and manage alerting rules with Kibana
Security: Advanced data source configuration Introduces CPS as an advanced data source configuration for detection rules

Not included in this PR

Pending

@shainaraskas shainaraskas changed the title Cps tech preview CPS tech preview Mar 13, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 13, 2026

Vale Linting Results

Summary: 3 warnings, 3 suggestions found

⚠️ Warnings (3)
File Line Rule Message
explore-analyze/query-filter/languages/esql-kibana.md 273 Elastic.Spelling 'autocompletes' is a possible misspelling.
explore-analyze/visualize/maps.md 74 Elastic.DontUse Don't use 'just'.
reference/glossary/index.md 169 Elastic.DontUse Don't use 'just'.
💡 Suggestions (3)
File Line Rule Message
explore-analyze/cross-project-search.md 149 Elastic.WordChoice Consider using 'run, start' instead of 'execute', unless the term is in the UI.
explore-analyze/cross-project-search.md 157 Elastic.WordChoice Consider using 'run, start' instead of 'execute', unless the term is in the UI.
explore-analyze/cross-project-search/cross-project-search-manage-scope.md 78 Elastic.Semicolons Use semicolons judiciously.

The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 13, 2026

🔍 Preview links for changed docs

More links …

## Summary

Adds a "Use data sources with CPS" section to the data views page
(`data-views.md`), explaining how data views interact with cross-project
search:

- When CPS is active, the data view creation form previews matching
indices from linked projects based on the current CPS scope.
- The data view itself does not store the CPS scope — at query time, the
active scope determines which linked projects are searched.
- Users can restrict scope using qualified expressions in the index
pattern (e.g. `project_alpha:logs-*`, `_origin:logs-*`), or project
routing in queries.

Positioned after the existing CCS section as the serverless equivalent.

Closes elastic/docs-content-internal#687

## Test plan

- [x] Verify the page builds correctly at
`explore-analyze/find-and-organize/data-views`
- [x] Confirm `applies_to` tags render properly (serverless preview /
stack unavailable)
- [ ] Check cross-links to CPS pages resolve correctly

## Generative AI disclosure

1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes
- [ ] No

2. If you answered "Yes" to the previous question, please specify the
tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Claude (Cursor)
## Summary

Adds a dedicated "Managing CPS scope in your project apps" overview page
(`cross-project-search-manage-scope.md`) under
`explore-analyze/cross-project-search/`:

- **Scope hierarchy**: introduces the three levels of CPS scope control
(space default, session scope, query-level override) upfront.
- **Scope selector**: describes the CPS scope selector in the header,
its options (This project, All projects), and session persistence
behavior.
- **Query-level overrides**: documents how to override the scope using
`SET project_routing` or qualified index expressions in ES|QL `FROM`
commands, with a concrete ES|QL example.
- **Availability matrix**: table showing which apps support the CPS
scope selector and query-level overrides, covering 10 apps (Discover,
Dashboards, Lens, Maps, Vega, Rules, Dev Tools, ML Data Visualizer,
Streams, Agent Builder).
- **Related pages**: links to CPS overview, project routing, search
behavior, admin configuration, ES|QL in Kibana, and the ES|QL CPS
reference (cross-link to elasticsearch repo).

Closes elastic/docs-content-internal#850
Closes elastic/docs-content-internal#852
Closes elastic/docs-content-internal#853

## Known issues (preview)

- **ES|QL editor underlines qualified index names as "unknown index"**:
When using qualified expressions like
`project_alias:kibana_sample_data_ecommerce` in an ES|QL `FROM` command,
the editor flags the index as unknown (red underline), but the query
executes successfully and returns correct results. This appears to be a
client-side validation gap in the ES|QL editor that doesn't yet account
for CPS qualified expressions. Likely to be fixed before GA.
- **`_origin:` qualified expression not working**: Using `FROM
_origin:index_name` to target only the origin project does not work in
the current preview, despite being documented in the ES|QL CPS
reference. This may be a not-yet-implemented feature.

## Test plan

- [x] Verify the page builds correctly
- [x] Verify scope selector behavior (session persistence, space default
as fallback) against Kibana source
- [x] Verify Rules row (read-only scope) against Kibana source
- [x] Verify qualified expressions work in ES|QL FROM (tested with real
linked project)
- [x] Verify SET project_routing works in ES|QL (tested with real linked
project)
- [x] Cross-links validated (all resolve to existing pages/anchors on
feature branches)
- [x] Content type check: passes overview guidelines (type field,
required elements, best practices)

## Generative AI disclosure

1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes
- [ ] No

2. If you answered "Yes" to the previous question, please specify the
tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Claude (Cursor)

---------

Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com>
## Summary

Updates the shared Inspector snippet (`_snippets/inspect-request.md`) to
mention CPS alongside CCS in the "Clusters and shards" tab description.
When either feature is active, this tab shows the remote clusters or
linked projects that were searched.

Also fixes an inaccuracy: the tab *is* available for ES|QL queries
(confirmed via manual testing with CPS), so the limitation note now only
mentions Vega visualizations.

Since this is a shared snippet, the change automatically applies to both
the Discover and Dashboards documentation pages.

Closes elastic/docs-content-internal#686

## Test plan

- [x] Verify the snippet renders correctly in both
`explore-analyze/dashboards/using` and
`explore-analyze/discover/discover-get-started`
- [x] Confirm "Clusters and shards" tab works with ES|QL queries when
CPS is active
- [x] Check cross-links to CCS and CPS pages resolve correctly

## Generative AI disclosure

1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes
- [ ] No

2. If you answered "Yes" to the previous question, please specify the
tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Claude (Cursor)

Made with [Cursor](https://cursor.com)
…zations (#5424)

## Summary

Adds CPS project routing documentation to the ES|QL pages:

**ES|QL in Kibana** (`esql-kibana.md`):
- New "Search across linked projects with SET project_routing" section
- Documents the `SET project_routing` syntax, autocomplete values
(`_alias:_origin`, `_alias:*`), tag-based expressions, and named project
routing expressions
- Notes the Custom CPS scope badge behavior on dashboard panels

**ES|QL visualizations** (`esorql.md`):
- New "Query data from multiple projects" subsection under "Create from
dashboard"
- Explains that `SET project_routing` in an ES|QL visualization triggers
a Custom CPS scope badge on the dashboard panel

Closes elastic/docs-content-internal#685

## Test plan

- [ ] Verify pages build correctly at
`explore-analyze/query-filter/languages/esql-kibana` and
`explore-analyze/visualize/esorql`
- [ ] Confirm `applies_to` tags render properly (serverless preview /
stack unavailable)
- [ ] Check cross-links to CPS pages resolve correctly (depend on
sibling CPS branches)
- [ ] Test `SET project_routing` autocomplete in ES|QL editor with CPS
enabled

## Generative AI disclosure

1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes
- [ ] No

2. If you answered "Yes" to the previous question, please specify the
tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Claude (Cursor)

Made with [Cursor](https://cursor.com)
## Summary

Adds CPS documentation to the dashboard pages, split by audience:

**For dashboard viewers** (`using.md`):
- New "View data from multiple projects" subsection under "Search and
filter your dashboard data"
- Explains how the CPS scope selector controls which projects the
dashboard queries
- Documents the "Custom CPS scope" badge on panels that use project
routing

**For dashboard creators** (`create-dashboard.md`):
- Adds **Store CPS scope with dashboard** to the settings list (step 5)
and save options (step 6)
- Restructures the save step with a comprehensive list of all save
options
- Updated screenshot of the save dialog

Closes elastic/docs-content-internal#690
Closes elastic/docs-content-internal#691

## Test plan

- [x] Verify pages build correctly at `explore-analyze/dashboards/using`
and `explore-analyze/dashboards/create-dashboard`
- [x] Confirm `applies_to` tags render properly (serverless preview /
stack unavailable)
- [x] Check cross-links to CPS pages resolve correctly (depend on
sibling CPS branches)
- [x] Verify "Store CPS scope with dashboard" label matches Kibana UI
(confirmed, fix in elastic/kibana#259142)

## Generative AI disclosure

1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes
- [ ] No

2. If you answered "Yes" to the previous question, please specify the
tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Claude (Cursor)

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Nastasha Solomon <nastasha.solomon@elastic.co>
Co-authored-by: Nastasha Solomon <79124755+nastasha-solomon@users.noreply.github.com>
Add missing .md extension to elasticsearch:// cross-links
pointing to the SET command reference page.

Made-with: Cursor
Replace references to the old cross-project-search-link-projects.md
path with the new deploy-manage/ location.

Made-with: Cursor
## Summary

Adds a new "Search across linked projects" section to the Maps page
(`maps.md`), explaining that:

- Maps supports CPS with an editable project picker scope
- Vector layers and joins pull data from linked projects based on the
current CPS scope
- Map panels in dashboards display a "Custom CPS scope" badge when
layers use specific project routing

Closes elastic/docs-content-internal#851

## Test plan

- [ ] Verify the page builds correctly at
`explore-analyze/visualize/maps`
- [ ] Confirm `applies_to` tags render properly (serverless preview /
stack unavailable)
- [ ] Check cross-links to CPS and dashboard pages resolve correctly

## Generative AI disclosure

1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes
- [ ] No

2. If you answered "Yes" to the previous question, please specify the
tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Claude (Cursor)

Made with [Cursor](https://cursor.com)
@shainaraskas shainaraskas marked this pull request as ready for review April 8, 2026 14:12
@shainaraskas shainaraskas requested review from a team as code owners April 8, 2026 14:12
Copy link
Copy Markdown
Contributor

@szabosteve szabosteve left a comment

Choose a reason for hiding this comment

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

LGTM! 🚢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants