Obtain property "com.openexchange.imap.considerSubscribedInListExtended" via IIMAPProperties to gain config-cascade and per-account support (support#1543)
Property "com.openexchange.imap.considerSubscribedInListExtended" (true/false/probe) to obtain subscription state from separate LSUB when the \Subscribed attribute of LIST-EXTENDED responses is untrustworthy (support#1543)
Property "com.openexchange.imap.considerSubscribedInListExtended" (true/false/probe) to obtain subscription state from separate LSUB when the \Subscribed attribute of LIST-EXTENDED responses is untrustworthy (support#1543)
Correct case-insensitive match and quieten expected 'mailbox does not exist' on MYRIGHTS
Scoped Entity2ACL look-up caches to the requesting session and account
Keep emitting user_id 0 for non-user contacts to preserve HTTP-API compatibility (support#1438)
Populate internal user id consistently in results from LDAP contacts provider (support#1542)
The context id required to resolve a requested internal user id is fetched implicitly again throughout the search- and auto-complete flows, and the caching layer no longer exposes the internal 0 sentinel, no longer overrides live-resolved identifiers with unresolvable cached data, and yields complete fallback results.
Restored xs:date/nillable for SOAP birthday and anniversary (support#1551)
Bump About-box default copyright year to 2026 (support#1553)
Store DB-assignment and schema-update-state cache entries as plain per-context/per-schema keys instead of one global group hash (support#1562)
Detect synthetic sessions by origin, not instanceof
A ServerSessionAdapter wrapping a GeneratedSession is not instanceof GeneratedSession, so scheduling transport skipped its no-reply fallback and tried to OAuth-authenticate a token-less session. Check Origin.SYNTHETIC.
Fixed: Detect synthetic sessions by origin, not instanceof 2f49794e @
INU-5112: Checktablelayout tool to reconcile schema layout against CreateTableService reference
PBSR-1688: Include 'Sensitivity' header in scheduling and notification mails if applicable
SCR-1583: Per-user Filters for LDAP Contacts Provider
SCR-1714: PBSR-1613: REST Interface to Retrieve Effective Shared Account Permissions
SCR-1726: Sanitize_css" parameter for /mail?action=get
Virtual threads for the Grizzly HTTP worker pool and request-driven fan-outs
Made user provisioning site-aware
This includes a grpc connection between sites
Return oidc id token to edge-auth
"replace_external_images" parameter for /mail?action=get
Documentation on outgoing calendar scheduling messages and notifications
Handle shares via external authentication service
Added new scopes for basic access and elevated access
Introduced the scopes "basic" which allow access to all basic functionality and "elevated" which allows access to everything including password changes and similar.
The basic scope is used as a fallback if no scope is defined for edge authentication.
External auth redeemToken action
GRPC implementation for listBytypes for OXUser
Oidc login handler, common bundle and new endpoint
Poc for external auth login servlet
Added: added oauth in flight implementation
Added in flight handler with basic auth impl
Register rmi services as Remote + some cleanup
Add o-x-reseller-grpc package to list
Translation updates 8.50
all languages but Latvian
Introduced cross site bundle and push routing (core#353)
introduced new bundle co.ox.multisite
introduced new MultiSiteService
implemented routing for dovecot push messages (mail and calendar)
Export com.openexchange.admin.rmi.exceptions from freshly introduced com.openexchange.rmi.common, adding new bundles to seperate (grpc) provisioning between 'admin' and 'non-admin' tools to establish a cleaner packaging and keep the option to disable the admin feature.
SCR-1724: Upgraded OSGi core library in target platform (com.openexchange.bundles)
External auth refactorings
Simplified the response json structure
Some code cleanup + renamings
Added missing javadoc
Make Grpc core bundles extensible
introduced extension interfaces which allows to separate bundles. This allows more flexible packaging
Require c.o.multisite.enabled for grpc based communication
To prevent excessive database load I adjusted the delegate logic with the AbstractSiteAwareService to check the c.o.multisite.enabled property first
Some renaming + javadoc + minor adjustments
Use correct redirect for shares with password
Bound OXWorker platform-pool default and enable DB pool waiter cap (core#520)
Add owner-trace diagnostic logging for filestore snippets (support#1329)
CP-572: Avoid full Redis key-space scan when closing sessions by user/context filter
INU-5112: Utf8mb4 conversion skips columns inheriting their charset from the table default
IOL-2841: Reconnect mail access when attachment handling takes too long
Re-add UpdateTaskV2 import lost in rebase
Liquibase migration failed on MariaDB with "Unknown column 'EXPRESSION'"
Minor preparations before merging activeactive into main
Orderly determine existingUISettingsSecret checksum and document existing*Secret values
The existingUISettingsSecret was missing from core-mw.existingSecretsChecksum, so content changes to that secret did not trigger a rolling restart unlike the other existing* secrets. Added the missing block.
Also added a guide on the existing*Secret values to the chart README, clarified the additive-vs-replace behavior in the values.yaml comments, and bumped the chart version to 6.22.2.
Addressed some grpc converter issues
Adjusted packaging for removed request analyzer
Adjusted tests
Reduce wait time for no reply checks
Add timeout to avoid race condition for second precision checks
Did some grpc based refactoring/cleanup
Simplified the grpc based extension registration by removing all unnecessary trackers
Pin the JDOM SAX parser to Apache Xerces for deterministic XML parsing
JDOMParserImpl built its SAXBuilder via the default engine, i.e. SAXParserFactory.newInstance(). In the OSGi runtime that JAXP discovery resolves - depending on the thread-context classloader - to either the JDK built-in parser or the repackaged Apache Xerces (com.openexchange.xerces), which disagree on how a disabled-but-referenced external entity is handled. That non-determinism surfaced as a flaky DAV REPORT status (e.g. com.openexchange.dav.caldav.bugs.Bug30359Test intermittently getting 400 instead of 207). Pin the parser to Apache Xerces explicitly so the behavior is deterministic and independent of the JDK version; the XXE hardening (empty entity resolver, external entities and external DTD disabled) is unchanged.
Remove duplicate tracking
Remove legacy remote registration
fix: Breaking recursive calls of getService for optional gRPC services, some refactoring
Remove null==value check before setting valueSet bool flags
Fix unmarshalling of proto map for userAttributesMap in toRmiUser() converter
Adjust segmenter endpoint definition to match actual segmenter service
Remove old RMI registrations which shall be replaced by site-aware RMI
Make Site-Aware Services always start. Remove remaining Remote registrations
Some additional cleanup + refactoring
Remove session ids from response
Use login instead of formlogin
Some more hardening for edge authentication
Adjusted form login handling
Deny Write-Access for Guest Users in Public Calendar Folders (core#516)
SCR-1717: Deny Write-Access for Guest Users in Public Calendar Folders
SCR-1718: Update Task to Downscope Unsupported Guest Permissions
Normalize ACL rights before checking their equality (core#522)
Make del_user recovery-data insert idempotent via ON DUPLICATE KEY UPDATE to allow user deletion despite stale recovery rows (core#523)
Take over intermediate participation status from incoming COUNTER proposals (core#524)
Data: URL inline images rendered with empty src in display path (support#931)
Recover attachment file name truncated at first space (support#1148)
Calendar notifications not sent for delegate edits on shared calendars (support#1439)
Reply set wrong From/To for ambiguous alias on IDN domain (support#1440)
Merge schema lists in Java to avoid collation mismatch in update task listing (support#1467)
Skip non-applicable deputy modules on read instead of failing with DEPUTY-0006 (support#1474)
Recover from read-only replica after Redis Sentinel fail-over (support#1482)
Retry/back-off for retryable mail access errors when transporting scheduled mails (support#1495)
Stop DB heart-beat after a failed keep-alive instead of retrying on a dead connection (support#1501)
Mimic Browser access to external image protected by Akamai (support#1504)
Delete db_cluster child row before db_pool parent on database unregistration (support#1506)
Make a failed scheduled-mail failure-notification visible (support#1515)
Add opt-in overload protection for cache-outage DB stampedes (support#1517)
Quota retrieval fails on global DB due to missing committedFiles column (support#1518)
Clarify CLI error when provisioning credentials are missing (support#1519)
Timezone-dependent off-by-a-day in IMAP date search (support#1521)
Reuse one IMAP connection per endpoint when serializing folder counts (support#1522)
Task notification mail labels medium priority as "Normal" instead of "Medium" (support#1524)
Task notifications not sent for attachment changes (support#1527)
Validate From/Sender ownership on mail bounce (support#1531)