App Suite Releases
  • 8.35
  • 7.10.6
Imprint
  • 8.35
  • 7.10.6
Imprint
  • Release 8.37
  • Release 8.36
  • Release 8.35
  • Release 8.34
  • Release 8.33
  • Release 8.32
  • Release 8.31
  • Release 8.30
  • Release 8.29
  • Release 8.28
  • Release 8.27
  • Release 8.26
  • Release 8.25
  • Release 8.24
    • Noteworthy Changes
      • Important Changes
    • Changelogs
      • App Suite UI
      • App Suite Middleware
      • Additional Components
        • OX Guard UI
  • Release 8.23
  • Release 8.22
  • Release 8.21
  • Release 8.20
  • Release 8.19
  • Release 8.18
  • Release 8.17
  • Release 8.16
  • Release 8.15
  • Release 8.14
  • Release 8.13
  • Release 8.12
  • Release 8.11
  • Release 8.10

App Suite Middleware

8.24.0 - 2024-04-03

Added

  • MW-2174: Make com.openexchange.user.contactCollectOnMailAccess and com.openexchange.user.contactCollectOnMailTransport config-cascade aware.
  • MW-2251: Added REST-API and job to create pre-assembled contexts. Expose metrics for currently existing pre-assembled contexts
    • See also MW-2252
  • MW-2261: Optionally Exclude Disabled Contexts in listcontext

Changed

  • MW-2109: Migrated from GCM to FCM for drive events and generic PNS
    • Added the Firebase SDK
    • Removed old GCM implementation and bundles
  • MW-2220: Improve example script to create certificates
  • MWB-1582: Preliminary introduce new strings when sharing address books
  • MWB-1800: Enforce table order in JOINs if applicable
  • MWB-2488: Documentation for on behalf scheduling
  • SCR-1366: Updated Spring Framework from v5.3.21 to v6.1.4
  • SCR-1367: Allow implementations of BasicAuthenticatorPluginInterface to signal commencing with the next candidate
  • SCR-1370: Added option to Redis configuration to specify a compression method

Removed

  • MW-2075: Removed property allowContentDispositionInline
  • MW-2284: Kerberos support

Fixed

  • MWB-2525: Fixed wrong imports in commons compress. Will be fixed upstream with 1.27.0
  • MWB-2545: Use correct variable to pass number of contexts to pre-assemble
Details

3rd Party Libraries/License Change

SCR-1366

Summary: Updated Spring Framework

Updated Spring Framework from v5.3.21 to v6.1.4 in bundle com.openexchange.xml

  • spring-beans-6.1.4.jar
  • spring-core-6.1.4.jar
  • spring-jcl-6.1.4.jar

API - Java

SCR-1367

Summary: Slightly incompatible update to BasicAuthenticatorPluginInterface

In order to gain more flexibility in case of multiple Plugins implementing BasicAuthenticatorPluginInterface and to introduce Context-Admin capability for regular users using the provisioning APIs, the return type of the three methods

  • isOwnerOfContext()
  • isMasterOfContext()
  • isMasterOfContext()

will be changed from the primitive type boolean to Optional<Boolean> also supporting the third state empty to ignore the result and skip to the next plugin.

API - REST

SCR-1368

Summary: New REST API endpoint /admin/v1/contexts/pre-assemble to pre-assemble contexts

The concept of pre-assembled contexts consists of the asynchronous pre-creation of deactivated contexts that will be reused (and adapted to the provided settings) during the usual createcontext call. Pre-assembled contexts are characterized by being deactivated with reason_id equals 666 and their name beginning with the preassembled- prefix followed by an UUID.

In order to pick up pre-assembled contexts during regular provisioning operations, context skeletons need to be inserted into the database first. This can be achieved in two ways, by calling a REST API or via a background job.

The REST API is located at http://oxhost:8009/admin/v1/contexts/pre-assemble. Pre-assembled contexts can be generated by a POST request using master authentication with a body containing a JSON object describing the schema name and how many context skeletons should be created. Optionally you can add the id of the filestore that should be used for the pre-assembled context by defining filestore_id parameter.

Example:

POST /admin/v1/contexts/pre-assemble HTTP/1.1
Content-Type: application/json
Authorization: Basic amFuOmphbg==
User-Agent: PostmanRuntime/7.36.3
Accept: */*
Cache-Control: no-cache
Postman-Token: 3992936c-9d95-43c6-beb7-8b110e0088e2
Host: devenv.oxmw.io:8009
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 41

{
    "number":4,"schema": "oxuserdb_5"
}

HTTP/1.1 200 OK
Server: grizzly/2.4.4
X-Robots-Tag: none
Content-Type: application/json; charset=UTF-8
Content-Length: 52

{
    "contextIds": [
        11832,
        11833,
        11834,
        11835
    ],
    "errors": []
}

The response contains a JSON array of identifiers of the created pre-assembled contexts at field contextIds. Any errors that might have occurred when inserting the data are supplied in the errors array as well. In case of fatal errors, a response status different from  HTTP 200 will be returned depending on the error that occurred. Please have a look at the full REST API description of the endpoint for more details.

Configuration

SCR-1370

Summary: Added option to Redis configuration to specify a compression method

Added lean property to Redis configuration to specify a compression method

  • com.openexchange.redis.compressionType The compression type to globally compress/decompress any data written to/read from Redis end-point according to specified type. Allowed type: snappy, gzip, deflate and none. Enabling or disabling compression is backward-compatible; meaning any previously written uncompressed data can still be decoded as well as any previously compressed data (provided that compression gets turned off later on). Default value is none. Neither config-cascade aware nor reloadable.

  • com.openexchange.redis.minimumCompressionSize The minimum size for a data chunk in bytes for being considered for compression. Only effective if "com.openexchange.redis.compressionType" is set to not "none".

SCR-1360

Summary: New lean properties for background job to create pre-assembled contexts

New lean and non-reloadable properties to configure the background job that creates pre-assembled contexts:

  • com.openexchange.admin.context.preassembly.job.enabled, defaults to false. Whether background job is active or not

  • com.openexchange.admin.context.preassembly.job.schedule, defaults to Mon-Sun 0-4. The pattern specifying when to execute context the pre-assemble job. The default time zone of the Java virtual machine is assumed, which is typically the system's default time zone; unless the user.timezone property is set otherwise.

  • com.openexchange.admin.context.preassembly.job.contextsPerSchema, defaults to 100. Configures the number of pre-assembled contexts that should exist per schema after the job was executed. This number will never be exceeded by using the background job. Of course it is possible to exceed this limit by using the REST API.

  • com.openexchange.admin.context.preassembly.job.contextLimitFactor, defaults to 0.9. Configures the maximum filling level of schemas when adding pre-assembled contexts via periodic background job, as a factor of CONTEXTS_PER_SCHEMA. I. e. pre-assembly is only performed until the total number of contexts exceeds <factor> * <contexts_per_schema>.

  • com.openexchange.admin.context.preassembly.job.frequency, defaults to 3600000 (1 hour). The frequency in milliseconds when to check for new job executions within configured schedule.

  • com.openexchange.admin.context.preassembly.job.executionDelay, defaults to 86400000 (1 day). The (minimum) delay between repeated executions of the pre-assembly job in milliseconds.

SCR-1331

Summary: Added lean property 'com.openexchange.admin.context.preassembly.enabled'

Added lean property com.openexchange.admin.context.preassembly.enabled to enable using pre-assembled contexts instead of creating new contexts. Pre-assembled contexts must exist in database before enabling! Defaults to false.

SCR-1292

Summary: Dropped the 'com.openexchange.drive.events.gcm.key' property

Dropped the com.openexchange.drive.events.gcm.key property. Introduced the com.openexchange.drive.events.fcm.keyPath property as a replacement.

SCR-1290

Summary: Dropped the 'key' attribute in the 'pushClientConfig'

Dropped the key attribute in the pushClientConfig config file for the _type fcm. Introduced the keyPath attribute, which defines the full path of the FCM key file.

SCR-1289

Summary: Renamed .gcm. properties to .fcm.

Affected properties are:

  • com.openexchange.drive.events.gcm.enabled
  • com.openexchange.drive.events.gcm.clientId
  • com.openexchange.pns.transport.gcm.enabled.*

The new properties are now available under a new qualified name:

  • com.openexchange.drive.events.fcm.enabled
  • com.openexchange.drive.events.fcm.clientId
  • com.openexchange.pns.transport.fcm.enabled.*

Database

SCR-1288

Summary: Rename 'serviceId' and 'transport' values from GCM to FCM

Due to deprecation and end-of-life of GCM, we need to switch to FCM, hence the rename of the serviceId and transport values in the database.

Packaging/Bundles

SCR-1369

Summary: Removal of Kerberos Authentication

The Kerberos authentication integration that was available via supplementary package open-xchange-authentication-kerberos was removed.

See SCR-1315 for the deprecation with version 8.19.

SCR-1314

Summary: Introduced new FCM bundles

Added the following FCM-related bundles:

  • com.google.firebase
  • com.openexchange.drive.events.fcm
  • com.openexchange.pns.transport.fcm

SCR-1313

Summary: Removed GCM bundles

Removed the following GCM-related bundles:

  • com.google.android.gcm
  • com.openexchange.drive.events.gcm
  • com.openexchange.pns.transport.gcm
App Suite UI
Additional Components