[float] === CSV [float] ==== Job parameters of CsvSearchSource The export type to generate CSV reports and is available in Discover uses "search source" objects. This export type is called `csv_searchsource` in the code. A configuration for a CSV report job is represented with an interface that includes the `BaseParams` and the following fields. To create a request for a CSV report, these required job parameters are Rison encoded into a query string variable of the report generation URL: ---- interface JobParamsCSV { searchSource: SerializedSearchSourceFields; <1> columns?: string[]; <2> }; ---- <1> An object of serialized data that internally represents a search object in Kibana. It will contain a reference to a DataView saved object. <2> An array of field names to include as columns in the CSV report. [float] ==== Job parameters of CsvFromSavedObject A newer export type to generate CSV reports is available, currently only by API. This export type is called `csv_v2` in the code. ---- interface JobParamsCsvFromSavedObject { locatorParams: LocatorParams[]; <1> }; ---- <1> The `locatorParams` value is controlled by the Discover application and identifies a search loaded in Discover, including the selection of DataView, columns and filters. Only a single value in the array is permitted in the `createJob` method. [float] ==== Job payload After the job parameters are received by the route handler for the report generation URL, an additional field is automatically added to the fields from job parameters: ---- interface TaskPayloadCSV { pagingStrategy: 'scan' | 'pit' <1> } ---- <1> The `pagingStrategy` value is taken from the value of the `xpack.reporting.csv.scroll.strategy` setting in kibana.yml and used to control how the `runTask` method pages through all of the data.