Asynchronous Report Delivery

Typically when generating reports using the reports API, the data is generated and returned synchronously in the response body. For some longer running reports this is not optimal. Eclipse supports report streaming, where the report data is asynchronously generated and a secure URL is provided out of band access.

The reports API has 3 fields that control this aspect of reporting:

  1. streamResult - this determines whether the result should be streamed and report generated asynchronously. The default value is false.
  2. deliveryMechanismType - if streamResult is set to true then deliveryMechanismType determines the channel used to deliver the notification to the end user that their report is ready and the secure URL where the report data can be accessed. Currently http and email are supported delivery mechanisms.
  3. DeliveryMechanismValue - this value is matched with deliveryMechanismType:

If deliveryMechanismType is email then DeliveryMechanismValue is set to the email address where a notification will be sent when the report is ready, including the URL where the report data can be accessed. By default the email will use the following template:

#Subject: S3Bucket Link -- {{data.reportId}}

<!doctype html>
<html>
  <body>
	<p>Your S3 Bucket link is: {{data.reportUrl}}</p>
	<p>Your password is: {{data.password}}</p>
	<p>Link Expiry in Days: {{data.linkExpiryDays}}</p>
</body>
</html>

If deliveryMechanismType is http then DeliveryMechanismValue specifies the URL to which a callback will be sent when when the report is ready, including the URL where the report data can be accessed. An example of the payload for this callback is as follows:

[
  {
    "password": "Wyr79qYz5F",
    "reportId": "Report_user_detail",
    "linkExpiryDays": 1,
    "reportUrl": "https://reporting-svc"
  }
]

Streaming reports can be generated from the Eclipse Admin Portal:

Report streaming in the Eclipse Admin Portal

Report streaming in the Eclipse Admin Portal