AppSuite:PushToUI 8

From Open-Xchange

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"