Skip to content

[Security Solution] enable CPS picker in read only mode for all Security Solution pages#264816

Merged
PhilippeOberti merged 6 commits into
elastic:mainfrom
PhilippeOberti:enable-cps-security-solution-pages
May 29, 2026
Merged

[Security Solution] enable CPS picker in read only mode for all Security Solution pages#264816
PhilippeOberti merged 6 commits into
elastic:mainfrom
PhilippeOberti:enable-cps-security-solution-pages

Conversation

@PhilippeOberti
Copy link
Copy Markdown
Contributor

@PhilippeOberti PhilippeOberti commented Apr 21, 2026

Summary

This PR enables the CPS picker in read only mode for all Security Solution pages by default.

Screenshot 2026-04-21 at 1 58 29 PM

How to test

Follow the steps here to test locally.

Checklist

  • The PR description includes the appropriate Release Notes section, and the correct release_note:* label is applied per the guidelines
  • Review the backport guidelines and apply applicable backport:* labels.

@PhilippeOberti PhilippeOberti requested a review from a team as a code owner April 21, 2026 18:59
@PhilippeOberti PhilippeOberti added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:Threat Hunting:Investigations Security Solution Threat Hunting Investigations Team v9.5.0 labels Apr 21, 2026
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/security-threat-hunting-investigations (Team:Threat Hunting:Investigations)

Copy link
Copy Markdown
Contributor

@rylnd rylnd left a comment

Choose a reason for hiding this comment

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

LGTM, just had a quick question about how the usage of the client picker relates to these changes.

@PhilippeOberti PhilippeOberti force-pushed the enable-cps-security-solution-pages branch 2 times, most recently from f69b004 to 4a4add2 Compare April 22, 2026 22:28
@elasticmachine
Copy link
Copy Markdown
Contributor

💚 Build Succeeded

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
securitySolution 11.7MB 11.7MB -1.1KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
securitySolution 154.1KB 154.0KB -109.0B

History

@PhilippeOberti PhilippeOberti added ci:project-deploy-security Create a Security Serverless Project ci:project-persist-deployment Persist project deployment indefinitely labels Apr 29, 2026
@PhilippeOberti PhilippeOberti force-pushed the enable-cps-security-solution-pages branch from 4a4add2 to 7ac7e80 Compare April 29, 2026 13:29
Copy link
Copy Markdown
Contributor

@maximpn maximpn left a comment

Choose a reason for hiding this comment

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

The changes LGTM. I've tested them locally and it works as expected.

Copy link
Copy Markdown
Contributor

@michaelolo24 michaelolo24 left a comment

Choose a reason for hiding this comment

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

Thank you 😄

@PhilippeOberti PhilippeOberti force-pushed the enable-cps-security-solution-pages branch from 7ac7e80 to f64331b Compare May 1, 2026 17:29
@PhilippeOberti PhilippeOberti removed ci:project-deploy-security Create a Security Serverless Project ci:project-persist-deployment Persist project deployment indefinitely labels May 1, 2026
Copy link
Copy Markdown
Contributor

@ymao1 ymao1 left a comment

Choose a reason for hiding this comment

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

LGTM

@abhishekbhatia1710
Copy link
Copy Markdown
Contributor

abhishekbhatia1710 commented May 6, 2026

Hey @PhilippeOberti, thanks for this wanted to clarify a workflow.

