AppSuite:PushToUI 8
Howto configure push into the App Suite Web UI and PWA for App Suite 8
Introduction
This HOWTO should provide a guideline to configure a push mechanism into the App Suite UI based on websockets and webpush. The push implementation in the current version of App Suite can provide push methods for email and calendar events.
Setup
The general method to transport push to the UI is based on websockets which is a web-technology to allow a web page to communicate with the web server full duplex.
This also means that any loadbalancers or reverse proxies in front of the kubernetes environment used for App Suite need to support websockets transparently.
Implementing this part already allows the system to push appointment updates via push to the webinterface.
In addition to websocket based push App Suite 8 also supports WebPush alternatively. Especially for the PWA this is a requirement.
In order to support new mail notifications and direct appearance of new mails in the mailbox there are the following components to be configured:
Mail push implementation
There needs to be a suitable push implementation. It is highly recommended to use the Dovecot push integration described here: https://documentation.open-xchange.com/8/middleware/mail/dovecot/dovecot_push.html
Push Notification Service
In addition it is required to install and configure the generic push notifications and webhook support
Example
packages: status: open-xchange-pns-impl: enabled
properties: com.openexchange.pns.transport.webhooks.enabled: "true" com.openexchange.pns.transport.webhooks.allowLocalWebhooks: "true" com.openexchange.pns.transport.webhooks.httpsOnly: "false" com.openexchange.pns.transport.webhooks.allowTrustAll: "true" com.openexchange.webhooks.enabledIds: switchboard com.openexchange.push.credstorage.enabled: "true"
- in the UI:
io.ox/core//features/pns: "true"
Switchboard
Websockets and webpush events in App Suite 8 are managed via the switchboard component instead of the Java middleware. You can find the documentation how to setup websockets for switchboard here: https://documentation.open-xchange.com/appsuite/releases/8.39/helmdocs/switchboard.html#webhook-and-push-notifications
Specifically it adds the requirement for a MySQL database for switchboard and the creation of vapids.
Enabling the webinterface to request mail push
The client open-xchange-appsuite needs to be added to the property com.openexchange.push.allowedClients (typically in the file /opt/open-xchange/etc/mail-push.properties).
e.g.
com.openexchange.push.allowedClients="USM-EAS*", "open-xchange-appsuite"