Now that new APIs are used for saved object import / export, there is a need to allow any type of saved object to be included.
Once completed, this should solve:
Pinging @elastic/kibana-platform
There's a few options we can go with for the initial phase:
For each option, the following would apply:
Create an API to fetch extra saved object information from configured plugins, pass in type and id combinations to get the results. uiExports would contain functions like getTitle, getIcon, getEditUrl and getNavUrl.
API example
/api/saved_objects/_get_info: Pass in type and id combinationsCreate a new management API that wraps the _find API but automatically injects the extra necessary information in a single API call. uiExports would contain functions like getTitle, getIcon, getEditUrl and getNavUrl.
API example
/api/kibana/management/saved_objects/_find: Takes the same parameters as the regular _find API but automatically adds the extra information for each saved object./api/kibana/management/saved_objects/_relationships: Same behaviour as now but automatically adds the extra information for each saved object.Keep the code as is in the front end. There are currently central functions in the management code to get edit url and such. Document the steps each app that couldn't be converted initially would need to do in order to enhance the user experience.
@epixa thoughts? I'm tempted to explore option 2.
I'm comfortable with option 2 as well.
@mikecote Will this also add support for map saved objects?
@nreese correct, I will resolve that issue once the changes are merged.
I have chosen the following types to be included in management UI for import / export:
[
'config',
'graph-workspace',
'map',
'canvas-workpad',
'index-pattern',
'visualization',
'search',
'dashboard',
'url',
]
The following have been left out:
[
'telemetry',
'space',
'ml-telemetry',
'apm-telemetry',
'maps-telemetry',
'infrastructure-ui-source',
'upgrade-assistant-reindex-operation',
'upgrade-assistant-telemetry',
'server',
'kql-telemetry',
'sample-data-telemetry',
'timelion-sheet', // Now part of visualization object?
'ui-metric'
]
@epixa questions:
savedObjectSchemas[type].importExportable: false in uiExports.Did I miss any types that should be included?
Not that I can think of.
Are we keeping the opt-in by default behaviour? The object types will show up by default until configured not to via savedObjectSchemas[type].importExportable: false in uiExports
Might as well
Most helpful comment
Not that I can think of.
Might as well