https://oxpedia.org/wiki/api.php?action=feedcontributions&user=Michael.koch&feedformat=atomOpen-Xchange - User contributions [en]2024-03-28T14:58:35ZUser contributionsMediaWiki 1.31.0https://oxpedia.org/wiki/index.php?title=AppSuite:OX_System_Requirements&diff=25861AppSuite:OX System Requirements2021-04-16T10:08:34Z<p>Michael.koch: /* OX Drive for Clients */</p>
<hr />
<div>= OX App Suite Requirements - Open-Xchange supported components overview =<br />
<br />
The following table provides an overview about the supported components of OX App Suite and further products. This overview makes no claim to be complete.<br />
<br />
Information about Maintenance expiries of components, versions and browser support, can be found in the [[AppSuite:Versioning_and_Numbering#Maintenance_expires|Maintenance Expires Table]]<br />
<br />
== Hardware Requirements ==<br />
<br />
=== General Assumptions ===<br />
<br />
Open-Xchange App Suite Server (middleware services) is designed to run on physical servers or virtual machines of the same flavor. Cloud environments might be used in terms of Infrastructure as a Service (IaaS), meaning that all components need to be deployed in a classical manner on virtual machines.<br />
<br />
This means in particular, but not only:<br />
<br />
* Infrastructure is supposed to be "quasi-static". Automatic replacement of broken nodes is fine as long as this is always an exceptional case. Scaling out or reducing number of nodes must always be a conscious task and closely monitored.<br />
* The only supported "Database as a service" solution is AWS RDS for MariaDB as defined by belows compatibility table.<br />
<br />
Especially we expect the virtual hardware to be not over-provisioned. Each VM must have dedicated resources with respect to CPU cores, RAM, IOPS, storage, network bandwidth, network latency, etc.<br />
<br />
Network is expected to be flat, inside one datacenter, no multi-datacenter, no segments. No packet loss, low latency.<br />
<br />
'''Disclaimer: All recommendations below are without guarantee and can differ for specific deployments. For mid- and large-scale setups a detailed deployment planning and sizing tests are mandatory and should be agreed on with OX Professional Services.'''<br />
<br />
=== High Level Design / OS setup ===<br />
<br />
Operate services separately (USM, Document/Image Converters) as described in [https://oxpedia.org/wiki/index.php?title=AppSuite:Running_a_cluster Cluster Setup].<br />
<br />
Clocks between all nodes must be synchronized (e.g. via NTP).<br />
<br />
Open file/max process limits need to be adjusted properly. Based on the used Linux distribution and init system configuration will differ, see Resource Limits for further explanation.<br />
<br />
Platform Architecture: 64 bit versions (x84_64) of the supported [[#Software Requirements | Linux distributions]]<br />
<br />
=== Node Sizing ===<br />
<br />
==== OX App Suite Middleware ====<br />
<br />
* Max. 8 GB heap per JVM + 4 GB system memory for other daemons and the OS (buffers, caches)<br />
* 4 CPU cores (virtual, physical or hyperthreads) for plain HTTP connections. If TLS is terminated on application nodes this might need to be doubled.<br />
* Disk space<br />
** 8 GB for OS and software<br />
** Some services like Document Converter need SWAP partitions (~1 * RAM)<br />
** 2 * system memory of free disk space (i.e. 12 GB RAM => 24 GB free disk space) for file spooling, log files, heap and core dumps<br />
<br />
=== Untested/Unsupported Deployments ===<br />
<br />
* Changes to Garbage Collector settings<br />
* Running in containerized environments (Docker, rkt)<br />
* Elasticity/High velocity of nodes going up and down: Services are sometimes stateful and demand static configuration<br />
* Cloud platform services (PaaS) that promise to replacements for certain supported technologies but have not been verified by OX for these regards<br />
* Multi-site active-active<br />
<br />
== Software Requirements ==<br />
<br />
=== Linux Distributions ===<br />
<br />
OX App Suite is available as Linux packages for the following distributions:<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Distribution'''<br />
|'''Versions'''<br />
|'''Remarks'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Red Hat Enterprise Linux<br />
|7<br />
|<br />
|-<br />
|CentOS<br />
|7<br />
|Install from RHEL package repositories<br />
|-<br />
|Debian<br />
|9 (Stretch), 10 (Buster)<br />
|<br />
|-<br />
|Univention Corporate Server<br />
|4.4<br />
|<br />
|-<br />
|Amazon Linux<br />
|2<br />
|Discontinued Support with end of life of OX App Suite v7.10.5<br />
|-<br />
|}<br />
<br />
=== Java ===<br />
<br />
OX App Suite Middleware requires OpenJDK headless JRE 8 or 9. Linux distributions might offer only packages for OpenJDK 11 JRE, which is not suitable for OX App Suite. It is in those cases required to install AdoptOpenJDK 8 JRE with HotSpot VM. A comprehensive installation guide can be found at https://adoptopenjdk.net/installation.html#linux-pkg. The correct JRE package is adoptopenjdk-8-hotspot-jre.<br />
<br />
=== Databases ===<br />
<br />
OX App Suite uses MySQL/MariaDB with the InnoDB storage engine as its primary data store. The following vendors and products are supported.<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Vendor'''<br />
|'''Product'''<br />
|'''Versions'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Oracle<br />
|MySQL Community Edition, Standard Edition, Enterprise Edition<br />
|v5.6.x, v5.7.x<br />
|-<br />
|MariaDB<br />
|MariaDB Server, Galera Cluster<br />
|v10.1.x, v10.2.x, v10.4.x<br />
|-<br />
|Amazon<br />
|AWS RDS for MariaDB<br />
|10.2.x<br>Discontinued Support with end of life of OX App Suite v7.10.5<br />
|-<br />
|}<br />
<br />
==== Important Notes ====<br />
<br />
* Open-Xchange does not plan to support '''MySQL 8 or higher'''. As MariaDB and MySQL are diverging and cannot be assumed drop-in replacements anymore, Open-Xchange will focus on MariaDB Server and MariaDB Galera Cluster. Future App Suite releases '''> 7.10.x''' might rely on features only available in '''MariaDB'''.<br />
* Open-Xchange supports '''Percona XtraDB Cluster''' for existing customers with initial deployments done using '''App Suite 7.8.x or earlier'''. Those customers can continue to use Percona XtraDB Cluster throughout the 7.10.x release series. Like for MySQL, 7.10.x supports only versions 5.6 and 5.7. It is not planned to support Percona XtraDB Cluster beyond 7.10.x.<br />
<br />
* For some Linux distributions the included MySQL/MariaDB packages are too old to be used with App Suite. It is mandatory then to install a supported version from '''upstream package sources'''. Possible sources are the official vendor repositories of MySQL or MariaDB as well as for example Red Hat Software Collections.<br />
* Required '''MySQL/MariaDB configuration''' configuration differs between '''App Suite 7.8.4 and 7.10.x''' and also between the different database systems in terms of SQL modes. See [[My.cnf]] for details.<br />
* For upgrades from App Suite <= 7.8.2 to >= 7.10.0 a comprehensive '''database upgrade guide''' exists: [[AppSuite:7_10_Database_Migration]]<br />
<br />
== HTTP Reverse Proxy ==<br />
<br />
An HTTP server with reverse proxy and load balancing capabilities is required in front of App Suite application servers. TLS termination, virtual hosts, path-based routing, sticky sessions and X-Forwarded headers are typical required features. OX strongly recommends [https://httpd.apache.org/ Apache httpd 2.x] for that. Configuration examples can be found in the quickinstall guides.<br />
<br />
'''Important:''' For websocket support Apache httpd 2.4.x is needed, 2.2.x does not support the required ws_tunnel module. Websockets are mandatory for OX Documents starting with v7.10.3. Like with JRE and MySQL/MariaDB it might be necessary to use 3rd party packages to get the needed Linux packages. Especially for RHEL6 we recommend using Red Hat Software Collections.<br />
<br />
== Webserver ==<br />
<br />
[https://httpd.apache.org/ Apache httpd 2.x] is required as webserver to serve static App Suite UI content. Configuration examples can be found in the quickinstall guides.<br />
<br />
== File Storage ==<br />
<br />
=== Temporary Data ===<br />
<br />
OX App Suite stores temporary files in the local file system, e.g. for spooling of uploaded data. Any file system supported by the installed JRE is suitable.<br />
<br />
=== Persistent Data ===<br />
<br />
Persistent data like OX Drive files, PIM attachments etc. and temporary attachment data need to be stored in a distributed file system as registered filestore that is available from all server nodes. For single-node setups a local file system mount point can be used, small to mid-scale setups can be powered by NFS. For large-scale setups object storages should be considered.<br />
<br />
==== Object Storages ====<br />
<br />
OX App Suite ships with different optional adapters to support object storages.<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Vendor'''<br />
|'''Product'''<br />
|'''API'''<br />
|'''Remarks'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Amazon<br />
|AWS S3<br />
|S3 HTTP API<br />
|See also [[AppSuite:S3_File_Store]]<br />
|-<br />
|CEPH<br />
|RadosGW<br />
|S3 HTTP API<br />
|See also [[AppSuite:S3_File_Store]]<br />
|-<br />
|Scality<br />
|Scality RING<br />
|Sproxyd HTTP API<br />
|See also [[AppSuite:Scality_File_Store]]<br />
|-<br />
|}<br />
<br />
== Desktop Browser (Minimum display resolution: 1024 x 768)==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Browser'''<br />
|'''OX App Suite User Front-End'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Google Chrome (latest & previous version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Mozilla Firefox (latest & current ESR-Version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Apple Safari (latest & previous version; macOS only)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Microsoft Edge (Chromium-based)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Microsoft Edge (Legacy)<br />
|v7.10.3, 7.10.4<br />
|-<br />
|Microsoft Internet Explorer 11<br />
|v7.10.3, 7.10.4<br />
|-<br />
|Microsoft Internet Explorer 10/11<br />
|v7.6.3<br />
|-<br />
|}<br />
<br />
== Mobile Device Support==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Mobile Device'''<br />
|'''Supported Browser'''<br />
|'''OX App Suite User Front-End'''<br />
|'''Minimum Speed Requirements'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|iPhone on iOS 13 / iOS 14 / iPad OS<br />
|Safari<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|-<br />
|Smartphone on Android 4.1 or later<br />
|Chrome (latest & previous version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|}<br />
<br />
== Tablet Support==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Tablet'''<br />
|'''Supported Browser'''<br />
|'''OX App Suite User Front-End'''<br />
|'''Minimum Speed Requirements'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Apple iPad (all devices) on iOS 13 / iOS 14 / iPad OS<br />
|Safari<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|-<br />
|Tablets on Android 4.1 or later<br />
|Chrome (latest & previous version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|}<br />
<br />
== Calendar/Contact synchronization Apple Mac OS X ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|Calendar synchronization with CalDAV<br />
|Contacts synchronization with CardDAV<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|macOS 10.14 (Mojave)<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|macOS 10.15 (Catalina)<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|macOS 11.0 (Big Sur)<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|}<br />
<br />
== Calendar/Contact synchronization Apple iOS ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|Calendar synchronization with CalDAV<br />
|Contacts synchronization with CardDAV<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Apple iOS 13 / iOS 14 / iPad OS<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|}<br />
<br />
== Mobility Solution - Supported- Platforms, Features and Devices ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Feature/Technology/Device'''<br />
|[http://oxpedia.org/wiki/index.php?title=OXtender_for_Business_Mobility '''OXtender for Business Mobility'''] (availalble for App Suite, OXHE, OXSE)<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Exchange Active Sync 2.5<br />
|[[File:check.gif]]<br />
|-<br />
|Exchange Active Sync 12.1<br />
|[[File:check.gif]]<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Access and creation of emails<br />
|[[File:check.gif]]<br />
|-<br />
|Personal PIM folder<br />
|[[File:check.gif]] <br />
|-<br />
|Public and Shared PIM folder<br />
|[[File:cross.gif]]<br />
|-<br />
|Global address book<br />
|[[File:check.gif]] <br />
|-<br />
|Push E-Mail<br />
|[[File:check.gif]] <br />
|-<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Apple iOS 13 / iOS 14 / iPad OS<br />
|[[File:check.gif]]<br />
|-<br />
|Android 8 (Oreo) or later with latest Gmail app.<br />
|[[File:check.gif]]<br />
|-<br />
|}<br />
<br />
== OX Drive for Clients ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|'''System / Platform'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|OX App Suite<br />
|OX App Suite 7.10.5<br />
|-<br />
|OX Drive for Windows<br />
|Latest versions of Windows 8, latest versions of Windows 10 (no support of Mac OS X clients with emulators and Windows RT)<br />
|-<br />
|OX Drive for macOS<br />
|macOS Mojave 10.14, macOS Catalina 10.15, macOS Big Sur 11<br />
|-<br />
|OX Drive for iOS<br />
|Apple iOS 13 / iOS 14 / iPad OS<br />
|-<br />
|OX Drive for Android<br />
|Smartphone on Android 5.x or later with Chrome (latest & previous version), Tablets on Android 5.x or later with Chrome (latest & previous version)<br />
|-<br />
|}<br />
<br />
== OX Sync App ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|'''System / Platform / User Interface'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|OX App Suite<br />
|OX App Suite 7.10.5<br />
|-<br />
|OX Sync App for Android<br />
|Smartphone on Android 5.0 or later<br />
|-<br />
|}<br />
<br />
== OX Guard ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|'''System / Platform / User Interface'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|OX App Suite<br />
|OX Guard since v2.10.3: OX App Suite v7.10.3, OX Guard since v2.10.4: OX App Suite v7.10.4, OX Guard since v2.10.5: OX App Suite v7.10.5<br />
|-<br />
|Mobile Device and Tablet Support<br />
|Apple iPhone on iOS 13 / iOS 14 / iPad OS: Safari (latest version & previous version)<br>Smartphone on Android 4.1 or later: Chrome (latest & previous version)<br>Apple iPad (all devices) on iOS 13 / iOS 14 / iPad OS: Safari Safari (latest version & previous version)<br>Tablets on Android 4.1 or later: Chrome (latest & previous version)<br />
|-<br />
|}<br />
<br />
<br />
[[Category: OX7]]<br />
[[Category: AppSuite]]</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:OX_System_Requirements&diff=25858AppSuite:OX System Requirements2021-04-16T10:08:15Z<p>Michael.koch: /* OX Sync App */</p>
<hr />
<div>= OX App Suite Requirements - Open-Xchange supported components overview =<br />
<br />
The following table provides an overview about the supported components of OX App Suite and further products. This overview makes no claim to be complete.<br />
<br />
Information about Maintenance expiries of components, versions and browser support, can be found in the [[AppSuite:Versioning_and_Numbering#Maintenance_expires|Maintenance Expires Table]]<br />
<br />
== Hardware Requirements ==<br />
<br />
=== General Assumptions ===<br />
<br />
Open-Xchange App Suite Server (middleware services) is designed to run on physical servers or virtual machines of the same flavor. Cloud environments might be used in terms of Infrastructure as a Service (IaaS), meaning that all components need to be deployed in a classical manner on virtual machines.<br />
<br />
This means in particular, but not only:<br />
<br />
* Infrastructure is supposed to be "quasi-static". Automatic replacement of broken nodes is fine as long as this is always an exceptional case. Scaling out or reducing number of nodes must always be a conscious task and closely monitored.<br />
* The only supported "Database as a service" solution is AWS RDS for MariaDB as defined by belows compatibility table.<br />
<br />
Especially we expect the virtual hardware to be not over-provisioned. Each VM must have dedicated resources with respect to CPU cores, RAM, IOPS, storage, network bandwidth, network latency, etc.<br />
<br />
Network is expected to be flat, inside one datacenter, no multi-datacenter, no segments. No packet loss, low latency.<br />
<br />
'''Disclaimer: All recommendations below are without guarantee and can differ for specific deployments. For mid- and large-scale setups a detailed deployment planning and sizing tests are mandatory and should be agreed on with OX Professional Services.'''<br />
<br />
=== High Level Design / OS setup ===<br />
<br />
Operate services separately (USM, Document/Image Converters) as described in [https://oxpedia.org/wiki/index.php?title=AppSuite:Running_a_cluster Cluster Setup].<br />
<br />
Clocks between all nodes must be synchronized (e.g. via NTP).<br />
<br />
Open file/max process limits need to be adjusted properly. Based on the used Linux distribution and init system configuration will differ, see Resource Limits for further explanation.<br />
<br />
Platform Architecture: 64 bit versions (x84_64) of the supported [[#Software Requirements | Linux distributions]]<br />
<br />
=== Node Sizing ===<br />
<br />
==== OX App Suite Middleware ====<br />
<br />
* Max. 8 GB heap per JVM + 4 GB system memory for other daemons and the OS (buffers, caches)<br />
* 4 CPU cores (virtual, physical or hyperthreads) for plain HTTP connections. If TLS is terminated on application nodes this might need to be doubled.<br />
* Disk space<br />
** 8 GB for OS and software<br />
** Some services like Document Converter need SWAP partitions (~1 * RAM)<br />
** 2 * system memory of free disk space (i.e. 12 GB RAM => 24 GB free disk space) for file spooling, log files, heap and core dumps<br />
<br />
=== Untested/Unsupported Deployments ===<br />
<br />
* Changes to Garbage Collector settings<br />
* Running in containerized environments (Docker, rkt)<br />
* Elasticity/High velocity of nodes going up and down: Services are sometimes stateful and demand static configuration<br />
* Cloud platform services (PaaS) that promise to replacements for certain supported technologies but have not been verified by OX for these regards<br />
* Multi-site active-active<br />
<br />
== Software Requirements ==<br />
<br />
=== Linux Distributions ===<br />
<br />
OX App Suite is available as Linux packages for the following distributions:<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Distribution'''<br />
|'''Versions'''<br />
|'''Remarks'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Red Hat Enterprise Linux<br />
|7<br />
|<br />
|-<br />
|CentOS<br />
|7<br />
|Install from RHEL package repositories<br />
|-<br />
|Debian<br />
|9 (Stretch), 10 (Buster)<br />
|<br />
|-<br />
|Univention Corporate Server<br />
|4.4<br />
|<br />
|-<br />
|Amazon Linux<br />
|2<br />
|Discontinued Support with end of life of OX App Suite v7.10.5<br />
|-<br />
|}<br />
<br />
=== Java ===<br />
<br />
OX App Suite Middleware requires OpenJDK headless JRE 8 or 9. Linux distributions might offer only packages for OpenJDK 11 JRE, which is not suitable for OX App Suite. It is in those cases required to install AdoptOpenJDK 8 JRE with HotSpot VM. A comprehensive installation guide can be found at https://adoptopenjdk.net/installation.html#linux-pkg. The correct JRE package is adoptopenjdk-8-hotspot-jre.<br />
<br />
=== Databases ===<br />
<br />
OX App Suite uses MySQL/MariaDB with the InnoDB storage engine as its primary data store. The following vendors and products are supported.<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Vendor'''<br />
|'''Product'''<br />
|'''Versions'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Oracle<br />
|MySQL Community Edition, Standard Edition, Enterprise Edition<br />
|v5.6.x, v5.7.x<br />
|-<br />
|MariaDB<br />
|MariaDB Server, Galera Cluster<br />
|v10.1.x, v10.2.x, v10.4.x<br />
|-<br />
|Amazon<br />
|AWS RDS for MariaDB<br />
|10.2.x<br>Discontinued Support with end of life of OX App Suite v7.10.5<br />
|-<br />
|}<br />
<br />
==== Important Notes ====<br />
<br />
* Open-Xchange does not plan to support '''MySQL 8 or higher'''. As MariaDB and MySQL are diverging and cannot be assumed drop-in replacements anymore, Open-Xchange will focus on MariaDB Server and MariaDB Galera Cluster. Future App Suite releases '''> 7.10.x''' might rely on features only available in '''MariaDB'''.<br />
* Open-Xchange supports '''Percona XtraDB Cluster''' for existing customers with initial deployments done using '''App Suite 7.8.x or earlier'''. Those customers can continue to use Percona XtraDB Cluster throughout the 7.10.x release series. Like for MySQL, 7.10.x supports only versions 5.6 and 5.7. It is not planned to support Percona XtraDB Cluster beyond 7.10.x.<br />
<br />
* For some Linux distributions the included MySQL/MariaDB packages are too old to be used with App Suite. It is mandatory then to install a supported version from '''upstream package sources'''. Possible sources are the official vendor repositories of MySQL or MariaDB as well as for example Red Hat Software Collections.<br />
* Required '''MySQL/MariaDB configuration''' configuration differs between '''App Suite 7.8.4 and 7.10.x''' and also between the different database systems in terms of SQL modes. See [[My.cnf]] for details.<br />
* For upgrades from App Suite <= 7.8.2 to >= 7.10.0 a comprehensive '''database upgrade guide''' exists: [[AppSuite:7_10_Database_Migration]]<br />
<br />
== HTTP Reverse Proxy ==<br />
<br />
An HTTP server with reverse proxy and load balancing capabilities is required in front of App Suite application servers. TLS termination, virtual hosts, path-based routing, sticky sessions and X-Forwarded headers are typical required features. OX strongly recommends [https://httpd.apache.org/ Apache httpd 2.x] for that. Configuration examples can be found in the quickinstall guides.<br />
<br />
'''Important:''' For websocket support Apache httpd 2.4.x is needed, 2.2.x does not support the required ws_tunnel module. Websockets are mandatory for OX Documents starting with v7.10.3. Like with JRE and MySQL/MariaDB it might be necessary to use 3rd party packages to get the needed Linux packages. Especially for RHEL6 we recommend using Red Hat Software Collections.<br />
<br />
== Webserver ==<br />
<br />
[https://httpd.apache.org/ Apache httpd 2.x] is required as webserver to serve static App Suite UI content. Configuration examples can be found in the quickinstall guides.<br />
<br />
== File Storage ==<br />
<br />
=== Temporary Data ===<br />
<br />
OX App Suite stores temporary files in the local file system, e.g. for spooling of uploaded data. Any file system supported by the installed JRE is suitable.<br />
<br />
=== Persistent Data ===<br />
<br />
Persistent data like OX Drive files, PIM attachments etc. and temporary attachment data need to be stored in a distributed file system as registered filestore that is available from all server nodes. For single-node setups a local file system mount point can be used, small to mid-scale setups can be powered by NFS. For large-scale setups object storages should be considered.<br />
<br />
==== Object Storages ====<br />
<br />
OX App Suite ships with different optional adapters to support object storages.<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Vendor'''<br />
|'''Product'''<br />
|'''API'''<br />
|'''Remarks'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Amazon<br />
|AWS S3<br />
|S3 HTTP API<br />
|See also [[AppSuite:S3_File_Store]]<br />
|-<br />
|CEPH<br />
|RadosGW<br />
|S3 HTTP API<br />
|See also [[AppSuite:S3_File_Store]]<br />
|-<br />
|Scality<br />
|Scality RING<br />
|Sproxyd HTTP API<br />
|See also [[AppSuite:Scality_File_Store]]<br />
|-<br />
|}<br />
<br />
== Desktop Browser (Minimum display resolution: 1024 x 768)==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Browser'''<br />
|'''OX App Suite User Front-End'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Google Chrome (latest & previous version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Mozilla Firefox (latest & current ESR-Version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Apple Safari (latest & previous version; macOS only)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Microsoft Edge (Chromium-based)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|Microsoft Edge (Legacy)<br />
|v7.10.3, 7.10.4<br />
|-<br />
|Microsoft Internet Explorer 11<br />
|v7.10.3, 7.10.4<br />
|-<br />
|Microsoft Internet Explorer 10/11<br />
|v7.6.3<br />
|-<br />
|}<br />
<br />
== Mobile Device Support==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Mobile Device'''<br />
|'''Supported Browser'''<br />
|'''OX App Suite User Front-End'''<br />
|'''Minimum Speed Requirements'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|iPhone on iOS 13 / iOS 14 / iPad OS<br />
|Safari<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|-<br />
|Smartphone on Android 4.1 or later<br />
|Chrome (latest & previous version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|}<br />
<br />
== Tablet Support==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Tablet'''<br />
|'''Supported Browser'''<br />
|'''OX App Suite User Front-End'''<br />
|'''Minimum Speed Requirements'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Apple iPad (all devices) on iOS 13 / iOS 14 / iPad OS<br />
|Safari<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|-<br />
|Tablets on Android 4.1 or later<br />
|Chrome (latest & previous version)<br />
|v7.10.3, 7.10.4, 7.10.5<br />
|3G connections (512/256kBit/s, 350ms latency)<br />
|}<br />
<br />
== Calendar/Contact synchronization Apple Mac OS X ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|Calendar synchronization with CalDAV<br />
|Contacts synchronization with CardDAV<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|macOS 10.14 (Mojave)<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|macOS 10.15 (Catalina)<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|macOS 11.0 (Big Sur)<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|}<br />
<br />
== Calendar/Contact synchronization Apple iOS ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|Calendar synchronization with CalDAV<br />
|Contacts synchronization with CardDAV<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Apple iOS 13 / iOS 14 / iPad OS<br />
|[[File:check.gif]]<br />
|[[File:check.gif]]<br />
|-<br />
|}<br />
<br />
== Mobility Solution - Supported- Platforms, Features and Devices ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Feature/Technology/Device'''<br />
|[http://oxpedia.org/wiki/index.php?title=OXtender_for_Business_Mobility '''OXtender for Business Mobility'''] (availalble for App Suite, OXHE, OXSE)<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Exchange Active Sync 2.5<br />
|[[File:check.gif]]<br />
|-<br />
|Exchange Active Sync 12.1<br />
|[[File:check.gif]]<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Access and creation of emails<br />
|[[File:check.gif]]<br />
|-<br />
|Personal PIM folder<br />
|[[File:check.gif]] <br />
|-<br />
|Public and Shared PIM folder<br />
|[[File:cross.gif]]<br />
|-<br />
|Global address book<br />
|[[File:check.gif]] <br />
|-<br />
|Push E-Mail<br />
|[[File:check.gif]] <br />
|-<br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|Apple iOS 13 / iOS 14 / iPad OS<br />
|[[File:check.gif]]<br />
|-<br />
|Android 8 (Oreo) or later with latest Gmail app.<br />
|[[File:check.gif]]<br />
|-<br />
|}<br />
<br />
== OX Drive for Clients ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|'''System / Platform'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|OX App Suite<br />
|OX App Suite v7.10.3, 7.10.4, 7.10.5<br />
|-<br />
|OX Drive for Windows<br />
|Latest versions of Windows 8, latest versions of Windows 10 (no support of Mac OS X clients with emulators and Windows RT)<br />
|-<br />
|OX Drive for macOS<br />
|macOS Mojave 10.14, macOS Catalina 10.15, macOS Big Sur 11<br />
|-<br />
|OX Drive for iOS<br />
|Apple iOS 13 / iOS 14 / iPad OS<br />
|-<br />
|OX Drive for Android<br />
|Smartphone on Android 5.x or later with Chrome (latest & previous version), Tablets on Android 5.x or later with Chrome (latest & previous version)<br />
|-<br />
|}<br />
<br />
== OX Sync App ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|'''System / Platform / User Interface'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|OX App Suite<br />
|OX App Suite 7.10.5<br />
|-<br />
|OX Sync App for Android<br />
|Smartphone on Android 5.0 or later<br />
|-<br />
|}<br />
<br />
== OX Guard ==<br />
<br />
{|border="2" rules="all" align="left"><br />
|'''Requirement'''<br />
|'''System / Platform / User Interface'''<br />
|- <br />
|&nbsp;<br />
|&nbsp;<br />
|-<br />
|OX App Suite<br />
|OX Guard since v2.10.3: OX App Suite v7.10.3, OX Guard since v2.10.4: OX App Suite v7.10.4, OX Guard since v2.10.5: OX App Suite v7.10.5<br />
|-<br />
|Mobile Device and Tablet Support<br />
|Apple iPhone on iOS 13 / iOS 14 / iPad OS: Safari (latest version & previous version)<br>Smartphone on Android 4.1 or later: Chrome (latest & previous version)<br>Apple iPad (all devices) on iOS 13 / iOS 14 / iPad OS: Safari Safari (latest version & previous version)<br>Tablets on Android 4.1 or later: Chrome (latest & previous version)<br />
|-<br />
|}<br />
<br />
<br />
[[Category: OX7]]<br />
[[Category: AppSuite]]</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:OX_Drive&diff=25855AppSuite:OX Drive2021-04-16T10:07:42Z<p>Michael.koch: </p>
<hr />
<div>Source of http://oxpedia.org/wiki/index.php?title=AppSuite:OX_Drive<br />
<br />
<br />
<br />
= OX Drive =<br />
<br />
In OX App Suite, Open-Xchange provides a cloud storage called OX Drive. It provides file- and folder synchronization across multiple devices in the simplest way for the end user, fully optimized for each device type. This article explains how to set up the server-side components for OX Drive, as well as details about the app setup.<br />
<br />
== Key features ==<br />
<br />
* Native Apps for Windows, Mac OS, iOS and Android<br />
* Easy and attractive upsell properties (e.g. Upsell based on Quota limitations)<br />
* Apps are specially designed for the devices they run on taking into account limitations such as battery life, screen limitations, bandwidth etc.<br />
* Controlled synchronization of files across devices<br />
* Storage management (e.g. quota control, upload limits)<br />
* Connection type recognition and adaptation (e.g. Wi-Fi, cell network)<br />
<br />
== Availability ==<br />
<br />
OX Drive is a combination of two components:<br />
* OX Drive in OX App Suite<br />
* OX Drive Apps (optional native apps for synchronization)<br />
<br />
OX Drive is available as native app for the following operating systems:<br />
* OX Drive for Windows<br />
* OX Drive for Mac OS<br />
* OX Drive for iOS<br />
* OX Drive for Android<br />
<br />
== Requirements ==<br />
<br />
You will find the requirements under [[AppSuite:OX_System_Requirements#OX_Drive_for_Clients|OX Drive App and Platform Requirements]]<br />
<br />
= Server-side Installation and Configuration =<br />
<br />
This chapter describes how the backend components of OX Drive are installed and configured on the server.<br />
<br />
== Prerequisites ==<br />
<br />
* Open-Xchange Server v7.10.5 and above (''open-xchange-core'')<br />
* Grizzly HTTP connector (''open-xchange-grizzly''), see [[AppSuite:Grizzly]] for details, with ''Comet'' support enabled in ''grizzly.properties''<br />
* Valid Push-Certificates / API keys for cloud-based notifications, see configuration below<br />
* Enabled Hazelcast for inter-OX-communication, see [[AppSuite:Running_a_cluster]] for details<br />
<br />
== Available packages ==<br />
<br />
Open-Xchange Drive is available with the following backend packages:<br />
<br />
* ''open-xchange-drive'' - The main server components for OX Drive<br />
* ''open-xchange-drive-comet'' - Provides the Push interface via long-polling for the desktop apps<br />
* ''open-xchange-drive-help-*'' - Online help in various languages for the OX Drive applications (these were called ''open-xchange-appsuite-help-drive-*'' in versions earlier than Open-Xchange Server v7.6.2)<br />
* ''open-xchange-drive-restricted'' - Restricted components, including prerequisites for cloud-based push notifications<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== OX Drive for Windows ===<br />
<br />
Additionally OX Drive for Windows can be provided to users by installing additional packages.<br />
<br />
OX Drive for Windows is able to update itself and can be downloaded from the Web UI directly via the [[AppSuite:Client_Onboarding|App Onboarding Wizard]]. Therefore the wizard must be installed and configured for OX Drive users. Besides the client onboarding feature you need the following packages:<br />
<br />
* ''open-xchange-drive-client-windows'' - The main server component to provide the app<br />
* ''open-xchange-drive-client-windows-generic'' - The package providing the final binary files to be installed on users machines.<br />
<br />
To make the app download available via the app onboarding wizard, you need to enable the according scenario. Edit ''/opt/open-xchange/etc/client-onboarding-scenarios.yml'' and get to the ''drivewindowsclientinstall'' section, where you have to set the ''enabled'' property to ''true''.<br />
<br />
[[File:Drive_Update.png|500px|thumb|left|Drive Update Info]]<br />
<br />
===== Custom branded apps =====<br />
<br />
OX Drive for Windows can be purchased with a custom theming. In such cases, the according binary files need to be installed on the middleware servers. Instead of the ''open-xchange-drive-client-windows-generic'' package, a package containing the branded binaries will be provided as ''open-xchange-drive-client-windows-<brand-name>'' and needs to be installed. You MUST then set the property ''com.openexchange.drive.update.branding'' in ''/opt/open-xchange/etc/drive-client-windows.properties'' to ''<brand-name>'' accordingly.<br />
<br />
It is also possible to provide multiple brands of the app via the same OX App Suite deployment, multiple ''open-xchange-drive-client-windows-<brand-name>'' packages can be installed in parallel. Which brand is available for a certain user is determined by the ''com.openexchange.drive.update.branding'' property, which can be overwritten via [[ConfigCascade|Config Cascade]] therefore.<br />
<br />
App brands can be managed via command line tools. The tool ''/opt/open-xchange/sbin/listdriveclients'' lists all installed brands. After updating a certain brand by installing a newer package version or installing an additional one, no server restart is necessary. Instead ''/opt/open-xchange/sbin/reloaddriveclients'' can be executed to refresh the internal server state.<br />
<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
If not already done, add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=rhelname|pc2v=RHEL7|backend}}<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=rhelname|pc2v=RHEL7|drive-help}}<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=rhelname|pc2v=RHEL7|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive-help/updates}}<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=rhelname|pc2v=RHEL7|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive-client-windows}}<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=rhelname|pc2v=RHEL7|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive}}<br />
and run<br />
<br />
$ yum update<br />
$ yum install open-xchange-drive open-xchange-drive-comet open-xchange-drive-restricted open-xchange-drive-client-windows<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
If not already done, add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=debianname|pc2v=DebianStretch|backend}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=debianname|pc2v=DebianStretch|drive-help}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=debianname|pc2v=DebianStretch|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|backend/updates|drive|updater}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=debianname|pc2v=DebianStretch|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive-help/updates}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=debianname|pc2v=DebianStretch|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive-client-windows}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=debianname|pc2v=DebianStretch|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive}}<br />
<br />
and run<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-drive open-xchange-drive-comet open-xchange-drive-restricted open-xchange-drive-client-windows<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
If not already done, add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=debianname|pc2v=DebianBuster|backend}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=debianname|pc2v=DebianBuster|drive-help}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=debianname|pc2v=DebianBuster|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|backend/updates|drive|updater}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=debianname|pc2v=DebianBuster|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive-help/updates}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/drive/stable|pc2n=debianname|pc2v=DebianBuster|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive-client-windows}}<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/appsuite/stable|pc2n=debianname|pc2v=DebianBuster|pc3n=ldbaccount|pc3v=LDBUSER:LDBPASSWORD|drive}}<br />
and run<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-drive open-xchange-drive-comet open-xchange-drive-restricted open-xchange-drive-client-windows<br />
<br />
<br />
=== OX Server Edition / App Suite for UCS ===<br />
<br />
If you have purchased the OX Server Edition / App Suite for UCS, the OX Drive is part of the offering and after the installation/update available. The necessary package for push, is available with a valid license and can be installed via the Univention App Center.<br />
<br />
* The new license is already registered at the LDB after purchase.<br />
* Log on at the Univention Management Console (UMC)<br />
* Make sure, that the correct LDB account has been selected in the UMC module "OX License Management"<br />
* Click on "App Center" at the UMC und switch to the tab "Repository Settings"<br />
* Within the component list, select "Open-Xchange Drive" and press the "Install" button<br />
<br />
== Configuration ==<br />
<br />
The following gives an overview about the most important settings to enable file synchronization via OX Drive, especially when it comes to real-time Push notifications for the apps.<br />
<br />
All settings regarding the OX Drive backend component are located in the configuration file ''drive.properties''. The default configuration should be sufficient for a basic "up-and-running" setup (with the exception of defining the Push certificates and API keys for cloud-based app notifications, see next chapters). Please refer to the inline documentation of the configuration file for more advanced options. <br />
<br />
Most properties located in configuration file ''drive.properties'' are now config-cascade aware. Therefore all settings can be set per user, per contextSet or per context. If there is no configuration per user, per contextSet or per context, the configuration in ''drive.properties'' will still be used as server-wide fallback.<br />
<br />
When installing from scratch, the configuration file ''drive.properties'' is no longer shipped, as the default values are used. For more details, find an overview of configurable settings [https://documentation.open-xchange.com/7.10.5/middleware/administration.html here].<br />
<br />
If no Push certificates and API keys are defined but cloud-based app notifications are enabled, the Push certificates and API keys from package ''open-xchange-drive-restricted'' are used as fallback, if this package is installed.<br />
<br />
=== Push via Firebase Cloud Messaging (FCM) ===<br />
<br />
The OX Drive application for Android devices is able to receive Push notifications from the Open-Xchange Server via [https://firebase.google.com/docs/cloud-messaging/ Firebase Cloud Messaging (FCM)]. To issue those Push messages, the backend needs to be provided with a suitable API key for the corresponding Android app application. The API key is included in the restricted components installation package ''open-xchange-drive-restricted'' for the "vanilla" Android app. Alternatively, the key can be specified directly in the ''drive.properties'' configuration file:<br />
<br />
# Specifies the API key of the server application. Required if <br />
# "com.openexchange.drive.events.gcm.enabled" is "true" and the package <br />
# containing the restricted drive components is not installed.<br />
com.openexchange.drive.events.gcm.key=<br />
<br />
Push via FCM can be enabled via:<br />
<br />
# Enables or disables push event notifications to apps using the Google<br />
# Firebase Cloud Messaging (FCM) service. This requires a valid configuration for the <br />
# FCM API key, see options below. Defaults to "false". <br />
com.openexchange.drive.events.gcm.enabled=true<br />
<br />
Please note that push via FCM needs to be enabled explicitly - also if ''open-xchange-drive-restricted'' is installed.<br />
<br />
=== Push via Apple Push Notification service (APNs) ===<br />
<br />
The OX Drive application for iOS and Mac OS devices is able to receive Push notifications from the Open-Xchange Server via [http://developer.apple.com/library/IOS/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html Apple Push Notification service (APNs)]. To issue those Push messages, the backend needs to be provided with a suitable keystore container file (PKCS #12) containing the APNs certificate and keys. Note that the Mac OS desktop app and the iOS mobile app are served separately with different certificates, so that both needs to be configured independently. The required certificates are already included in the restricted components installation package ''open-xchange-drive-restricted'' for the "vanilla" iOS and Mac OS applications. Therefore no additional configuration is needed. Alternatively, an external certificate can be specified directly in the ''drive.properties'' configuration file (the following only shows the setup for iOS). First, the path to the PKCS #12 container file needs to be specified at:<br />
<br />
# Specifies the path to the local keystore file (PKCS #12) containing the APNS <br />
# certificate and keys for the iOS application, e.g. <br />
# "/opt/open-xchange/etc/drive-apns.p12". Required if <br />
# "com.openexchange.drive.events.apn.enabled" is "true" and the package <br />
# containing the restricted drive components is not installed.<br />
com.openexchange.drive.events.apn.ios.keystore=<br />
<br />
This file is opened by the backend using the password as supplied via: <br />
<br />
# Specifies the password used when creating the referenced keystore containing<br />
# the certificate of the iOS application. Note that blank or null passwords <br />
# are in violation of the PKCS #12 specifications. Required if <br />
# "com.openexchange.drive.events.apn.enabled" is "true" and the package <br />
# containing the restricted drive components is not installed.<br />
com.openexchange.drive.events.apn.ios.password=<br />
<br />
Configuration also allows to switch between development and production environments, however, this setting should be ''true'' normally:<br />
<br />
# Indicates which APNS service is used when sending push notifications to iOS<br />
# devices. A value of "true" will use the production service, a value of <br />
# "false" the sandbox service. Defaults to "true".<br />
com.openexchange.drive.events.apn.ios.production=true<br />
<br />
The OX backend contacts the APNs servers from time to time to get informed about apps no longer reachable apps where the applications was uninstalled. The interval can be defined with the following setting: <br />
<br />
# Configures the interval between queries to the APN feedback service for the<br />
# subscribed iOS devices. The value can be defined using units of measurement: <br />
# "D" (=days), "W" (=weeks) and "H" (=hours). Defaults to "1D" (one day). <br />
# Leaving this parameter empty disables the feedback queries on this node. <br />
# Since each received feedback is processed cluster-wide, only one node in the <br />
# cluster should be enabled here. <br />
com.openexchange.drive.events.apn.ios.feedbackQueryInterval=1D<br />
<br />
Please note that if you have multiple backend nodes in the cluster, it's recommended that only one node is configured to contact the feedback query service. Finally, Push notifications via APN for iOS can be enabled via:<br />
<br />
# Enables or disables push event notifications to apps using the Apple Push<br />
# Notification service (APNS) for Mac OS devices. This requires a valid <br />
# configuration for the APNS certificate and keys, see either options below, <br />
# or install the restricted components packages for drive. Defaults to <br />
# "false". <br />
com.openexchange.drive.events.apn.ios.enabled=false<br />
<br />
As stated above, configuration for Push notifications via APN for the Mac OS desktop application is configured similarly, the relevant options are prefixed with ''com.openexchange.drive.events.apn.macos''. Please also note that push via APNS needs to be enabled explicitly - also if ''open-xchange-drive-restricted'' is installed.<br />
<br />
=== Further Configuration ===<br />
<br />
* The backend component of OX Drive supplies the apps with various hyperlinks, e.g. deep-links to files and folders in the groupware webinterface or an URL to the online help. In order to point to the suitable web interface, please ensure that the correct UI web path is configured via ''com.openexchange.UIWebPath'' located in ''server.properties''.<br />
* As already mentioned above, the backend relies on the [https://grizzly.java.net/comet.html Comet] component of the Grizzly http connector for sending push notifications to the desktop apps. Therefore, ''com.openexchange.http.grizzly.hasCometEnabled'' needs to be set to ''true'' in ''grizzly.properties''.<br />
<br />
= Enabling OX Drive for Users =<br />
<br />
OX Drive is enabled for all users that have the capability ''com.openexchange.capability.drive''. Please note that users need to have the ''infostore'' permission set to use drive. So the users that have ''drive'' enabled must be a subset of those users with ''infostore'' permission. Since 7.6.0 we enforce this via the default configuration. You can also enable this cabaility globally with the following setting in the ''drive.properties'' configuration file:<br />
<br />
# Enables or disables the "drive" module capability globally. The capability<br />
# can also be set more fine-grained via config cascade. Per default it is only<br />
# enabled for users that have the "infostore" permission set. This is configured<br />
# in /opt/open-xchange/etc/contextSets/drive.yml.<br />
com.openexchange.capability.drive=false<br />
<br />
More details about capabilities can be found at [[AppSuite:Capabilities]]. Furthermore, this capability can be defined in a more granular way using the Config Cascade as described at [[ConfigCascade]].<br />
<br />
= Installation of the Apps =<br />
<br />
== Installation of Mac OS X Desktop App ==<br />
<br />
The OX Drive for Mac OS X is provided via the Apple App Store:<br />
<br />
* https://itunes.apple.com/app/ox-drive/id818195014?mt=12<br />
<br />
=== Enabling the Finder Extension on Mac OS X ===<br />
<br />
In order to be able to use the Finder to open documents or share objects on a Mac OS X workstation, you need to enable the Drive Finder Extension.<br />
<br />
How to enable the Drive Finder Extension on a Mac OS X workstation:<br />
# Open the System Preferences. In the System Preferences window, select Extensions.<br />
# In the Extensions window, select Finder. Enable Drive Finder Extension.<br />
<br />
== Installation of Windows Desktop App ==<br />
<br />
See [[AppSuite:OX_Drive#OX_Drive_for_Windows|OX Drive for Windows]].<br />
<br />
== Installation of Mobile Apps ==<br />
<br />
The OX Drive App is available via the different App Stores:<br />
<br />
* iOS: https://itunes.apple.com/app/ox-drive/id798570177?mt=8<br />
<br />
* Android: https://play.google.com/store/apps/details?id=com.openexchange.drive.vanilla<br />
<br />
== App Configuration and Deployment ==<br />
<br />
The user needs to enter the server URL and provide his username and password to log in. Afterwards, app-specific synchronisation settings may be configured. More information is available in the online documentation which is accessible from within the app.<br />
<br />
After the initial synchronization is completed, all further changes are synchronized instantly across all devices.<br />
<br />
'''Note:''' Version v7.10.3 of the OX App Suite introduced optional multifactor authentication, see https://documentation.open-xchange.com/7.10.3/middleware/security_and_encryption/multifactor_authentication.html. <br />
The OX Drive apps do not support this yet. If activated on the server, you will not be able to connect with the apps anymore.<br />
<br />
<br />
<!-- = FAQ =<br />
<br />
You will find it under [https://oxpedia.org/wiki/index.php?title=Product_FAQ]. --></div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=25803AppSuite:Mobile API Facade2021-03-04T14:01:43Z<p>Michael.koch: /* Introduction */</p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.10.3.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.10.3<br />
|v1.8.x<br />
|stable-1.8<br />
|-<br />
|v7.10.4<br />
|v1.10.x<br />
|stable-1.10<br />
|-<br />
|v7.10.5<br />
|v1.12.x<br />
|stable-1.12<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.12/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.10.5 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Re-reading configuration from disk ==<br />
<br />
All configuration properties which are marked as reloadable can be configured without restarting the Mobile API Facade by using the <code>reloadconfiguration</code> utility. As the Mobile API Facade runs in its own process you need to tell <code>reloadconfiguration</code> to connect it instead of the Middleware. This can be done by:<br />
<br />
reloadconfiguration -p 1100<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.<br />
<br />
== Configuration of Mobile API Facade behavior ==<br />
<br />
This can be configured in facade.properties and mobile-api-facade-config.yml.<br />
<br />
=== Multiple host names ===<br />
<br />
The Mobile API Facade supports multiple host names on one instance, that are configured differently. These can be configured in mobile-api-facade-config.yml. This file in YAML format. Beware that indentation is really important in YAML.<br />
<br />
<pre><br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
...<br />
</pre><br />
<br />
The allowed properties are the same as allowed in facade.properties. You can find a complete list at https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
=== Custom properties ===<br />
<br />
It's possible to configure custom properties to be returned to clients. This is usefull to return special configurations to your clients. Custom properties are key/attribute values under the "customProperties" key.<br />
<br />
Example:<br />
<br />
<pre><br />
appsuite.example.com:<br />
customProperties:<br />
custom.specific.property: true<br />
custom.specific.property.2: "value"<br />
</pre><br />
<br />
=== Client specific configuration ===<br />
<br />
By implementing the client specific feature the above configuration possibilities got extended. We now have to use YAML lists for each host name. This allows to add multiple different configurations to one host configuration. You can add a list of matchers in the "matches" key to a host configuration. The first "matches" entry for a given host name that matches to the given User-Agent header sent by the client will be used. Further evaluation is not done at runtime. Configuration properties need to be on the same indentation level as the "matches" key. These host configurations inherit a default configuration from the configuration in facade.properties. Otherwise they need to be complete. They don't inherit configuration properties from other places.<br />
<br />
<pre><br />
[ host name ]:<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
...<br />
</pre><br />
<br />
Example:<br />
<br />
The iOS version supported in the beginning was iOS 9 and up. At some point in time due to technical reasons support for iOS 9 and 10 was dropped and the application supported iOS 11 and up. When you now want to update all installations on iOS 11 and up to the latest app version but leave old installations in intact you can use the force upgrade feature of the apps. Keep in mind that the matching process stops when the first match is found. If no match was found the default configuration is used.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.minimumClientVersion.ios: '11.2'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
=== Matchers ===<br />
<br />
Several matchers are possible. All match against values in the User-Agent header.<br />
<br />
- platform: This matcher allows it to match only for "Android" or "iOS"<br />
- version: This matcher checks against the application version. This is not the marketing version displayed in the About screen of the application.<br />
- osVersion: The version of the operating system on the client device<br />
- device: This matches against the exact device model.<br />
brand: This matches against the brand name of the app. By default this is "OpenXchange". Versions specifically branded for customers have a unique brand name.<br />
<br />
=== Version matching ===<br />
<br />
For the matchers 'version' and 'osVersion' we allow to match concrete versions or version ranges. When adding a matcher with a concrete version, just put the version number as string attribute after the matcher name.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
When matching a range we are always matching inclusive. You can either use a closed range, a range with a given start value and an end value, or an open range with either a start value or an end value. Keep in mind that to match all versions lower then '11.0' you need use a probably non-existing version number like '10.99'.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: true<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
== Debugging ==<br />
<br />
In order to check whether installation went successful you may want to run<br />
<br />
$ curl -v http://localhost:8007/services/api-facade/v1/version<br />
<br />
That should return a JSON string like this:<br />
<br />
<code><br />
{"version":"1.12.0","commitHash":"2473d87bbda63cabb4fda2f00287108e9644b5b5","middlewareVersion":"7.10.5-Rev5"}<br />
</code></div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=25802AppSuite:Mobile API Facade2021-03-04T14:01:22Z<p>Michael.koch: /* Mobile API Facade API */</p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.10.3.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.10.3<br />
|v1.8.x<br />
|stable-1.8<br />
|-<br />
|v7.10.4<br />
|v1.10.x<br />
|stable-1.10<br />
|-<br />
|v7.10.5<br />
|v1.12.x<br />
|stable-1.12<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.12/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.10.5 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/mobile-api-facade/config/1.12/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Re-reading configuration from disk ==<br />
<br />
All configuration properties which are marked as reloadable can be configured without restarting the Mobile API Facade by using the <code>reloadconfiguration</code> utility. As the Mobile API Facade runs in its own process you need to tell <code>reloadconfiguration</code> to connect it instead of the Middleware. This can be done by:<br />
<br />
reloadconfiguration -p 1100<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.<br />
<br />
== Configuration of Mobile API Facade behavior ==<br />
<br />
This can be configured in facade.properties and mobile-api-facade-config.yml.<br />
<br />
=== Multiple host names ===<br />
<br />
The Mobile API Facade supports multiple host names on one instance, that are configured differently. These can be configured in mobile-api-facade-config.yml. This file in YAML format. Beware that indentation is really important in YAML.<br />
<br />
<pre><br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
...<br />
</pre><br />
<br />
The allowed properties are the same as allowed in facade.properties. You can find a complete list at https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
=== Custom properties ===<br />
<br />
It's possible to configure custom properties to be returned to clients. This is usefull to return special configurations to your clients. Custom properties are key/attribute values under the "customProperties" key.<br />
<br />
Example:<br />
<br />
<pre><br />
appsuite.example.com:<br />
customProperties:<br />
custom.specific.property: true<br />
custom.specific.property.2: "value"<br />
</pre><br />
<br />
=== Client specific configuration ===<br />
<br />
By implementing the client specific feature the above configuration possibilities got extended. We now have to use YAML lists for each host name. This allows to add multiple different configurations to one host configuration. You can add a list of matchers in the "matches" key to a host configuration. The first "matches" entry for a given host name that matches to the given User-Agent header sent by the client will be used. Further evaluation is not done at runtime. Configuration properties need to be on the same indentation level as the "matches" key. These host configurations inherit a default configuration from the configuration in facade.properties. Otherwise they need to be complete. They don't inherit configuration properties from other places.<br />
<br />
<pre><br />
[ host name ]:<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
...<br />
</pre><br />
<br />
Example:<br />
<br />
The iOS version supported in the beginning was iOS 9 and up. At some point in time due to technical reasons support for iOS 9 and 10 was dropped and the application supported iOS 11 and up. When you now want to update all installations on iOS 11 and up to the latest app version but leave old installations in intact you can use the force upgrade feature of the apps. Keep in mind that the matching process stops when the first match is found. If no match was found the default configuration is used.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.minimumClientVersion.ios: '11.2'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
=== Matchers ===<br />
<br />
Several matchers are possible. All match against values in the User-Agent header.<br />
<br />
- platform: This matcher allows it to match only for "Android" or "iOS"<br />
- version: This matcher checks against the application version. This is not the marketing version displayed in the About screen of the application.<br />
- osVersion: The version of the operating system on the client device<br />
- device: This matches against the exact device model.<br />
brand: This matches against the brand name of the app. By default this is "OpenXchange". Versions specifically branded for customers have a unique brand name.<br />
<br />
=== Version matching ===<br />
<br />
For the matchers 'version' and 'osVersion' we allow to match concrete versions or version ranges. When adding a matcher with a concrete version, just put the version number as string attribute after the matcher name.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
When matching a range we are always matching inclusive. You can either use a closed range, a range with a given start value and an end value, or an open range with either a start value or an end value. Keep in mind that to match all versions lower then '11.0' you need use a probably non-existing version number like '10.99'.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: true<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
== Debugging ==<br />
<br />
In order to check whether installation went successful you may want to run<br />
<br />
$ curl -v http://localhost:8007/services/api-facade/v1/version<br />
<br />
That should return a JSON string like this:<br />
<br />
<code><br />
{"version":"1.12.0","commitHash":"2473d87bbda63cabb4fda2f00287108e9644b5b5","middlewareVersion":"7.10.5-Rev5"}<br />
</code></div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=25800AppSuite:Mobile API Facade2021-03-04T13:58:09Z<p>Michael.koch: /* Rereading configuration from disk */</p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.10.3.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.10.3<br />
|v1.8.x<br />
|stable-1.8<br />
|-<br />
|v7.10.4<br />
|v1.10.x<br />
|stable-1.10<br />
|-<br />
|v7.10.5<br />
|v1.12.x<br />
|stable-1.12<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.12.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.10.5 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/mobile-api-facade/config/1.12/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Re-reading configuration from disk ==<br />
<br />
All configuration properties which are marked as reloadable can be configured without restarting the Mobile API Facade by using the <code>reloadconfiguration</code> utility. As the Mobile API Facade runs in its own process you need to tell <code>reloadconfiguration</code> to connect it instead of the Middleware. This can be done by:<br />
<br />
reloadconfiguration -p 1100<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.<br />
<br />
== Configuration of Mobile API Facade behavior ==<br />
<br />
This can be configured in facade.properties and mobile-api-facade-config.yml.<br />
<br />
=== Multiple host names ===<br />
<br />
The Mobile API Facade supports multiple host names on one instance, that are configured differently. These can be configured in mobile-api-facade-config.yml. This file in YAML format. Beware that indentation is really important in YAML.<br />
<br />
<pre><br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
...<br />
</pre><br />
<br />
The allowed properties are the same as allowed in facade.properties. You can find a complete list at https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
=== Custom properties ===<br />
<br />
It's possible to configure custom properties to be returned to clients. This is usefull to return special configurations to your clients. Custom properties are key/attribute values under the "customProperties" key.<br />
<br />
Example:<br />
<br />
<pre><br />
appsuite.example.com:<br />
customProperties:<br />
custom.specific.property: true<br />
custom.specific.property.2: "value"<br />
</pre><br />
<br />
=== Client specific configuration ===<br />
<br />
By implementing the client specific feature the above configuration possibilities got extended. We now have to use YAML lists for each host name. This allows to add multiple different configurations to one host configuration. You can add a list of matchers in the "matches" key to a host configuration. The first "matches" entry for a given host name that matches to the given User-Agent header sent by the client will be used. Further evaluation is not done at runtime. Configuration properties need to be on the same indentation level as the "matches" key. These host configurations inherit a default configuration from the configuration in facade.properties. Otherwise they need to be complete. They don't inherit configuration properties from other places.<br />
<br />
<pre><br />
[ host name ]:<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
...<br />
</pre><br />
<br />
Example:<br />
<br />
The iOS version supported in the beginning was iOS 9 and up. At some point in time due to technical reasons support for iOS 9 and 10 was dropped and the application supported iOS 11 and up. When you now want to update all installations on iOS 11 and up to the latest app version but leave old installations in intact you can use the force upgrade feature of the apps. Keep in mind that the matching process stops when the first match is found. If no match was found the default configuration is used.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.minimumClientVersion.ios: '11.2'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
=== Matchers ===<br />
<br />
Several matchers are possible. All match against values in the User-Agent header.<br />
<br />
- platform: This matcher allows it to match only for "Android" or "iOS"<br />
- version: This matcher checks against the application version. This is not the marketing version displayed in the About screen of the application.<br />
- osVersion: The version of the operating system on the client device<br />
- device: This matches against the exact device model.<br />
brand: This matches against the brand name of the app. By default this is "OpenXchange". Versions specifically branded for customers have a unique brand name.<br />
<br />
=== Version matching ===<br />
<br />
For the matchers 'version' and 'osVersion' we allow to match concrete versions or version ranges. When adding a matcher with a concrete version, just put the version number as string attribute after the matcher name.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
When matching a range we are always matching inclusive. You can either use a closed range, a range with a given start value and an end value, or an open range with either a start value or an end value. Keep in mind that to match all versions lower then '11.0' you need use a probably non-existing version number like '10.99'.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: true<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
== Debugging ==<br />
<br />
In order to check whether installation went successful you may want to run<br />
<br />
$ curl -v http://localhost:8007/services/api-facade/v1/version<br />
<br />
That should return a JSON string like this:<br />
<br />
<code><br />
{"version":"1.12.0","commitHash":"2473d87bbda63cabb4fda2f00287108e9644b5b5","middlewareVersion":"7.10.5-Rev5"}<br />
</code></div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=25799AppSuite:Mobile API Facade2021-03-04T13:56:23Z<p>Michael.koch: </p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.10.3.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.10.3<br />
|v1.8.x<br />
|stable-1.8<br />
|-<br />
|v7.10.4<br />
|v1.10.x<br />
|stable-1.10<br />
|-<br />
|v7.10.5<br />
|v1.12.x<br />
|stable-1.12<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.12.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.10.5 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.12|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/mobile-api-facade/config/1.12/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Rereading configuration from disk ==<br />
<br />
All configuration properties which are marked as reloadable can be configured without restarting the Mobile API Facade by using the <code>reloadconfiguration</code> utility. As the Mobile API Facade runs in its own process you need to tell <code>reloadconfiguration</code> to connect it instead of the Middleware. This can be done by:<br />
<br />
reloadconfiguration -p 1100<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.<br />
<br />
== Configuration of Mobile API Facade behavior ==<br />
<br />
This can be configured in facade.properties and mobile-api-facade-config.yml.<br />
<br />
=== Multiple host names ===<br />
<br />
The Mobile API Facade supports multiple host names on one instance, that are configured differently. These can be configured in mobile-api-facade-config.yml. This file in YAML format. Beware that indentation is really important in YAML.<br />
<br />
<pre><br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
...<br />
</pre><br />
<br />
The allowed properties are the same as allowed in facade.properties. You can find a complete list at https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
=== Custom properties ===<br />
<br />
It's possible to configure custom properties to be returned to clients. This is usefull to return special configurations to your clients. Custom properties are key/attribute values under the "customProperties" key.<br />
<br />
Example:<br />
<br />
<pre><br />
appsuite.example.com:<br />
customProperties:<br />
custom.specific.property: true<br />
custom.specific.property.2: "value"<br />
</pre><br />
<br />
=== Client specific configuration ===<br />
<br />
By implementing the client specific feature the above configuration possibilities got extended. We now have to use YAML lists for each host name. This allows to add multiple different configurations to one host configuration. You can add a list of matchers in the "matches" key to a host configuration. The first "matches" entry for a given host name that matches to the given User-Agent header sent by the client will be used. Further evaluation is not done at runtime. Configuration properties need to be on the same indentation level as the "matches" key. These host configurations inherit a default configuration from the configuration in facade.properties. Otherwise they need to be complete. They don't inherit configuration properties from other places.<br />
<br />
<pre><br />
[ host name ]:<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
...<br />
</pre><br />
<br />
Example:<br />
<br />
The iOS version supported in the beginning was iOS 9 and up. At some point in time due to technical reasons support for iOS 9 and 10 was dropped and the application supported iOS 11 and up. When you now want to update all installations on iOS 11 and up to the latest app version but leave old installations in intact you can use the force upgrade feature of the apps. Keep in mind that the matching process stops when the first match is found. If no match was found the default configuration is used.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.minimumClientVersion.ios: '11.2'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
=== Matchers ===<br />
<br />
Several matchers are possible. All match against values in the User-Agent header.<br />
<br />
- platform: This matcher allows it to match only for "Android" or "iOS"<br />
- version: This matcher checks against the application version. This is not the marketing version displayed in the About screen of the application.<br />
- osVersion: The version of the operating system on the client device<br />
- device: This matches against the exact device model.<br />
brand: This matches against the brand name of the app. By default this is "OpenXchange". Versions specifically branded for customers have a unique brand name.<br />
<br />
=== Version matching ===<br />
<br />
For the matchers 'version' and 'osVersion' we allow to match concrete versions or version ranges. When adding a matcher with a concrete version, just put the version number as string attribute after the matcher name.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
When matching a range we are always matching inclusive. You can either use a closed range, a range with a given start value and an end value, or an open range with either a start value or an end value. Keep in mind that to match all versions lower then '11.0' you need use a probably non-existing version number like '10.99'.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: true<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
== Debugging ==<br />
<br />
In order to check whether installation went successful you may want to run<br />
<br />
$ curl -v http://localhost:8007/services/api-facade/v1/version<br />
<br />
That should return a JSON string like this:<br />
<br />
<code><br />
{"version":"1.12.0","commitHash":"2473d87bbda63cabb4fda2f00287108e9644b5b5","middlewareVersion":"7.10.5-Rev5"}<br />
</code></div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=25313AppSuite:Mobile API Facade2020-04-22T14:43:12Z<p>Michael.koch: </p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.8.4<br />
|v1.0.x<br />
|stable-1.0<br />
|-<br />
|v7.10.1<br />
|v1.4.x<br />
|stable-1.4<br />
|-<br />
|v7.10.2<br />
|v1.6.x<br />
|stable-1.6<br />
|-<br />
|v7.10.3<br />
|v1.8.x<br />
|stable-1.8<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.10.3 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.8.x and 7.10.x =<br />
<br />
If you want to update an older version of OX Mobile API Facade to the latest maintenance release, add the following entry to <tt>/etc/apt/sources.list.d/open-xchange.list</tt>. Replace VERSION with the link for the stream of versions as listed above in the version matrix (e.g. stable-1.8) or a specific version you are using (e.g. 1.8.3).<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Rereading configuration from disk ==<br />
<br />
All configuration properties which are marked as reloadable can be configured without restarting the Mobile API Facade by using the <code>reloadconfiguration</code> utility. As the Mobile API Facade runs in its own process you need to tell <code>reloadconfiguration</code> to connect it instead of the Middleware. This can be done by:<br />
<br />
reloadconfiguration -p 1100<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.<br />
<br />
== Configuration of Mobile API Facade behavior ==<br />
<br />
This can be configured in facade.properties and mobile-api-facade-config.yml.<br />
<br />
=== Multiple host names ===<br />
<br />
The Mobile API Facade supports multiple host names on one instance, that are configured differently. These can be configured in mobile-api-facade-config.yml. This file in YAML format. Beware that indentation is really important in YAML.<br />
<br />
<pre><br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
...<br />
</pre><br />
<br />
The allowed properties are the same as allowed in facade.properties. You can find a complete list at https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
=== Custom properties ===<br />
<br />
It's possible to configure custom properties to be returned to clients. This is usefull to return special configurations to your clients. Custom properties are key/attribute values under the "customProperties" key.<br />
<br />
Example:<br />
<br />
<pre><br />
appsuite.example.com:<br />
customProperties:<br />
custom.specific.property: true<br />
custom.specific.property.2: "value"<br />
</pre><br />
<br />
=== Client specific configuration ===<br />
<br />
By implementing the client specific feature the above configuration possibilities got extended. We now have to use YAML lists for each host name. This allows to add multiple different configurations to one host configuration. You can add a list of matchers in the "matches" key to a host configuration. The first "matches" entry for a given host name that matches to the given User-Agent header sent by the client will be used. Further evaluation is not done at runtime. Configuration properties need to be on the same indentation level as the "matches" key. These host configurations inherit a default configuration from the configuration in facade.properties. Otherwise they need to be complete. They don't inherit configuration properties from other places.<br />
<br />
<pre><br />
[ host name ]:<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
...<br />
</pre><br />
<br />
Example:<br />
<br />
The iOS version supported in the beginning was iOS 9 and up. At some point in time due to technical reasons support for iOS 9 and 10 was dropped and the application supported iOS 11 and up. When you now want to update all installations on iOS 11 and up to the latest app version but leave old installations in intact you can use the force upgrade feature of the apps. Keep in mind that the matching process stops when the first match is found. If no match was found the default configuration is used.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.minimumClientVersion.ios: '11.2'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
=== Matchers ===<br />
<br />
Several matchers are possible. All match against values in the User-Agent header.<br />
<br />
- platform: This matcher allows it to match only for "Android" or "iOS"<br />
- version: This matcher checks against the application version. This is not the marketing version displayed in the About screen of the application.<br />
- osVersion: The version of the operating system on the client device<br />
- device: This matches against the exact device model.<br />
brand: This matches against the brand name of the app. By default this is "OpenXchange". Versions specifically branded for customers have a unique brand name.<br />
<br />
=== Version matching ===<br />
<br />
For the matchers 'version' and 'osVersion' we allow to match concrete versions or version ranges. When adding a matcher with a concrete version, just put the version number as string attribute after the matcher name.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
When matching a range we are always matching inclusive. You can either use a closed range, a range with a given start value and an end value, or an open range with either a start value or an end value. Keep in mind that to match all versions lower then '11.0' you need use a probably non-existing version number like '10.99'.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: true<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
== Debugging ==<br />
<br />
In order to check whether installation went successful you may want to run<br />
<br />
$ curl -v http://localhost:8007/services/api-facade/v1/version<br />
<br />
That should return a JSON string like this:<br />
<br />
<code><br />
{"version":"1.6.8","commitHash":"9e90d6072407b73c3e05b86ce724962af1a3de61","middlewareVersion":"7.10.2-Rev15"}<br />
</code></div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=25142AppSuite:Mobile API Facade2019-12-05T12:03:06Z<p>Michael.koch: </p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.8.4<br />
|v1.0.x<br />
|stable-1.0<br />
|-<br />
|v7.10.0<br />
|v1.2.x<br />
|stable-1.2<br />
|-<br />
|v7.10.1<br />
|v1.4.x<br />
|stable-1.4<br />
|-<br />
|v7.10.2<br />
|v1.6.x<br />
|stable-1.6<br />
|-<br />
|v7.10.3<br />
|v1.8.x<br />
|stable-1.8<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.10.3 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.8|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.8.x and 7.10.x =<br />
<br />
If you want to update an older version of OX Mobile API Facade to the latest maintenance release, add the following entry to <tt>/etc/apt/sources.list.d/open-xchange.list</tt>. Replace VERSION with the link for the stream of versions as listed above in the version matrix (e.g. stable-1.2) or a specific version you are using (e.g. 1.2.3).<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 10.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianBuster|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Rereading configuration from disk ==<br />
<br />
All configuration properties which are marked as reloadable can be configured without restarting the Mobile API Facade by using the <code>reloadconfiguration</code> utility. As the Mobile API Facade runs in its own process you need to tell <code>reloadconfiguration</code> to connect it instead of the Middleware. This can be done by:<br />
<br />
reloadconfiguration -p 1100<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.<br />
<br />
== Configuration of Mobile API Facade behavior ==<br />
<br />
This can be configured in facade.properties and mobile-api-facade-config.yml.<br />
<br />
=== Multiple host names ===<br />
<br />
The Mobile API Facade supports multiple host names on one instance, that are configured differently. These can be configured in mobile-api-facade-config.yml. This file in YAML format. Beware that indentation is really important in YAML.<br />
<br />
<pre><br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
[ host name ]:<br />
[ properties, you want to configure ]<br />
<br />
...<br />
</pre><br />
<br />
The allowed properties are the same as allowed in facade.properties. You can find a complete list at https://documentation.open-xchange.com/components/mobile-api-facade/config/1.8/.<br />
<br />
=== Custom properties ===<br />
<br />
It's possible to configure custom properties to be returned to clients. This is usefull to return special configurations to your clients. Custom properties are key/attribute values under the "customProperties" key.<br />
<br />
Example:<br />
<br />
<pre><br />
appsuite.example.com:<br />
customProperties:<br />
custom.specific.property: true<br />
custom.specific.property.2: "value"<br />
</pre><br />
<br />
=== Client specific configuration ===<br />
<br />
By implementing the client specific feature the above configuration possibilities got extended. We now have to use YAML lists for each host name. This allows to add multiple different configurations to one host configuration. You can add a list of matchers in the "matches" key to a host configuration. The first "matches" entry for a given host name that matches to the given User-Agent header sent by the client will be used. Further evaluation is not done at runtime. Configuration properties need to be on the same indentation level as the "matches" key. These host configurations inherit a default configuration from the configuration in facade.properties. Otherwise they need to be complete. They don't inherit configuration properties from other places.<br />
<br />
<pre><br />
[ host name ]:<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
- matches:<br />
[ matchers, you want to match against ]<br />
[ properties, you want to configure ]<br />
...<br />
</pre><br />
<br />
Example:<br />
<br />
The iOS version supported in the beginning was iOS 9 and up. At some point in time due to technical reasons support for iOS 9 and 10 was dropped and the application supported iOS 11 and up. When you now want to update all installations on iOS 11 and up to the latest app version but leave old installations in intact you can use the force upgrade feature of the apps. Keep in mind that the matching process stops when the first match is found. If no match was found the default configuration is used.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.minimumClientVersion.ios: '11.2'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
brand: 'OpenXchange'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
=== Matchers ===<br />
<br />
Several matchers are possible. All match against values in the User-Agent header.<br />
<br />
- platform: This matcher allows it to match only for "Android" or "iOS"<br />
- version: This matcher checks against the application version. This is not the marketing version displayed in the About screen of the application.<br />
- osVersion: The version of the operating system on the client device<br />
- device: This matches against the exact device model.<br />
brand: This matches against the brand name of the app. By default this is "OpenXchange". Versions specifically branded for customers have a unique brand name.<br />
<br />
=== Version matching ===<br />
<br />
For the matchers 'version' and 'osVersion' we allow to match concrete versions or version ranges. When adding a matcher with a concrete version, just put the version number as string attribute after the matcher name.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre><br />
<br />
When matching a range we are always matching inclusive. You can either use a closed range, a range with a given start value and an end value, or an open range with either a start value or an end value. Keep in mind that to match all versions lower then '11.0' you need use a probably non-existing version number like '10.99'.<br />
<br />
<pre><br />
appsuite.example.com:<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '11.0-'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: true<br />
- matches:<br />
platform: 'iOS'<br />
osVersion: '-10.99'<br />
com.openexchange.mobile.api.facade.returnNonPrimaryAccounts: false<br />
</pre></div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=24911AppSuite:Mobile API Facade2019-09-30T11:03:04Z<p>Michael.koch: /* Configuration Mobile API Facade */</p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.8.4<br />
|v1.0.x<br />
|stable-1.0<br />
|-<br />
|v7.10.0<br />
|v1.2.x<br />
|stable-1.2<br />
|-<br />
|v7.10.1<br />
|v1.4.x<br />
|stable-1.4<br />
|-<br />
|v7.10.2<br />
|v1.6.x<br />
|stable-1.6<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.10.2 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.8.x, 7.10.0 and 7.10.1 =<br />
<br />
If you want to update an older version of OX Mobile API Facade to the latest maintenance release, add the following entry to <tt>/etc/apt/sources.list.d/open-xchange.list</tt>. Replace VERSION with the link for the stream of versions as listed above in the version matrix (e.g. stable-1.2) or a specific version you are using (e.g. 1.2.3).<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Rereading configuration from disk ==<br />
<br />
All configuration properties which are marked as reloadable can be configured without restarting the Mobile API Facade by using the <code>reloadconfiguration</code> utility. As the Mobile API Facade runs in its own process you need to tell <code>reloadconfiguration</code> to connect it instead of the Middleware. This can be done by:<br />
<br />
reloadconfiguration -p 1100<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=24691AppSuite:Mobile API Facade2019-05-15T11:35:53Z<p>Michael.koch: </p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.8.4<br />
|v1.0.x<br />
|stable-1.0<br />
|-<br />
|v7.10.0<br />
|v1.2.x<br />
|stable-1.2<br />
|-<br />
|v7.10.1<br />
|v1.4.x<br />
|stable-1.4<br />
|-<br />
|v7.10.2<br />
|v1.6.x<br />
|stable-1.6<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.10.2 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.6|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.8.x, 7.10.0 and 7.10.1 =<br />
<br />
If you want to update an older version of OX Mobile API Facade to the latest maintenance release, add the following entry to <tt>/etc/apt/sources.list.d/open-xchange.list</tt>. Replace VERSION with the link for the stream of versions as listed above in the version matrix (e.g. stable-1.2) or a specific version you are using (e.g. 1.2.3).<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=24598AppSuite:Mobile API Facade2019-03-27T08:02:34Z<p>Michael.koch: </p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.8.4<br />
|v1.0.x<br />
|stable-1.0<br />
|-<br />
|v7.10.0<br />
|v1.2.x<br />
|stable-1.2<br />
|-<br />
|v7.10.1<br />
|v1.4.x<br />
|stable-1.4<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.10.1 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.8.x and 7.10.0 =<br />
<br />
If you want to update an older version of OX Mobile API Facade to the latest maintenance release, add the following entry to <tt>/etc/apt/sources.list.d/open-xchange.list</tt>. Replace VERSION with the link for the stream of versions as listed above in the version matrix (e.g. stable-1.2) or a specific version you are using (e.g. 1.2.3).<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=24597AppSuite:Mobile API Facade2019-03-27T08:01:17Z<p>Michael.koch: </p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== Version Matrix ==<br />
{|border="2" rules="all" align="left"><br />
|- <br />
|colspan=1|'''OX App Suite Core Version'''<br />
|colspan=1|'''Mobile API Facade Version'''<br />
|colspan=1|'''Version-Stream'''<br />
|-<br />
|v7.8.4<br />
|v1.0.x<br />
|stable-1.0<br />
|-<br />
|v7.10.0<br />
|v1.2.x<br />
|stable-1.2<br />
|-<br />
|v7.10.1<br />
|v1.4.x<br />
|stable-1.4<br />
|-<br />
|}<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.10.1 =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable-1.4|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite 7.8.x and 7.10.0 =<br />
<br />
If you want to update an older version of OX Mobile API Facade to the latest maintenance release, add the following entry to <tt>/etc/apt/sources.list.d/open-xchange.list</tt>. Replace VERSION with the link for the stream of versions as listed above (e.g. stable-1.2) or a specific version you are using (e.g. 1.2.3).<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 9.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=debianname|pc2v=DebianStretch|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/VERSION|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=23851AppSuite:Mobile API Facade2018-02-26T10:18:46Z<p>Michael.koch: </p>
<hr />
<div>= Mobile API Facade =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The Mobile API Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== Mobile API Facade API ==<br />
<br />
Further information about the Mobile API Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.8.x =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
Mobile API Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration Mobile API Facade =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=23715AppSuite:Mobile API Facade2017-10-16T08:38:46Z<p>Michael.koch: </p>
<hr />
<div>= OX Facade for Mobile =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== License information ==<br />
<br />
=== Used 3rd party licenses ===<br />
<br />
In addition to the 3rd party software [https://www.open-xchange.com/legal/licenses-ox-app-suite/ used by AppSuite], the Mobile API Facade uses to following libraries:<br />
<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Project Lombok (The MIT License]<br />
* [https://www.open-xchange.com/fileadmin/user_upload/images/portfolio/license/MIT_License_Generic.pdf Semver4J (The MIT License)]<br />
<br />
== Requirements ==<br />
<br />
The OX Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== OX Facade API ==<br />
<br />
Further information about the OX Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.8.x =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
OX Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration OX Facade for Mobile =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-middleware1.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-middleware2.example.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=23532AppSuite:Mobile API Facade2017-07-05T13:30:44Z<p>Michael.koch: </p>
<hr />
<div>= OX Facade for Mobile =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== Requirements ==<br />
<br />
The OX Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== OX Facade API ==<br />
<br />
Further information about the OX Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/1.0.0/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.8.x =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
OX Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration OX Facade for Mobile =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-dev-gw1.open-xchange.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-dev-gw2.open-xchange.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=23507AppSuite:Mobile API Facade2017-06-30T09:39:59Z<p>Michael.koch: </p>
<hr />
<div>= OX Facade for Mobile =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== Requirements ==<br />
<br />
The OX Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== OX Facade API ==<br />
<br />
Further information about the OX Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/develop/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.8.x =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
OX Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration OX Facade for Mobile =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-dev-gw1.open-xchange.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-dev-gw2.open-xchange.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.kochhttps://oxpedia.org/wiki/index.php?title=AppSuite:Mobile_API_Facade&diff=23506AppSuite:Mobile API Facade2017-06-30T08:39:25Z<p>Michael.koch: /* Introduction */</p>
<hr />
<div>{{Stability-experimental}}<br />
<br />
= OX Facade for Mobile =<br />
<br />
== General Information ==<br />
<br />
The Mobile API Facade is a server component that brings the new native mobile mail apps together with the OX App Suite. We’ve built the façade based on the technology used and proven in the OX App Suite middleware. The facade is developed in Java, utilizing the OSGI Framework.<br />
<br />
The Facade provides offline friendly HTTP interface by doing the work, the connections through the HTTP API, to the OX App Suite and providing only the data the offline capable clients need. In some cases multiple requests to the OX App Suite are combined into one for its clients.The facade also offers a method to tell the clients that information on the server haven’t changed since the last time the client asked for it. This reduces the amount of data to transmit to the clients under certain circumstances, especially important in mobile networks were bandwidth (and overall traffic) is limited. Thanks to facade some functionality can be shared among all clients and need only get implemented once. One example for this is the teaser text extraction, and HTML mail handling in general.The facade also provides a pluggable authentication system. In the default case, login request are just forwarded to the middleware. In more advanced use-cases, the login request is forwarded to IDM of the customer and an OX session is created from the access token from the IDM. For clients this is pretty straightforward.<br />
<br />
== Requirements ==<br />
<br />
The OX Facade has to be installed alongside an OX App Suite installation. It requires at least OX App Suite v7.8.4.<br />
<br />
== OX Facade API ==<br />
<br />
Further information about the OX Facade API can be found at:<br />
https://documentation.open-xchange.com/components/facade/develop/<br />
<br />
= OX Mail Server-side Installation and Configuration on OX App Suite v7.8.x =<br />
<br />
This chapter describes how the backend components of OX Mail are installed and configured on the server.<br />
<br />
== Available packages ==<br />
<br />
OX Facade is available with the following backend packages:<br />
<br />
* ''open-xchange-mobile-api-facade''<br />
<br />
Installation on the server varies depending on the underlying distribution, details are available in the following chapters.<br />
<br />
=== Redhat Enterprise Linux 6 or CentOS 6 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL6|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Redhat Enterprise Linux 7 or CentOS 7 ===<br />
<br />
Add the following repositories to your Open-Xchange yum configuration:<br />
<br />
{{for loop||call=YUMRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=rhelname|pc2v=RHEL7|mobile-api-facade}}<br />
<br />
$ yum install open-xchange-mobile-api-facade<br />
<br />
=== Debian GNU/Linux 8.0 ===<br />
<br />
Add the following repositories to your Open-Xchange apt configuration:<br />
<br />
{{for loop||call=APTRepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=debianname|pc2v=DebianJessie|mobile-api-facade}}<br />
<br />
$ apt-get update<br />
$ apt-get install open-xchange-mobile-api-facade<br />
<br />
=== SUSE Linux Enterprise Server 12 === <br />
<br />
{{for loop||call=SUSERepo|pv=reponame|pc1n=path|pc1v=products/mobile-api-facade/stable|pc2n=susename|pc2v=SLE_12|mobile-api-facade}}<br />
<br />
$ zypper ref<br />
$ zypper install open-xchange-mobile-api-facade<br />
<br />
= Configuration OX Facade for Mobile =<br />
<br />
== Introduction ==<br />
<br />
To be able to use the native mail apps the Mobile API Facade needs to be installed in front of the OX App Suite middleware. This document describes how to configure the Mobile API Facade.<br />
<br />
The Mobile API Facade stores its configuration in the files <code>/opt/open-xchange/mobile-api-facade/etc/facade.properties</code> (the global configuration) and in <code>/opt/open-xchange/mobile-api-facade/etc/mobile-api-facade-config.yml</code> (hostname specific configuration). Both files support the same configuration properties as can be seen on https://documentation.open-xchange.com/components/facade/config/1.0.0/.<br />
<br />
== Connection to the OX App Suite Middleware ==<br />
<br />
After installation of the facade package ("open-xchange-mobile-api-facade") the property <code>com.openexchange.mobile.api.facade.MiddlewareBaseUrl</code> needs to get set to the correct URL. This property needs to be explicitly configured by the administrator. It has no default value. Its possible to connect the Mobile API Facade directly to a middleware process, but this is highly discouraged. The Mobile API Facade should always connect to a middleware process through a load balancer.<br />
<br />
An example:<br />
<br />
com.openexchange.mobile.api.facade.MiddlewareBaseUrl=https://appsuite.example.com/appsuite/api<br />
<br />
After this configuration the open-xchange-mobile-api-facade needs to get restarted.<br />
<br />
== Proxy configuration ==<br />
<br />
<Proxy balancer://oxcluster_facade><br />
Order Allow,Deny<br />
Allow from all<br />
BalancerMember http://appsuite-dev-gw1.open-xchange.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX1<br />
BalancerMember http://appsuite-dev-gw2.open-xchange.com:8007 timeout=100 smax=0 ttl=60 retry=60 <br />
loadfactor=50 keepalive=On route=FOX2<br />
<br />
ProxySet stickysession=JSESSIONID|jsessionidscolonpathdelim=On<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
ProxyPass /services/api-facade balancer://oxcluster_facade/services/api-facade<br />
<br />
== Traffic compression ==<br />
<br />
The clients need to exchange a lot of data with the facade to accomplish the task of a mail client. This traffic can be compressed. Clients add the header "Accept-Encoding: gzip,deflate" by default. For this to work the Apache web server in front of the facade needs to handle this as the facade itself is not returning compressed response bodies.<br />
<br />
For Apache HTTPD <code>{mod_deflate}</code> needs to be enabled and the following line needs to be added to your virtual host:<br />
<br />
AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css <br />
text/xml application/xml text/x-js application/x-javascript application/json<br />
<br />
== Starting/Stopping the Facade Service ==<br />
<br />
The facade runs as its own service independent of the normal OX App Suite middleware. For this on Debian-based system it can be started with<br />
<br />
service open-xchange-mobile-api-facade start<br />
<br />
It can be stopped with<br />
<br />
service open-xchange-mobile-api-facade stop<br />
<br />
== Ports ==<br />
<br />
As the Mobile API Facade is its own process it also has its own JMX port and its own RMI port. The default JMX port is 9995 and the default RMI port is 1100. These ports needs to be explicitly specified to the command line tools using either JMX or RMI.</div>Michael.koch