Skip to content

Conversation

@szabosteve
Copy link
Contributor

@szabosteve szabosteve commented Jan 23, 2026

THIS IS WIP

Page preview

Summary

Note

This page has the hidden attribute. It won't be indexed by search engines, nor appear in the navigation. It will be >accessible with a direct URL only while it's hidden.

This PR contains the initial structure and draft content for the CPS conceptual documentation.
It covers:

  • prerequisites
  • project linking
  • search in CPS
    • flat-world search
    • qualified and unqualified search expressions
    • search scope and resolution
    • important index options
  • tags
  • list of supported APIs
  • limitations
  • some examples.

The following will be covered in subsequent PRs:

  • security
  • detailed examples
  • cross-links to other pieces

Notes

The content outlined here may be extensive for a single page. We may consider splitting it into smaller subpages in a follow-up change.

TO DO

  • Remove or comment out every instance of TODO
  • Update applies_to tags based on the new guidelines

Generative AI disclosure

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

@github-actions
Copy link
Contributor

github-actions bot commented Jan 23, 2026

Vale Linting Results

Summary: 1 warning, 2 suggestions found

⚠️ Warnings (1)
File Line Rule Message
explore-analyze/cross-project-search.md 91 Elastic.DontUse Don't use 'just'.
💡 Suggestions (2)
File Line Rule Message
explore-analyze/cross-project-search.md 76 Elastic.Wordiness Consider using 'also' instead of 'In addition'.
explore-analyze/cross-project-search.md 93 Elastic.Wordiness Consider using 'all' instead of 'all of '.

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.

@szabosteve szabosteve marked this pull request as ready for review January 23, 2026 15:41
@szabosteve szabosteve requested review from a team as code owners January 23, 2026 15:41
Comment on lines 20 to 49
## Project linking

In {{cps-init}}, projects have one of two roles: origin projects and linked projects.
An **origin project** is a project that you link other projects to.
A **linked project** is a project that is connected to an origin project.
After linking projects, you can run queries from the origin project that also search the linked projects ({{cps}}).
Project linking is not bidirectional. When you search from an origin project, the query runs against its linked projects as well.
However, searches initiated from a linked project do not run against the origin project.

You can link projects by using the Cloud UI.

<!--
TODO: screenshot
-->

1. On the home screen, select the project you want to use as the origin project and click **Manage**.
2. Click **Configure** on the **{{cps-cap}}** tile. Or click **{{cps-cap}}** in the left-hand navigation.
3. Click **Link projects**.
4. Select the project you want to link from the project list.

<!--
TODO: screenshot
-->

5. Click **Review and save**.
6. Review the selected projects. If you are satisfied, click **Save**. You can also view and copy the corresponding API request by clicking **View API request**.

<!--
TODO: screenshot
-->
Copy link
Collaborator

Choose a reason for hiding this comment

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

long term we probably want to move this out

cc: @marciw

Copy link
Contributor Author

Choose a reason for hiding this comment

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

For sure!

Copy link

@quux00 quux00 left a comment

Choose a reason for hiding this comment

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

A good starting doc. First round review completed with several suggested changes or considerations. Once the first round is done I'll review again, especially with an eye towards what is missing from this doc and we can discuss where those go.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 26, 2026

🔍 Preview links for changed docs

@szabosteve szabosteve added documentation Improvements or additions to documentation Serverless Improvements and changes to the Serverless Docs wip Team:Developer Issues owned by the Developer Docs Team labels Jan 26, 2026
Copy link

@quux00 quux00 left a comment

Choose a reason for hiding this comment

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

Looking really good. Second round review feedback.

Refer to [the examples section](#cps-examples) for more.

<!--
### System and hidden indices
Copy link

Choose a reason for hiding this comment

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

Do we intend to write up this section soon? I think it will be important. Or maybe it needs to have the security write-up done first to explain why system indices are treated differently from other indices?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@quux00 My plan is to get this PR over the finishline and merge it. After that, I'll work on the "System and hidden indices", the "Security", and the "Examples" section, probably in separate PRs.

Copy link

@quux00 quux00 left a comment

Choose a reason for hiding this comment

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

Third round review feedback.

## Security

A high-level overview
-->
Copy link

Choose a reason for hiding this comment

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

I propose that we also include a short section on not using skip_unavailable. We can put it at the bottom, since many users will not know enough about this to wonder, but experienced ES admins will likely be wondering where they set that value on linked projects. So I think we should discuss why skip_unavailable is not used in serverless and how error handling is instead handled.

Copy link

Choose a reason for hiding this comment

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

Here's a possible first draft of what I'm thinking of - feel to edit extensively:

One of the principles of cross-project search is that all projects should be treated the same in searches. Thus, searches on unqualified index expressions go to all projects by default, but it also means that error handling should be the same. This differs from cross-cluster search (used in ECH and on-prem deployments), where the remote cluster setting skip_unavailable (https://www.elastic.co/docs/explore-analyze/cross-cluster-search#skip-unavailable-clusters) is used to control whether certain types of errors from remote clusters should be ignored or cause the entire search to fail. This setting controls, for example, what to do if a remote cluster is offline when a search is initiated.

In serverless, the skip_unavailable setting is not used and it cannot be set on linked projects. Error handling during searches on the linked projects is controlled by the same settings as it is for origin-only searches:

  • ignore_unavailable and allow_no_indices control error handling for missing resources
  • allow_partial_search_results (in _search) and allow_partial_results in ES|QL control whether to return an error if only partial results can be obtained

For the case where a linked project is temporarily unavailable for a search or any project has shard failures during a search, the "allow partial" settings will control whether to return an error or return partial data. See the _search (add link) and ES|QL documentation (add link) for more detailed discussion of this setting.

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

Labels

documentation Improvements or additions to documentation Serverless Improvements and changes to the Serverless Docs Team:Developer Issues owned by the Developer Docs Team wip

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants