Output integration
Export result and notification
Output Organizer advanced generates Output documents conforming to the PDF/A-2b standard, while the basic variant has a reduced conformance level of PDF 1.7. The generated output is made available to the user via a https URL, other systems can be notified by the methods described in this article.
The URL at which the generated document can be accessed, is propagated in the UI. Downloading or forwarding the generated document may be sufficient for most use cases.
Additionally, there are two more ways of receiving a result notification:
- Windows message
- REST notification
Notification via Window Message
A Window Message will be sent after successful export. Whenever Output Organizer is integrated into another page via iFrame, the "caller" can react accordingly to this message.
The JSON message format is as follows:
{
"app": "output-organizer",
"status": "success" | "error",
"collectionId": <collectionId>,
"timeStamp": <exportTime>,
"collectionMetadata": { ... },
"output": [
<exportUrl>
]
}
- app - identifies the message origin, in this case, hard-coded "output-organizer"
- status - successful or unsuccessful export; currently only "success" is notified
- collectionId - the id of the exported collection
- timeStamp - the date & time of export
- collectionMetadata - the complete metadata of the exported collection
- output[] - points to the location where the generated output document can be retrieved.
Because the collection metadata is freely modifiable, any additional info can be attached to the collection and then sent to the receiver of the window message.
Notification via REST
Also, you can configure a custom endpoint which will get notified after the export document has been generated.
The endpoint is called with a REST POST message providing information regarding the export that was just performed. The message format is identical to the window message described above.
In case you added proprietary metadata to your collection, this additional metadata will also be sent within the feedback message.
The endpoint can be configured
- either within each collection (preferred In case different endpoints should be notified for different collections).
- or via Helm
Endpoint configuration via collection
The notification endpoint can be set by adding an optional exportNotificationUrl
field to your collection metadata:
{
"id": <collectionId>,
"metadata": {
"exportNotificationUrl": <new>, // REST endpoint to notify (replaces feedbackUrl, which was used prior to version 1.0)
...
},
"elements": [
...
],
"typeId": "import-output"
}
Endpoint configuration via Helm
Alternatively, to configure an application-wide endpoint, it can be configured via Helm. This endpoint is used as a fallback, when a notification endpoint is not defined for an element.
! Please note: Only endpoints configured via Helm can be secured.
organizer.exportNotification.enabled | Flag to enable export notification (Default: false) |
---|---|
organizer.exportNotification.url | The url of the endpoint |
Authentication for notification endpoint
The export notification can be secured using basic authentication or a static bearer token.
Authentication is optional and can be configured by adding these properties to your Helm deployment values:
organizer:
# used to notify an external service about the export
exportNotification:
enabled: false
# the url of the external service
url:
# the authentication method used to access the external service
auth:
basicAuthenticated:
enabled: false
username:
password:
bearerAuthenticated:
enabled: false
bearerToken:
Basic authentication
organizer.exportNotification.auth.basicAuthenticated.enabled - "true" to enable
organizer.exportNotification.auth.basicAuthenticated.username - authenticated technical user
organizer.exportNotification.auth.basicAuthenticated.password - corresponding password
Bearer authentication
organizer.exportNotification.auth.bearerAuthenticated.enabled - "true" to enable
organizer.exportNotification.auth.bearerAuthenticated.bearerToken - static bearer token
Choose one of the authentication methods by setting the enabled flag to "true" or omit both.