kibana/examples
Anton Dosov 0936601686
[Content Management] Cross Type Search (savedObjects.find() based) (#154464)
## Summary

Partially addresses https://github.com/elastic/kibana/issues/152224
[Tech Doc
(private)](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit#heading=h.6sj4n6bjcgp5)

Introduce `mSearch` - temporary cross-content type search layer for
content management backed by `savedObjects.find`

Until we have [a dedicated search layer in CM
services](https://docs.google.com/document/d/1mTa1xJIr8ttRnhkHcbdyLSpNJDL1FPJ3OyK4xnOsmnQ/edit),
we want to provide a temporary solution to replace client-side or naive
server proxy usages of `savedObjects.find()` across multiple types with
Content Management API to prepare these places for backward
compatibility compliance.

Later we plan to use the new API together with shared components that
work across multiple types like `SavedObjectFinder` or `TableListView`

The api would only work with content types that use saved objects as a
backend.

To opt-in a saved object backed content type to `mSearch` need to
provide `MSearchConfig` on `ContentStorage`:

```
export class MapsStorage implements ContentStorage<Map> {
  // ... 
  mSearch: {
          savedObjectType: 'maps',
          toItemResult: (ctx: StorageContext, mapsSavedObject: SavedObject<MapsAttributes>) => toMap(ctx,mapsSavedObject), // transform, validate, version
          additionalSearchFields: ['something-maps-specific'],
        }
}
```


*Out of scope of this PR:*

- tags search (will follow up shortly)
- pagination (as described in [the doc]([Tech
Doc](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit#heading=h.6sj4n6bjcgp5))
server-side pagination is not needed for the first consumers, but will
follow up shortly)
- end-to-end / integration testing (don't want to introduce a dummy
saved object for testing this, instead plan to wait for maps CM onboard
and test using maps https://github.com/elastic/kibana/pull/153304)
- Documentation (will add into
https://github.com/elastic/kibana/pull/154453)
- Add rxjs and hook method
2023-04-06 17:15:56 +02:00
..
bfetch_explorer [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00
content_management_examples [Content Management] Cross Type Search (savedObjects.find() based) (#154464) 2023-04-06 17:15:56 +02:00
controls_example [Dashboard] [Controls] Use uiActions for control hover actions (#153065) 2023-03-21 08:47:40 -06:00
data_view_field_editor_example [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
developer_examples [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
embeddable_examples [Portable Dashboards] Add portable dashboard example plugin (#148997) 2023-02-10 13:21:53 -07:00
embeddable_explorer [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00
expressions_explorer [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
field_formats_example [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
files_example Upgraded EUI to v76.0.0 (#152506) 2023-03-14 14:27:40 -05:00
guided_onboarding_example [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00
hello_world [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
locator_examples [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00
locator_explorer [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
partial_results_example [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
portable_dashboards_example [Dashboard] [Controls] Make floating actions keyboard accessible (#152155) 2023-03-06 16:31:50 -07:00
preboot_example [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
response_stream Upgraded EUI to v76.0.0 (#152506) 2023-03-14 14:27:40 -05:00
routing_example Upgraded EUI to v76.0.0 (#152506) 2023-03-14 14:27:40 -05:00
screenshot_mode_example [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
search_examples Upgraded EUI to v76.0.0 (#152506) 2023-03-14 14:27:40 -05:00
share_examples [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
state_containers_examples [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00
ui_action_examples [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
ui_actions_explorer [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
user_profile_examples [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
README.asciidoc Add a few asciidoc readmes (#72082) 2020-07-17 11:08:57 -04:00

[[example-plugins]]
== Example plugins

This folder contains example plugins.  To run the plugins in this folder, use the `--run-examples` flag, via

[source,bash]
----
yarn start --run-examples
----