Skip to content

[Dashboard] Remove mSearch from content management#210709

Merged
nickpeihl merged 9 commits intoelastic:mainfrom
nickpeihl:dashboard-rm-msearch
Mar 3, 2025
Merged

[Dashboard] Remove mSearch from content management#210709
nickpeihl merged 9 commits intoelastic:mainfrom
nickpeihl:dashboard-rm-msearch

Conversation

@nickpeihl
Copy link
Copy Markdown
Contributor

@nickpeihl nickpeihl commented Feb 11, 2025

Summary

Removes the mSearch method from Dashboard content management.

The mSearch content management method was designed to be a temporary implementation of search that allowed searching multiple saved object types (see more [internal]). However, the mSearch implementation in the Dashboard Storage class lacks extensibility as it requires a synchronous toItemResult function. As we start migrating reference handling to the server, we will likely need transforms that return Promises (ex. savedObjectToItem), such as retrieving tag saved objects from the SavedObjectTagging client.

The Dashboard mSearch method was only used by the dashboard_picker and this PR replaces its usage with the search method.

Identify risks

There is a slight risk in serverless environments where a browser may have already loaded the dashboard_picker module but lags behind the server. In this case, the dashboard picker may fail to retrieve a list of dashboards due to it calling the now non-existent mSearch method provided by the server. In this case, the user simply needs to refresh their browser to retrieve the latest UI modules.

@nickpeihl nickpeihl added Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas t// release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting labels Feb 11, 2025
@nickpeihl nickpeihl requested review from a team as code owners February 11, 2025 23:05
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/kibana-presentation (Team:Presentation)

Copy link
Copy Markdown
Contributor

@nreese nreese left a comment

Choose a reason for hiding this comment

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

kibana-presentation changes LGTM
code review and tested in chrome

@elasticmachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #75 / Advanced Settings security feature controls "after all" hook: afterTestSuite.trigger in "security feature controls"

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
presentationUtil 84.1KB 84.1KB -36.0B

History

@nickpeihl nickpeihl merged commit 2a7e38b into elastic:main Mar 3, 2025
10 checks passed
CAWilson94 pushed a commit to CAWilson94/kibana that referenced this pull request Mar 22, 2025
## Summary

Removes the mSearch method from Dashboard content management.

