App Suite Releases
  • 8.35
  • 7.10.6
Imprint
  • 8.35
  • 7.10.6
Imprint
  • Release 8.35
    • Noteworthy Changes
      • Important Changes
      • App Suite DocumentConverter
      • App Suite Middleware
  • Changelogs
    • App Suite UI
    • App Suite Middleware
    • Additional Components
      • App Suite DocumentConverter
      • Switchboard
  • Helm Charts
    • App Suite Stack Chart
    • Cache Service
    • DocumentConverter
    • ImageConverter
    • App Suite Middleware Core
    • SpellCheck
    • Switchboard

App Suite Middleware

API - HTTP-API

SCR-1558

Summary: New parameter 'dontResolveEntities' for 'chronos?action=new'

The new action in module chronos is extended by a new, optional parameter {}dontResolveEntities{}.

Normally, all attendees in an event are resolved to internal entities by their calendar user address URI implicitly, and all resolved users will share the created organizer event copy automatically. Now if this new parameter is set to {}true{}, all entities besides the current calendar user are not resolved treated as external entities, i.e. these appointments will effectively only be created for and visible to the targeted folder's calendar user in App Suite.

See the documentation and HTTP API documentation for further details.

[8.35.66]

3rd Party Libraries/License Change

SCR-1513

Summary: Update Apache Commons CSV from v1.6 to v1.13.0

  • Update Apache Commons CSV from v1.6 to v1.13.0 in target platform (com.openexchange.bundles)
  • Update Apache Commons IO from v1.16.1 to v1.18.0 in target platform (com.openexchange.bundles)

SCR-1512

Summary: Updated Apache Commons CLI library from v1.6.0 to v1.9.0

Updated Apache Commons CLI library from v1.6.0 to v1.9.0 in target platform (com.openexchange.bundles)

SCR-1511

Summary: Update Apache Commons Codec

Update Apache Commons Codec from v.1.17.0 to v1.17.2 in target platform (com.openexchange.bundles)

SCR-1507

Summary: Added Apache Aries SPI Fly to target platform

Added Apache Aries SPI Fly to target platform. SPI Fly is the Reference Implementation of the OSGi ServiceLoader Mediator specification. This is needed to due to update of logging-related libraries, in which SLF4J changed from static initialization to the usage of Java's java.util.ServiceLoader.

Added bundles to target platform:

  • asm-9.6.jar
  • asm-analysis-9.6.jar
  • asm-commons-9.6.jar
  • asm-tree-9.6.jar
  • asm-util-9.6.jar
  • org.apache.aries.spifly.dynamic.bundle-1.3.7.jar

SCR-1506

Summary: Updated logging-related libraries

Updated logging-related libraries in target platform - thereof SLF4J API and Logback as well as associated logging bridges

  • Updated slf4j-api from v1.7.36 to v2.0.16
  • Updated logback-core from v1.2.13 to v1.5.16
  • Updated logback-classic from v1.2.13 to v1.5.16
  • Updated jcl-over-slf4j from v1.7.36 to v2.0.16
  • Updated jul-to-slf4jj from v1.7.36 to v2.0.16
  • Updated log4j-over-slf4j from v1.7.36 to v2.0.16
  • Updated osgi-over-slf4j from v1.7.36 to v2.0.16

API - HTTP-API

SCR-1525

Summary: Added field "sharedreadonly" to "snippet" module

Added field "sharedreadonly" to "snippet" module. It provides the information whether a shared snippet may be seen, but must not be modified/deleted by other users.

{
   "id":"3",
   "content":"...",
   "createdby":3,
   "displayname":"My signature",
   "misc":{
      "insertion":"below",
      "content-type":"text/html"
   },
   "module":"io.ox/mail",
   "type":"signature",
   "shared":false,
   "sharedreadonly":false
}

API - SOAP

SCR-1529

Summary: New "convertguest" Element for "create" in "OXUserService"