I have a related open PR (#267895) that enables the picker in EDITABLE mode specifically on Explore pages (Hosts, Users, Network, entity detail views), and DISABLED everywhere else.

Your approach is READ_ONLY across all Security Solution pages, which is broader. These two will conflict in plugin.tsx , whoever lands second overwrites the resolver.

A few questions :

  • Is the intended end state READ_ONLY everywhere with Explore pages being EDITABLE on top? Or should non-Explore pages be DISABLED entirely?
  • If we want both, should we layer them (your baseline + our override for Explore), or should one PR absorb the other?

cc @jaredburgett

@PhilippeOberti
Copy link
Copy Markdown
Contributor Author

Hey @PhilippeOberti, thanks for this wanted to clarify a workflow.

I have a related open PR (#267895) that enables the picker in EDITABLE mode specifically on Explore pages (Hosts, Users, Network, entity detail views), and DISABLED everywhere else.

Your approach is READ_ONLY across all Security Solution pages, which is broader. These two will conflict in plugin.tsx , whoever lands second overwrites the resolver.

A few questions :

  • Is the intended end state READ_ONLY everywhere with Explore pages being EDITABLE on top? Or should non-Explore pages be DISABLED entirely?
  • If we want both, should we layer them (your baseline + our override for Explore), or should one PR absorb the other?

cc @jaredburgett

@abhishekbhatia1710 how recent is your information? Over the last couple of weeks I've attended a few CPS related meetings and it was always mentioned that the goal is to have it READONLY on all Security pages.
The picker was disabled before, and my PR changes that to READONLY.

I have never heard that some pages would be EDITABLE.

If that's what we truly want, then for sure we need to ensure that by default all pages should be READONLY, and only override that to EDITABLE for some pages.

I'll check with product today and will report back (@paulewing)

@abhishekbhatia1710
Copy link
Copy Markdown
Contributor

Hey @PhilippeOberti, thanks for this wanted to clarify a workflow.
I have a related open PR (#267895) that enables the picker in EDITABLE mode specifically on Explore pages (Hosts, Users, Network, entity detail views), and DISABLED everywhere else.
Your approach is READ_ONLY across all Security Solution pages, which is broader. These two will conflict in plugin.tsx , whoever lands second overwrites the resolver.
A few questions :

  • Is the intended end state READ_ONLY everywhere with Explore pages being EDITABLE on top? Or should non-Explore pages be DISABLED entirely?
  • If we want both, should we layer them (your baseline + our override for Explore), or should one PR absorb the other?

cc @jaredburgett

@abhishekbhatia1710 how recent is your information? Over the last couple of weeks I've attended a few CPS related meetings and it was always mentioned that the goal is to have it READONLY on all Security pages. The picker was disabled before, and my PR changes that to READONLY.

I have never heard that some pages would be EDITABLE.

If that's what we truly want, then for sure we need to ensure that by default all pages should be READONLY, and only override that to EDITABLE for some pages.

I'll check with product today and will report back (@paulewing)

Thanks for the context @PhilippeOberti ,I have only recently been introduced to the CPS space and wasn't part of those meetings, so I wasn't aware that READ_ONLY was the consensus for all Security Solution pages. Good to know! Thanks for your clarifying inputs.

@PhilippeOberti PhilippeOberti removed request for a team and abhishekbhatia1710 May 19, 2026 16:02
Copy link
Copy Markdown
Contributor

@kfirpeled kfirpeled left a comment

Choose a reason for hiding this comment

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

@PhilippeOberti not sure if the attached screenshot is up to date.

But when in READ-ONLY, I find the text: You can adjust it for your space, or override it for individual queries inaccurate.

As far as I know, we don't allow in the security solution to override it for individual queries.

Copy link
Copy Markdown
Member

@ashokaditya ashokaditya left a comment

Choose a reason for hiding this comment

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

I tested it out and the readonly popover works as expected. I notice the Revert to space default button doesn't do anything. Is that expected? Should that be disabled as well if it doesn't do anything?

Screenshot 2026-05-26 at 14 53 00

@PhilippeOberti
Copy link
Copy Markdown
Contributor Author

@PhilippeOberti not sure if the attached screenshot is up to date.

But when in READ-ONLY, I find the text: You can adjust it for your space, or override it for individual queries inaccurate.

As far as I know, we don't allow in the security solution to override it for individual queries.

Thanks for the review @kfirpeled. We don't own nor control what's shown in the picker itself. We can just drive its state, so I'm not sure about it's content...
I'm reaching out to platform to get some clarity on their intentions behind this message.

If I had to guess, it was meant for things like ESQL in Discover or Timeline, where a user can indeed override for a specific query.

@PhilippeOberti
Copy link
Copy Markdown
Contributor Author

I tested it out and the readonly popover works as expected. I notice the Revert to space default button doesn't do anything. Is that expected? Should that be disabled as well if it doesn't do anything?

Thanks for the review @ashokaditya . We don't own nor control what's shown in the picker itself. We can just drive its state, so I'm not sure about it's content...
I'm reaching out to platform to get some clarity on their intentions behind the button. It does feel a bit odd indeed...

@kibanamachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #14 / Cloud Security Posture - Group 5 (KSPM + Flyouts) Security Alerts Page - Graph visualization expanded flyout - filter by node
  • [job] [logs] FTR Configs #13 / discover/esql_4 discover esql controls when adding an ES|QL panel with controls in Dashboard and exploring it in Discover should retain the controls and their state

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
securitySolution 12.1MB 12.1MB -983.0B

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
securitySolution 159.7KB 159.6KB -111.0B

History

@PhilippeOberti PhilippeOberti merged commit a02a564 into elastic:main May 29, 2026
31 checks passed
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:skip Skip the PR/issue when compiling release notes Team:Threat Hunting:Investigations Security Solution Threat Hunting Investigations Team v9.5.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants