<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.open-xchange.com/wiki/index.php?action=history&amp;feed=atom&amp;title=AppSuite%3APushToUI_8</id>
	<title>AppSuite:PushToUI 8 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.open-xchange.com/wiki/index.php?action=history&amp;feed=atom&amp;title=AppSuite%3APushToUI_8"/>
	<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:PushToUI_8&amp;action=history"/>
	<updated>2026-06-30T23:14:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:PushToUI_8&amp;diff=28941&amp;oldid=prev</id>
		<title>Khgras: /* Switchboard */</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:PushToUI_8&amp;diff=28941&amp;oldid=prev"/>
		<updated>2025-07-17T07:17:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Switchboard&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:17, 17 July 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l41&quot;&gt;Line 41:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 41:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Switchboard ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Switchboard ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Websockets and webpush events in App Suite 8 are managed via the switchboard component instead of the Java middleware.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Websockets and webpush events in App Suite 8 are managed via the switchboard component instead of the Java middleware.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You can find the documentation how to setup websockets for switchboard here: https://documentation.open-xchange.com/appsuite/releases/8.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;39&lt;/del&gt;/helmdocs/switchboard.html#webhook-and-push-notifications&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You can find the documentation how to setup websockets for switchboard here: https://documentation.open-xchange.com/appsuite/releases&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/lts&lt;/ins&gt;/8.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;35&lt;/ins&gt;/helmdocs/switchboard.html#webhook-and-push-notifications&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Specifically it adds the requirement for a MySQL database for switchboard and the creation of vapids.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Specifically it adds the requirement for a MySQL database for switchboard and the creation of vapids.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Enabling the webinterface to request mail push ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Enabling the webinterface to request mail push ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Khgras</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:PushToUI_8&amp;diff=28936&amp;oldid=prev</id>
		<title>WolfgangRosenauer at 10:43, 9 July 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:PushToUI_8&amp;diff=28936&amp;oldid=prev"/>
		<updated>2025-07-09T10:43:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:43, 9 July 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     com.openexchange.pns.transport.webhooks.allowTrustAll: &amp;quot;true&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     com.openexchange.pns.transport.webhooks.allowTrustAll: &amp;quot;true&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     com.openexchange.webhooks.enabledIds: switchboard&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     com.openexchange.webhooks.enabledIds: switchboard&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    com.openexchange.push.allowedClients: '&quot;USM-EAS*&quot;, &quot;open-xchange-appsuite&quot;'&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     com.openexchange.push.credstorage.enabled: &amp;quot;true&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     com.openexchange.push.credstorage.enabled: &amp;quot;true&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>WolfgangRosenauer</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:PushToUI_8&amp;diff=28935&amp;oldid=prev</id>
		<title>WolfgangRosenauer: Created page with &quot;= Howto configure push into the App Suite Web UI and PWA for App Suite 8 =  __TOC__  == 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 [https://en.wikipedia.org/wiki/WebSocket websockets] which i...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:PushToUI_8&amp;diff=28935&amp;oldid=prev"/>
		<updated>2025-07-09T10:42:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Howto configure push into the App Suite Web UI and PWA for App Suite 8 =  __TOC__  == 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 [https://en.wikipedia.org/wiki/WebSocket websockets] which i...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Howto configure push into the App Suite Web UI and PWA for App Suite 8 =&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The general method to transport push to the UI is based on [https://en.wikipedia.org/wiki/WebSocket websockets] which is a web-technology to allow a web page to communicate with the web server full duplex.&lt;br /&gt;
&lt;br /&gt;
This also means that any loadbalancers or reverse proxies in front of the kubernetes environment used for App Suite need to support websockets transparently.&lt;br /&gt;
&lt;br /&gt;
Implementing this part already allows the system to push appointment updates via push to the webinterface.&lt;br /&gt;
&lt;br /&gt;
In addition to websocket based push App Suite 8 also supports [https://developer.mozilla.org/en-US/docs/Web/API/Push_API WebPush] alternatively. Especially for the PWA this is a requirement.&lt;br /&gt;
&lt;br /&gt;
In order to support new mail notifications and direct appearance of new mails in the mailbox there are the following components to be configured:&lt;br /&gt;
&lt;br /&gt;
=== Mail push implementation ===&lt;br /&gt;
There needs to be a suitable [https://documentation.open-xchange.com/8/middleware/mail/mail_push.html 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&lt;br /&gt;
&lt;br /&gt;
=== Push Notification Service ===&lt;br /&gt;
In addition it is required to install and configure the generic push notifications and webhook support&lt;br /&gt;
* in the middleware: [https://documentation.open-xchange.com/8/middleware/push_notifications/push_notification_service.html PNS] and [https://documentation.open-xchange.com/8/middleware/push_notifications/webhooks.html Webhooks]&lt;br /&gt;
Example&lt;br /&gt;
  packages:&lt;br /&gt;
    status:&lt;br /&gt;
      open-xchange-pns-impl: enabled&lt;br /&gt;
&lt;br /&gt;
  properties:&lt;br /&gt;
    com.openexchange.pns.transport.webhooks.enabled: &amp;quot;true&amp;quot;&lt;br /&gt;
    com.openexchange.pns.transport.webhooks.allowLocalWebhooks: &amp;quot;true&amp;quot;&lt;br /&gt;
    com.openexchange.pns.transport.webhooks.httpsOnly: &amp;quot;false&amp;quot;&lt;br /&gt;
    com.openexchange.pns.transport.webhooks.allowTrustAll: &amp;quot;true&amp;quot;&lt;br /&gt;
    com.openexchange.webhooks.enabledIds: switchboard&lt;br /&gt;
    com.openexchange.push.allowedClients: '&amp;quot;USM-EAS*&amp;quot;, &amp;quot;open-xchange-appsuite&amp;quot;'&lt;br /&gt;
    com.openexchange.push.credstorage.enabled: &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* in the UI: &lt;br /&gt;
  io.ox/core//features/pns: &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Switchboard ===&lt;br /&gt;
Websockets and webpush events in App Suite 8 are managed via the switchboard component instead of the Java middleware.&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
Specifically it adds the requirement for a MySQL database for switchboard and the creation of vapids.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enabling the webinterface to request mail push ===&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
 com.openexchange.push.allowedClients=&amp;quot;USM-EAS*&amp;quot;, &amp;quot;open-xchange-appsuite&amp;quot;&lt;/div&gt;</summary>
		<author><name>WolfgangRosenauer</name></author>
	</entry>
</feed>