The create element within the SOAP body of OXUserService is extended with an additional element to automatically pick up and convert an existing guest user in the context matching the otherwise conflicting primary email address of the user being created:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://soap.admin.openexchange.com" xmlns:xsd="http://dataobjects.soap.admin.openexchange.com/xsd" xmlns:xsd1="http://dataobjects.rmi.admin.openexchange.com/xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <soap:create>
	 [...]
         <soap:convertguest>...</soap:convertguest>
      </soap:create>
   </soapenv:Body>
</soapenv:Envelope>

API - Java

SCR-1509

Summary: Update cxf-libraries to 3.5.10

Update cxf-libraries from v3.5.9 to v3.5.10:

  • cxf-core
  • cxf-rt-bindings-soap
  • cxf-rt-bindings-xml
  • cxf-rt-databinding-jaxb
  • cxf-rt-features-logging
  • cxf-rt-frontend-jaxws
  • cxf-rt-frontend-simple
  • cxf-rt-transports-http
  • cxf-rt-ws-addr
  • cxf-rt-wsdl
  • cxf-rt-ws-policy

SCR-1496

Summary: Enhanced OAuthAuthorizationService#validateAccessToken with Header collection parameter

The method com.openexchange.oauth.provider.authorizationserver.spi.OAuthAuthorizationService#validateAccessToken is enhanced with the additional parameter com.openexchange.servlet.Headers holding the headers of the underlying HTTP servlet request that is used to trigger the authentication request.

A default implementation of the new method overload is added, which delegates to the existing method passing the extracted access tokens only.

CLT

SCR-1528

Summary: New Option "convert-guest" in "createuser" Commandline Tool

The command-line interface createuser is extended with an additional option to automatically pick up and convert an existing guest user in the context matching the otherwise conflicting primary email address of the user being created:

--convert-guest booleanvalue : The flag whether it desired to convert an existent guest user to a regular user in case there is already a guest user associated with given primary E-Mail address

See https://documentation.open-xchange.com/main/middleware/command_line_tools/user/createuser.html for further details.

Configuration

SCR-1521

Summary: Added config switch to keep own address when replying to self-sent message

Added new lean boolean property to configure whether to keep own address when replying to self-sent message

  • com.openexchange.mail.keepOwnAddressWhenReplyingToSelfSentMail Define whether to keep own address when replying to self-sent message. Default value is "false". Reloadable and config-cascade aware.

SCR-1514

Summary: New property 'com.openexchange.cache.v2.redis.multiKeyLimit'

In order to limit the maximum number of addressed keys per MGET, MSET, MHGET or MHSET command, the lean configuration property

com.openexchange.cache.v2.redis.multiKeyLimit

is introduced. It defaults to 100, and is neither reloadable, nor config-cascade aware.

SCR-1510

Summary: Changed defaults for Client-Onboarding YAML configuration file

Changed defaults in client-onboarding-scenarios.yml YAML configuration file:

  • Removed sections ** Removed section for identifier mailappinstall referencing discontinued OX Mail App
  • Changed attribute enabled to true ** Changed attribute enabled to true for section driveappinstall (OX Drive App) ** Changed attribute enabled to true for section syncappinstall (Sync App) ** Changed attribute enabled to true for section davsync (CalDAV & CardDAV Sync) ** Changed attribute enabled to true for section davmanual (CalDAV & CardDAV Sync) ** Changed attribute enabled to true for section eassync (Exchange ActiveSync) ** Changed attribute enabled to true for section easmanual (Exchange ActiveSync) ** Changed attribute enabled to true for section mailsync (IMAP/SMTP) ** Changed attribute enabled to true for section mailmanual (IMAP/SMTP)

SCR-1499

Summary: Added new properties to configure the new async framework

