Important Changes
In short
Most of 8.55 needs no action. Before upgrading, check four things. Rolling upgrades from 8.46–8.54 need the latest patch release first if composition spaces are encrypted outside the mail storage. Shared accounts lose the right to change IMAP subscriptions until the new manageImapSubscriptions capability is granted. TLS is stricter, which can break connections that only worked because certificates were not checked. RMI clients and scripts must now send administrator credentials for several read methods.
The full list of software change requests, behavioral changes and configuration updates is on the middleware page. The sections below pick out what matters when upgrading.
Before a rolling upgrade
- Encrypted composition spaces (SCR-2050): Where composition spaces are kept in the database or file storage (
com.openexchange.mail.compose.mailstorage.enabled=false) withcom.openexchange.mail.compose.security.encryptionEnabled=true, 8.55 encrypts them with AES/GCM. Nodes on 8.46 to 8.54 can only read the new format from the patch release that includes this change. Update them to that patch release before rolling to 8.55, and do not downgrade below it afterwards. - Distributed files (SCR-2032): Nodes now need a per-file token to fetch files from each other. Until every node runs 8.55, an older node cannot fetch from an upgraded one, which affects preview downloads, inline images of the PDF export and job results.
- Shared account permissions (SCR-2170): Do not create shared account permissions until all nodes run 8.55. A node of the previous version creates them without the contacts account that shared account address books need.
- Deputy permissions (SCR-1957): During the upgrade, nodes of the previous version do not know the new
sentCopyToGrantercolumn. They make no copy of mails a deputy sends, and lose the setting when they re-create a permission.
Changes that may need action
Shared accounts
- IMAP subscriptions require a capability (SCR-2166): Changing the subscriptions of a shared account's mail folders now requires the capability
manageImapSubscriptions, which is not granted by default. After the update nobody can change them until it is granted, either per shared account permission through provisioning, or to everyone throughcom.openexchange.sharedaccount.defaultCapabilities, which keeps the previous behavior. - Mail permission sets are enforced (SCR-2212): Every mail operation is now checked against the IMAP rights of the shared account's permission set. Users with
vieweroreditorcan no longer move, delete or archive mails, expunge or clear folders, or copy mails into the shared account. Users who need to file away or delete mails needauthor.
TLS and certificates
- No silent trust-all fallback (SCR-2047): An invalid
com.openexchange.net.ssl.trustlevel, for example a typo, now falls back torestrictedinstead ofall. For JMAP,com.openexchange.jmap.trustAllnow defaults tofalse, and withcom.openexchange.jmap.requireTls(defaulttrue) a JMAP server addressed via plain HTTP is refused. - The SSL white-list no longer covers proxies (SCR-2162): The white-list is matched only against the target host, not against an HTTP proxy tunneling the connection. If a TLS-intercepting proxy is in use, add its CA certificate to the custom trust store.
- The SSL white-list matches literally (SCR-2040): A host name entry now matches only the name used to connect, no longer any address of its DNS answer. In return, white-listed hosts are exempt from host name verification under the
restrictedtrust level, and the white-list now also applies to Redis, Cassandra and the asynchronous S3 client.
Administration tools and APIs
- Administrator credentials for read methods (SCR-2209, SCR-2184, SCR-2177): Read and listing methods of several RMI interfaces, among them
DBMigrationRMIService,ConsistencyRMIService,ShareRMIService,ExternalAccountRMIServiceandDataExportRMIService, now require administrator credentials. The bundled command-line tools pass them on. Custom RMI clients and scripts that call these methods without credentials need updating. - Data export routes on the provisioning gateway (SCR-2179): The default of
provisioningGateway.servicesin thecore-mwchart now includesDataExportService, so the provisioning HTTP gateway offers data export routes, including administrative exports on behalf of a user. Deployments that set the list themselves keep it. - No write scope for signed-in access tokens by default (SCR-2057):
com.openexchange.accesstoken.signin.defaultScopesno longer containswrite_mail. Clients that sign in throughlogin?action=accessTokenand need to write must name the scope. - No asterisk in CalDAV and CardDAV logins (SCR-2154): An
*in the login name is no longer replaced with@. Clients still configured with a login likeuser*example.comneed the regular login name.
Changed defaults
- SMTP pipelining (SCR-2152):
com.openexchange.smtp.enablePipeliningis nowtrue, andcom.openexchange.smtp.chunksizeis0, so mail is sent withDATAinstead ofBDATchunks. Setfalseand131072to restore the previous behavior. - Carrier threads for virtual threads (SCR-1998, SCR-2217): The parallelism now defaults to four carrier threads per CPU, at least 64, with a maximum pool of that plus 256. Values set through
JAVA_OPTS_*take precedence. - Background update locks expire (SCR-2140): A background update lock left behind by a node that died now expires, so another node can finish the tasks instead of the schema staying locked until an administrator steps in.
Other behavioral changes
- The repeated hour at the end of daylight saving time (SCR-2207): A local time that occurs twice now refers to its first occurrence, as RFC 5545 requires. Events in that hour that are created or saved again start one hour earlier than before.
- Feedback pseudonyms (SCR-2048): Exported NPS and star rating feedback now identifies users with an HMAC keyed by
com.openexchange.userfeedback.pseudonym.secret. Pseudonyms change once with the update and cannot be linked to earlier exports. Set the same secret on all nodes.
App Suite UI
- Links in plain text emails: Every URL scheme on the middleware's HTML allowlist (
io.ox/mail//whitelist/allowedProtocols) is now turned into a link in plain text emails. Review the list on upgrade. - Dragging emails to the desktop: The feature toggle
io.ox/core//features/mailDragOutand the settingio.ox/mail//dragAndDrop/maxListSizeare removed. Dragging emails out now requiresio.ox/core//features/mailDragOutTokenand the capabilitydrag_and_drop_http. Dropping several emails as one ZIP file is no longer possible; a single email still drops as an EML file. - Distribution lists: Email-enabled distribution lists are added as a single recipient. Preset
io.ox/mail//compose/autoResolveDistributionListstotrueto keep resolving them into their members. - Tailwind utility classes: The classes deprecated in 8.54 will be removed with 8.56. Plugins still using them should migrate now.
Database update tasks
8.55 brings the following update tasks. Details are in the linked change requests.
| Change request | Update task |
|---|---|
| SCR-1872 | com.openexchange.chronos.storage.rdb.groupware.CalendarAddTrashColumnsTask |
| SCR-1957 | com.openexchange.deputy.impl.groupware.DeputyStorageAddSentCopyToGranterColumnTask |
| SCR-2035 | com.openexchange.sharedaccount.storage.rdb.groupware.SharedAccountAddTargetIndexTask |
| SCR-2071 | com.openexchange.accesstoken.impl.groupware.AccessTokenAddGrantColumnsTask |
| SCR-2079 | com.openexchange.mcp.activity.ActivityCreateTableTask |
| SCR-2083 | com.openexchange.accesstoken.impl.groupware.AccessTokenAddFoldersColumnTask |
| SCR-2087 | com.openexchange.mail.credential.impl.groupware.MailCredentialAddRefreshDueColumnTask |
| SCR-2094 | com.openexchange.mail.credential.impl.groupware.MailCredentialRefreshDueByCallerKeyTask |
| SCR-2115 | com.openexchange.notification.queue.impl.groupware.NotificationQueueAddDataColumnTask |
| SCR-2148 | com.openexchange.deputy.impl.groupware.DeputyStorageAddSendAsColumnTask |
| SCR-2165 | com.openexchange.accesstoken.impl.groupware.AccessTokenAddRotationColumnsTask |
| SCR-2170 | com.openexchange.sharedaccount.storage.rdb.groupware.SharedAccountAddContactsAccountTask |
| SCR-2181 | com.openexchange.gdpr.dataexport.impl.groupware.DataExportAddAdministrativeColumnsTask |
| SCR-2196 | com.openexchange.account.recovery.rdb.groupware.RecoveryDetailsCreateTableTask, com.openexchange.account.recovery.rdb.groupware.RecoveryEmailIndexBackfillTask |
| SCR-2203 | com.openexchange.groupware.update.tasks.Login2UserAddIdIndexTask |
| SCR-2211 | com.openexchange.mail.credential.impl.groupware.MailCredentialAddPoolColumnTask |