App Suite Releases
  • 8.47
  • 8.35
  • 7.10.6
Imprint
  • 8.47
  • 8.35
  • 7.10.6
Imprint
  • Release 8.35
    • Noteworthy Changes
      • Important Changes
      • App Suite CacheService
      • App Suite DocumentConverter
      • App Suite Middleware
  • Changelogs
    • App Suite UI
    • App Suite Middleware
    • Additional Components
      • AI Service
      • App Suite CacheService
      • App Suite DocumentConverter
      • OX Guard UI
      • Switchboard
      • Changelog
  • Helm Charts
    • AI Service Helm Chart
    • AppSuite Stack Chart
    • Helm Chart core-cacheservice
    • Helm Chart core-documentconverter
    • Helm Chart core-imageconverter
    • core-mw
    • SpellCheck
    • Switchboard

App Suite Middleware

8.35.184 - 2026-08-26

Fixed

  • ASB-162: Parse mail filter rule metadata for non-IPv4 update sources and heal polluted rule names

8.35.183 - 2026-08-25

Fixed

  • Default to UTC when delivering a nested message as JSON (support#1598)

8.35.181 - 2026-08-19

Fixed

  • Take a snippet's identity from the database instead of stale file-storage headers (support#1329)

8.35.180 - 2026-08-18

Fixed

  • Honor the timezone parameter when converting a single mail outside the get action (support#1598)
  • Do not report a failed IMAP quota look-up as exceeded quota (support#1636)

8.35.178 - 2026-08-06

Fixed

  • Keep writing a datamining report when a database schema is unreachable (support#1618)

8.35.175 - 2026-08-04

Fixed

  • IMAP command injection through user flags and the headers request parameter

8.35.174 - 2026-07-31

Added

  • Redirect reads to the master while a read replica reports broken or excessive replication lag (#4)

Fixed

  • Restore replica staleness check by tracking the replication monitor counter process-locally (support#1599)

8.35.173 - 2026-07-30

Added

  • Redirect reads to the master while a read replica reports broken or excessive replication lag (#4)

Fixed

  • Restore replica staleness check by tracking the replication monitor counter process-locally (support#1599)
  • Validate HTTP header names against RFC 9110 token rules in the Grizzly 2.4 codec (support#1603)

8.35.172 - 2026-07-29

Fixed

  • Always provide the mail's display date, also for nested messages (support#1598)

8.35.166 - 2026-07-24

Fixed

  • Report exact attachment sizes for composition space drafts (support#1585)

8.35.165 - 2026-07-23

Fixed

  • Repoint openapi plugins to gitlab.com registry and bump to latest
  • Validate From ownership on mail bounce (support#1531)
    • action=bounce re-sent a stored message via ComposeType.NEW without checking that the From belongs to the authenticated user, allowing sender spoofing. BounceAction now runs the same ownership check as action=new through MimeMessageFiller.resolveSender2Account(checkSender=true) before transport, so a foreign From is rejected with INVALID_SENDER (MSG-0056).

8.35.163 - 2026-06-05

Fixed

  • CP-572: Stop session removal from escalating to a full key-space scan when user/context has no sessions
  • IOL-2841: Reconnect mail access when attachment handling takes too long
    • On 8.35 the schedule/scheduleAtFixedRate/scheduleWithFixedDelay millisecond convenience overloads are abstract on TimerService, whereas on main they are default methods. The cherry-picked MailStorageReconnectTest.FakeTimerService stub only overrode the TimeUnit variants, so compileTestJava failed. Implement the three millisecond overloads so the stub compiles on the stable branch.

8.35.162 - 2026-04-21

Fixed

  • Avoid writing periodic save-points (by default) to avoid possible access problems (core#486)

8.35.161 - 2026-03-20

Fixed

  • Ignore possible "file not found" error when moving entity-associated files due to deletion of that entity (e.g. user deletion) (core#481)

8.35.160 - 2026-03-11

Fixed

  • Keep user-specified setting for a config-cascade setting originating from non-user scope (core#356)

8.35.156 - 2026-03-03

Fixed

  • Docker image missing stable-8.x tag when pushing release image

8.35.155 - 2026-03-03

Fixed

  • Docker image missing stable-8.x tag when pushing release image
    • The git version tag was created after buildahPushAllImages ran, so
    • releaseTags() could not resolve the version and omitted the stable-8.x
    • tag. Move the local tag re-creation before the push task.

8.35.154 - 2026-03-03

Fixed

  • Avoid too many recursive calls when compiling IMAP SEARCH expression from a search term instance (support#1099)

8.35.153 - 2026-02-27

Fixed

  • Avoid too many recursive calls when compiling IMAP SEARCH expression from a search term instance (support#1099)
  • Added config option to Redis-based session storage to control execution of timer tasks (support#1276)

8.35.149 - 2026-02-25

Added

  • INF-581: Always apply default HTTP headers in WebDAV responses, including new 'X-Powered-By' header

8.35.147 - 2026-02-23

Fixed

  • IOL-2841: Periodically touch composition space cache during file upload to ensure it does not vanish from cache
  • GDPR data export does not show errors from api (support#1158)
    • translation updates

8.35.145 - 2026-02-16

Changed

  • Include the hint on successful data export that some modules might not have exported (support#1158)

8.35.144 - 2026-02-03

Fixed

  • Orderly invalidate mail account even though connection in transaction state might be passed (core#452)

8.35.143 - 2026-01-30

Fixed

  • Only check against configured values for "com.openexchange.mail.signature.maxImageLimit" greater than 0 (zero) (core#451)
  • Orderly invalidate mail account even though connection in transaction state might be passed (core#452)

8.35.142 - 2026-01-13

Fixed

  • Detect & drop harmful content in CDATA section (core#438)

8.35.140 - 2025-12-10

Fixed

  • Added backticks around otherwise interpreted input (core#422)

8.35.139 - 2025-11-04

Changed

  • PBSR-1496: Prepare code to set value for future db column type for user/del_user tables

8.35.137 - 2025-10-19

Fixed

  • Restore RFC 1123 compliant formatting of {DAV:}creationdate and {DAV:}getlastmodified (core#389)

8.35.136 - 2025-10-07

Fixed

  • Orderly update folder's anonymous guest permission on follow-up mail transport attempt (core#384)

8.35.135 - 2025-10-07

Fixed

  • Detect harmful content in CSS fragment (core#386)

8.35.134 - 2025-09-23

Fixed

  • Drop "@import" words from CSS content (core#357)
  • Orderly detect possibly harmful HTML content (core#361)

8.35.132 - 2025-09-19

Changed

  • Delete previously scheduled mail data along with associated message when re-editing as draft (core#358)

8.35.131 - 2025-09-16

Fixed

  • Also consider <iframe> tag when checking for possible HTML content (core#379)

8.35.130 - 2025-09-15

Fixed

  • Pass proper parameters on cache key generation (core#273)
  • Orderly save scheduled mail as draft and re-schedule (core#358)
  • Improved handling for failed transport of scheduled mails (core#364)

8.35.129 - 2025-08-08

Fixed

  • Deny attribute values containing HTML fragments (core#336)

8.35.128 - 2025-08-07

Fixed

  • Explicitly drop existent scheduled mail on edit (core#358)

8.35.127 - 2025-07-29

Changed

  • Use pagination when querying context identifiers (core#349)
  • Use pagination when querying context identifiers (support#735)

8.35.126 - 2025-07-22

Fixed

  • Orderly throw exception if endpoint is not configured with TLS (core#306)

8.35.124 - 2025-07-11

Fixed

  • Prevent amount quota deadlocks while creating events (core#331)

8.35.123 - 2025-07-04

Fixed

  • Deal with possibly dying connection when probing for FILENAME SEARCH capability
  • Apply lowered read timeout when probing for file name search capability of an IMAP server (core#327)

8.35.122 - 2025-06-30

Fixed

  • Aligned identifying fields when checking maximum size of returned event collections (core#245)

8.35.120 - 2025-06-17

Changed

  • Assume same mail back-end (user base) for primary and secondary accounts (support#545)

8.35.119 - 2025-06-17

Changed

  • Take client identifier from servlet path if possible (core#318)

8.35.118 - 2025-05-23

Fixed

  • Use system proxies for APNs push if defined (core#281)

8.35.117 - 2025-05-23

Fixed

  • Only inject credential provider if proxy username is configured for mail autoconfig (core#279)

8.35.115 - 2025-05-09

Fixed

  • Add watch permission for role to allow watching secrets

8.35.114 - 2025-04-23

Changed

  • Added 'dontResolveEntities' parameter also for 'POST' request method variants (core#237)

8.35.113 - 2025-04-23

Changed

  • SCR-1558: Introduced 'dontResolveEntities' parameter to support import of separate event copies (core#237)
    • test polishing
    • extended documentation
    • more documentation

8.35.112 - 2025-04-22

Fixed

  • Keep local IP address in generated session (core#250)

8.35.104 - 2025-04-09

Fixed

  • Escape illegal characters in cache filter suffix portions (core#239)
  • Retry reinitialization of users_per_filestore table with manual INSERTs in case CREATE TABLE AS SELECT statement is prohibited (core#241)

8.35.97 - 2025-04-07

Fixed

  • Corrected parameter handling when storing snippets into database (core#224)
  • Applied various improvements in communication with Redis (support#527)

8.35.95 - 2025-04-01

Fixed

  • Only update attributes if there are actual changes (core#193)

8.35.92 - 2025-03-24

Fixed

  • Removed superfluous call to hard-delete messages when moving messages from Unified Mail's folder to another Unified Mail's folder (support#499)

8.35.90 - 2025-03-19

Changed

  • Create gitlab release from core pipeline

8.35.89 - 2025-03-17

Added

  • Added folder mode to deputy permission feature (core#173)

Changed

  • Added new lean properties to specify primary account's namespaces which are necessary when using Dovecot's DoveAdm API to manage deputy permissions (core#188)

Fixed

  • Fixed no-class-def error javax/net/ssl/SSLSocketFactory

8.35.88 - 2025-03-12

Fixed

  • Fixed no-class-def error javax/net/ssl/SSLSocketFactory

8.35.86 - 2025-03-11

Fixed

  • Prefer a local cache for too frequently queried context data (core#215)

8.35.76 - 2025-03-06

Added

  • SCR-1528: Documentation for new "convert-guest" option

Changed

  • Convert guest to regular user (core#119)

Fixed

  • Changed convertguest soap field to last position. Ref. #207
    • Basically training wheels for shitty soap clients.
  • Support an S3 connector without database access (for chunking) (guard#1)

8.35.66 - 2025-02-12

Added

  • SCR-1486: New property com.openexchange.carddav.addressbookMultigetLimit
  • Added async provisioning framework
  • Health Check for Redis Cache (core#134)
  • Expose CardDAV URL for Address Book Folders (core#137)
  • Warm-up Thread-local Cache when Handling Client Requests (core#138)
  • Control Sharding for Redis Cluster (core#139)
  • Fixed existing graphs and added new ones based on redis cache metrics (core#144)

Changed

  • Add shared-read-only flag to snippet module to have shared snippets that may be seen, but must not be modified/deleted by other users
  • Batch-resolve resources when handling CARDDAV:addressbook-multiget request
  • INU-4548: Support configurable custom flag for mails
  • SCR-1496: Enhanced OAuthAuthorizationService#validateAccessToken with Header collection parameter (core#74)
  • SCR-1510: Changed defaults for Client-Onboarding YAML configuration file
  • SCR-1511: Update Apache Commons Codec from v.1.17.0 to v1.17.2
  • SCR-1512: Updated Apache Commons Codec library from v1.6.0 to v1.9.0
  • SCR-1513: Update Apache Commons CSV from v1.6 to v1.13.0
  • SCR-1514: Limit number of addressed keys per MGET operation (support#340)
  • SCR-1522: Updated Snappy library from v1.1.10.5 to v1.1.10.7
  • SCR-1528: New Option "convert-guest" in "createuser" Commandline Tool
  • SCR-1529: New "convertguest" Element for "create" in "OXUserService"
  • Added appropriate OAuth scopes to mail compose actions
  • Allow to overwrite securityContext
  • Skip capability check and don't trigger preview generation if not needed
  • Updated collabora and gotenberg dependency
  • Changed copyright year to 2025
  • Removed db defaults from values
    • Removed the db defaults so that they can be overriden by global entries
    • Also adjusted the mysql secret to use those defaults in case nothing is configured
  • Gather subfolder ids for search from condition tree map (core#62)
  • Convert guest to regular user (core#119)
  • Disable Global Folder Cache by Default (core#142)
  • Redirect to configured failure redirect location after erroneous token response (core#156)
  • Updated to newest SLF4j and Logback libraries (core#163)
  • Update cxf-libraries to 3.5.10 (CVE-2025-23184) (core#169)
  • Added documentation article for database cleanup jobs (core#171)
  • Subscribe/unsubscribe IMAP folder if deputy permission is granted/revoked (support#415)
  • Use more compact token format (ui#697)

Fixed

  • Connect CLT param access-denied-portal to code #189
  • IIJMX-554: Don't use IMAP folder's sequence number when sorting by received date is performed in application
  • INU-4767: Improved handling of corrupt address list
  • Only check conflicts for added/updated attendees unless re-scheduled
  • PLG-450: Continue if visible folders cannot be collected for non-default contacts account
  • Fixed main by removing commons-cli-1.6.0 from target platform
  • Adjusted documentation for 'flags' parameter
  • Sorting of distribution list by first name #159
  • Allow deletion of user attributes via json null values
  • Cache invalidator instance to prevent excessive pub key requests
  • Changed docu links to oss repo
  • Enable test on borrow for redis connection pool
  • Fixed AbstractAdvertisementConfigServiceTest
  • Made flagging documentation more independent of the client
  • Properly store host parameter during login
  • Include system type when gathering subfolders for infostore search (core#62)
  • Skip initial reachability check for remote redis connections (core#130)
  • Fall back to storage access if accessing cache yields errors (core#135)
  • Corrected link in Contacts Provider LDAP documentation article (core#140)
  • Use only one cache region for advertisment config (core#141)
  • Handle empty JSON input as no available value is Redis cache (core#143)
  • Hard-delete mail(s) if located in trash folder (core#147)
  • Don't attempt to invalidate caches if no group members are set (core#155)
  • Explicitly use UTF-8 charset when writing vCards (core#162)
  • Handle possibly absent password when checking subscribed mail account's status (core#168)
  • Prevent from invalidating a remote node's JSlob entry if it has been stored after local node's entry (core#170)
  • Pick proper mail from conversation when performing sort (core#175)
  • Ignore unmappable ACLs when updating an IMAP folder's ACLs (core#179)
  • More look-up attempts in case of missing draft (core#180)
  • Fixed SQL 'INSERT INTO ... ON DUPLICATE KEY UPDATE' statement (core#183)
  • Evaluate CARDDAV:limit in CARDDAV:addressbook-query Report (core#185)
  • Consider all known 'devices' for CalDAV/CardDAV onboarding providers (core#186)
  • Added config switch to keep own address when replying to self-sent message (core#187)
Prev
App Suite UI
Next
Additional Components