The new async framework introduces a few new lean properties which control the behaviour of framework.

  • com.openexchange.admin.ctx.async.enabled Enables asynchronous deletion of contexts. Default value is false and config-cascade aware.
  • com.openexchange.admin.async.schedule The schedule to run async admin operations. No default value and not config-cascade aware.
  • com.openexchange.admin.async.pool.size The size of the threadpool which is responsible to run async tasks. The greater the pool the more tasks can be executed in parallel. Default value is 10 and not config-cascade aware.
  • com.openexchange.admin.async.refresh.interval The interval in minutes in which claims of running tasks are refreshed. This must always be lower than com.openexchange.admin.async.retry.interval. Default value is 5 and not config-cascade aware.
  • com.openexchange.admin.async.retry.limit The amount of times a failed async task is tried to be repeated. Default value is 5 and not config-cascade aware.
  • com.openexchange.admin.async.retry.interval Defines the interval in minutes after a task is considered stale. Or in other words a task is considered stale if: now > last update + interval. Default value is 15 and not config-cascade aware.
  • com.openexchange.admin.async.refill.interval Defines the interval in minutes in which new tasks are added to the queue of available tasks. This happens only during the defined schedule (see com.openexchange.admin.async.schedule). Default value is 5 and not config-cascade aware.
  • com.openexchange.admin.async.cleanup.retentionDays The maximum amount of days a task is stored. Default value is 730 and not config-cascade aware.
  • com.openexchange.admin.async.cleanup.interval The interval between runs of the cleanup task. A value of 0 disables the task. Default value is 7 and not config-cascade aware.

SCR-1486

Summary: New property com.openexchange.carddav.addressbookMultigetLimit

The lean configuration property com.openexchange.carddav.addressbookMultigetLimit is introduced to configure the maximum number of elements included in CARDDAV:addressbook-multiget responses to the client.

If data from more elements was requested, HTTP/1.1 507 Insufficient Storage responses will get inserted. It defaults to 1000, a value of -1 disabled the limit. Property is reloadable and can be defined through the config-cascade.

Database

SCR-1524

Summary: Added column "shared_read_only" to "snippet" table

Added column "shared_read_only" to "snippet" table. It stores the information whether a shared snippet may be seen, but must not be modified/deleted by other users.

  `shared_read_only` tinyint(3) unsigned NOT NULL DEFAULT 0

Full table layout is now:

CREATE TABLE `snippet` (
  `cid` int(10) unsigned NOT NULL,
  `user` int(10) unsigned NOT NULL,
  `id` varchar(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `accountId` int(10) unsigned DEFAULT NULL,
  `displayName` varchar(255) NOT NULL,
  `module` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `type` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `shared` tinyint(3) unsigned DEFAULT NULL,
  `refType` tinyint(3) unsigned NOT NULL,
  `refId` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `lastModified` bigint(64) NOT NULL,
  `size` int(10) unsigned DEFAULT NULL,
  `shared_read_only` tinyint(3) unsigned NOT NULL DEFAULT 0,
  PRIMARY KEY (`cid`,`user`,`id`),
  KEY `indexShared` (`cid`,`shared`),
  KEY `indexRefType` (`cid`,`user`,`id`,`refType`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

SCR-1497

Summary: Added a new table async_tasks to the configdb database

The new async framework introduces a new table async_tasks in the configdb which is responsible to store asynchronous tasks.

That table is created by the liquibase task 8:addAsyncTasksTable.

CREATE TABLE `async_tasks` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `entityId` varchar(100) NOT NULL,
  `type` varchar(100) NOT NULL,
  `args` text DEFAULT NULL,
  `state` varchar(100) NOT NULL,
  `lastUpdate` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `claim` BINARY(16) DEFAULT NULL,
  `retryCount` int unsigned NOT NULL DEFAULT 0,
  `error` varchar(256) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `entity_type_unique` (`entityId`,`type`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Packaging/Bundles

SCR-1522

Summary: Updated Snappy library from v1.1.10.5 to v1.1.10.7

Updated Snappy library from v1.1.10.5 to v1.1.10.7 in Target Platform (com.openexchange.bundles)

SCR-1508

Summary: Added new SLF4J API fragment bundle

Added new SLF4J API fragment bundle org.slf4j.fragment to open-xchange-core package/bundle list.

Purpose of this bundle is to make package ch.qos.logback.classic.spi available to SLF4J API bundle in order to inject Logback's SLF4j service provider into initialization phase of the SLF4J logging runtime.

SCR-1498

Summary: Added the new bundle com.openexchange.admin.async

For the new async framework the new bundle "com.openexchange.admin.async" is added to the open-xchange-admin package

App Suite DocumentConverter