in dashboards-reports/server/routes/utils/savedSearchReportHelper.ts [65:121]
async function populateMetaData(
client: ILegacyClusterClient | ILegacyScopedClusterClient,
report: any,
isScheduledTask: boolean,
logger: Logger
) {
metaData.saved_search_id =
report.report_definition.report_params.core_params.saved_search_id;
metaData.report_format =
report.report_definition.report_params.core_params.report_format;
metaData.start = report.time_from;
metaData.end = report.time_to;
// Get saved search info
let resIndexPattern: any = {};
const ssParams = {
index: '.kibana',
id: 'search:' + metaData.saved_search_id,
};
const ssInfos = await callCluster(client, 'get', ssParams, isScheduledTask);
metaData.sorting = ssInfos._source.search.sort;
metaData.type = ssInfos._source.type;
metaData.searchSourceJSON =
ssInfos._source.search.kibanaSavedObjectMeta.searchSourceJSON;
// Get the list of selected columns in the saved search.Otherwise select all the fields under the _source
await getSelectedFields(ssInfos._source.search.columns);
// Get index name
for (const item of ssInfos._source.references) {
if (item.name === JSON.parse(metaData.searchSourceJSON).indexRefName) {
// Get index-pattern information
const indexPattern = await callCluster(
client,
'get',
{
index: '.kibana',
id: 'index-pattern:' + item.id,
},
isScheduledTask
);
resIndexPattern = indexPattern._source['index-pattern'];
metaData.paternName = resIndexPattern.title;
(metaData.timeFieldName = resIndexPattern.timeFieldName),
(metaData.fields = resIndexPattern.fields); // Get all fields
// Getting fields of type Date
const dateFields = [];
for (const item of JSON.parse(metaData.fields)) {
if (item.type === 'date') {
dateFields.push(item.name);
}
}
metaData.dateFields = dateFields;
}
}
}