The `mSearch` content management method was designed to be a temporary
implementation of search that allowed searching multiple saved object
types ([see more
[internal]](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit?tab=t.0#heading=h.6sj4n6bjcgp5)).
However, the mSearch implementation in the Dashboard Storage class lacks
extensibility as it requires a synchronous `toItemResult` function. As
we start migrating reference handling to the server, we will likely need
transforms that return Promises (ex. `savedObjectToItem`), such as
[retrieving tag saved objects from the SavedObjectTagging
client](elastic#210619).

The Dashboard `mSearch` method was only used by the dashboard_picker and
this PR replaces its usage with the `search` method.

### Identify risks

There is a slight risk in serverless environments where a browser may
have already loaded the dashboard_picker module but lags behind the
server. In this case, the dashboard picker may fail to retrieve a list
of dashboards due to it calling the now non-existent `mSearch` method
provided by the server. In this case, the user simply needs to refresh
their browser to retrieve the latest UI modules.
@nickpeihl nickpeihl added backport:version Backport to applied version labels v8.19.0 and removed backport:skip This PR does not require backporting labels Apr 8, 2025
@nickpeihl
Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

nickpeihl added a commit to nickpeihl/kibana that referenced this pull request Apr 8, 2025
## Summary

Removes the mSearch method from Dashboard content management.

The `mSearch` content management method was designed to be a temporary
implementation of search that allowed searching multiple saved object
types ([see more
[internal]](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit?tab=t.0#heading=h.6sj4n6bjcgp5)).
However, the mSearch implementation in the Dashboard Storage class lacks
extensibility as it requires a synchronous `toItemResult` function. As
we start migrating reference handling to the server, we will likely need
transforms that return Promises (ex. `savedObjectToItem`), such as
[retrieving tag saved objects from the SavedObjectTagging
client](elastic#210619).

The Dashboard `mSearch` method was only used by the dashboard_picker and
this PR replaces its usage with the `search` method.

### Identify risks

There is a slight risk in serverless environments where a browser may
have already loaded the dashboard_picker module but lags behind the
server. In this case, the dashboard picker may fail to retrieve a list
of dashboards due to it calling the now non-existent `mSearch` method
provided by the server. In this case, the user simply needs to refresh
their browser to retrieve the latest UI modules.

(cherry picked from commit 2a7e38b)
@kibanamachine kibanamachine added the backport missing Added to PRs automatically when the are determined to be missing a backport. label Apr 9, 2025
@kibanamachine
Copy link
Copy Markdown
Contributor

Looks like this PR has a backport PR but it still hasn't been merged. Please merge it ASAP to keep the branches relatively in sync.

nickpeihl added a commit that referenced this pull request Apr 9, 2025
…217561)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Dashboard] Remove mSearch from content management
(#210709)](#210709)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Nick
Peihl","email":"nick.peihl@elastic.co"},"sourceCommit":{"committedDate":"2025-03-03T16:31:09Z","message":"[Dashboard]
Remove mSearch from content management (#210709)\n\n##
Summary\n\nRemoves the mSearch method from Dashboard content
management.\n\nThe `mSearch` content management method was designed to
be a temporary\nimplementation of search that allowed searching multiple
saved object\ntypes ([see
more\n[internal]](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit?tab=t.0#heading=h.6sj4n6bjcgp5)).\nHowever,
the mSearch implementation in the Dashboard Storage class
lacks\nextensibility as it requires a synchronous `toItemResult`
function. As\nwe start migrating reference handling to the server, we
will likely need\ntransforms that return Promises (ex.
`savedObjectToItem`), such as\n[retrieving tag saved objects from the
SavedObjectTagging\nclient](https://github.com/elastic/kibana/issues/210619).\n\nThe
Dashboard `mSearch` method was only used by the dashboard_picker
and\nthis PR replaces its usage with the `search` method.\n\n###
Identify risks\n\nThere is a slight risk in serverless environments
where a browser may\nhave already loaded the dashboard_picker module but
lags behind the\nserver. In this case, the dashboard picker may fail to
retrieve a list\nof dashboards due to it calling the now non-existent
`mSearch` method\nprovided by the server. In this case, the user simply
needs to refresh\ntheir browser to retrieve the latest UI
modules.","sha":"2a7e38b0fc3c33921f5a29f427bc3a6de8809c67","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Presentation","release_note:skip","backport:version","v9.1.0","v8.19.0"],"title":"[Dashboard]
Remove mSearch from content
management","number":210709,"url":"https://github.com/elastic/kibana/pull/210709","mergeCommit":{"message":"[Dashboard]
Remove mSearch from content management (#210709)\n\n##
Summary\n\nRemoves the mSearch method from Dashboard content
management.\n\nThe `mSearch` content management method was designed to
be a temporary\nimplementation of search that allowed searching multiple
saved object\ntypes ([see
more\n[internal]](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit?tab=t.0#heading=h.6sj4n6bjcgp5)).\nHowever,
the mSearch implementation in the Dashboard Storage class
lacks\nextensibility as it requires a synchronous `toItemResult`
function. As\nwe start migrating reference handling to the server, we
will likely need\ntransforms that return Promises (ex.
`savedObjectToItem`), such as\n[retrieving tag saved objects from the
SavedObjectTagging\nclient](https://github.com/elastic/kibana/issues/210619).\n\nThe
Dashboard `mSearch` method was only used by the dashboard_picker
and\nthis PR replaces its usage with the `search` method.\n\n###
Identify risks\n\nThere is a slight risk in serverless environments
where a browser may\nhave already loaded the dashboard_picker module but
lags behind the\nserver. In this case, the dashboard picker may fail to
retrieve a list\nof dashboards due to it calling the now non-existent
`mSearch` method\nprovided by the server. In this case, the user simply
needs to refresh\ntheir browser to retrieve the latest UI
modules.","sha":"2a7e38b0fc3c33921f5a29f427bc3a6de8809c67"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210709","number":210709,"mergeCommit":{"message":"[Dashboard]
Remove mSearch from content management (#210709)\n\n##
Summary\n\nRemoves the mSearch method from Dashboard content
management.\n\nThe `mSearch` content management method was designed to
be a temporary\nimplementation of search that allowed searching multiple
saved object\ntypes ([see
more\n[internal]](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit?tab=t.0#heading=h.6sj4n6bjcgp5)).\nHowever,
the mSearch implementation in the Dashboard Storage class
lacks\nextensibility as it requires a synchronous `toItemResult`
function. As\nwe start migrating reference handling to the server, we
will likely need\ntransforms that return Promises (ex.
`savedObjectToItem`), such as\n[retrieving tag saved objects from the
SavedObjectTagging\nclient](https://github.com/elastic/kibana/issues/210619).\n\nThe
Dashboard `mSearch` method was only used by the dashboard_picker
and\nthis PR replaces its usage with the `search` method.\n\n###
Identify risks\n\nThere is a slight risk in serverless environments
where a browser may\nhave already loaded the dashboard_picker module but
lags behind the\nserver. In this case, the dashboard picker may fail to
retrieve a list\nof dashboards due to it calling the now non-existent
`mSearch` method\nprovided by the server. In this case, the user simply
needs to refresh\ntheir browser to retrieve the latest UI
modules.","sha":"2a7e38b0fc3c33921f5a29f427bc3a6de8809c67"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->
@kibanamachine kibanamachine removed the backport missing Added to PRs automatically when the are determined to be missing a backport. label Apr 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:version Backport to applied version labels release_note:skip Skip the PR/issue when compiling release notes Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas t// v8.19.0 v9.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants