Nexpose provides a number of api methods for report management. Through the API you can create/update a report configuration, generate a report on the fly, and view the status of the generation requests.
A report configuration, in particular, is a configuration for a type of report. With a configuration, a user can specify the template, format, and content for a report. In order to create a configuration via the API a user must generate a ReportSaveRequest.
ReportSaveRequest - The report save request can serve as both a create and update. Below is a sample xml for a create request.
<ReportSaveRequest session- generate-now="1"> <ReportConfig name="test-name12" template- format="pdf"> <Filters><filter type="site" ></Filters> <Delivery><Storage storeOnServer="0"</Storage></Delivery> <Generate after-scan="0" schedule="0"></Generate> </ReportConfig> </ReportSaveRequest> </ReportSaveRequest>
Some other thing to note, you can immediately generate a report after saving or updating the configuration by setting the "generate-now" attribute to 1. Another thing to know is that if you wish to update an existing request, simply turn the config-id attribute to an actual configuration id number. The config id number is provided in the response of the save request. Whether it is a save or update request, the config id will always be returned upon sucess. Below is another example of a sample response.
<ReportSaveResponse reportcfg- success="1"/>
ReportGenerateRequest - If you wish to separate generation from config update or creation, then you can use the ReportGenerateRequest. Once a configuration is saved, generating a request specifying the config id can be triggered simply by sending the xml below to nexpose.
<ReportGenerateRequest session- report-/>
Keep in mind that generating a request and getting a response back does not mean that the report has finished generating. In order to know when a report has finished generation, you will need to use the ReportHistoryRequest API and track the status returned. Below is a request/response for report history. Note the status attribute in the response.