Major improvements
Mobility: Exchange Active Sync
he Exchange Active Sync protocol doesn’t include the notions of shared calendar or shared mailbox. This had been added to BlueMind version 3.5 by showing shared items as though they belonged to the user. This feature is now available in BlueMind 4.3.
We’ve also added the possibility to subscribe to shared mailboxes the same way as for shared calendars of address books.
Password expiry
This version adds passport expiry management to BlueMind. When this feature is enabled, users are forced to change their password when they expire. Administrators can expire passwords with immediate effect to force a user to change it.
Please refer to our documentation for more details.
New distributions
This version adds support for the following distributions:
- Ubuntu FOCAL (20.04 LTS)
- RedHat Entreprise Linux 8 and CentOS 8.
Software Defined Storage (Object storage)
Several improvements to object storage support. Improved system performance and reliability.
During IMAP messages download, the CYRUS-IMAPd server downloads the messages on the object storage concurrently in order to improve performance.
The status tables showing what folder a message is located are now managed by BlueMind to improve IMAP storage reliability.
Updated dependencies
PostgreSQL has been updated from version 11 to version 12. This update brings several performance improvements, in particular on the partitioning system BlueMind now uses.
TICK monitoring components have been updated:
- Telegraf 1.14
- Chronograf 1.8.4
- InfluxDB 1.8.0
- Kapacitor 1.5.4
Performance improvements
In order to synchronize mobile devices with BlueMind, all the changes made to address books, calendars, etc. have to be updated. The related information is saved as a database in the t_container_changeset table.
On large installs, this table might get big enough so that performance issues might be perceptible by users. In BlueMind 4.3.0, this table is partitioned into several small segments to ensure good performance while handling a large volume of data.
The bm-cli command line tool has been optimized to reduce start-up time.
Web applications (Calendar, Contacts, …)
We now use “Service Workers” to cache web application files. The old “Application Cache API” system is deprecated by recent browsers.
Automatic edge server management
BlueMind now supports comprehensive edge server configuration. The nginx server can now be configured automatically.
Existing installs aren’t automatically managed by BlueMind so as not to interfere with them running smoothly. BlueMind can manage an edge server by adding the “bm/nginx-edge” tag to the server through the admin console.
When the “bm/nginx-edge” tag is added, the nginx configuration is overwritten by the BlueMind configuration. Any nginx-specific configurations will have to be reapplied.
Technical domain
The configuration of a new domain requires the creation of a unique identifier, which cannot be changed in BlueMind. Historically, the unique identifier was also the name of the domain entered by the user.
In order to facilitate future changes to a domain name (new name, merger, etc.) the admin console creates a virtual name as a unique identifier (this doesn’t affect the domain created through the API).
For users who create a new domain, when users are created, the alias pointing to the actual domain name has to be specified in addition to the alias on the technical domain.
This method of operation, which is now automatic, was recommended in earlier versions.
Internal components
- webserver: Fixes several log issues and removes obsolete code
- Updates netty 4.1.51 and Vert.x 3.9.2
- Adds a component that enables SMTP email injection.
- [ysnp]: When a password is modified, the change is effective immediately.
- Updates JDK to version 8u252
- Updates ldap directory API to version 1.0.3.
- BM-15911: Updates of NGinx to version 1.18.0 and uses systemd for the bm-nginx package. Adds HTTP2 support.
- BM-16045: Database updates are now forced in transactional mode to ensure consistency in the event of update failure.
- BM-16025: During the execution of the consolidateDomain task, a (non-blocking) error is displayed: “Mismatch in value and item count on container”. This line has been removed.
- BM-15993: Removes a log on HPS service start-up (error related to equinox.ds@start)
- Removes the “bm-locator” component. This component is no longer used and automatically removed.
- BM-15964: external-url is no longer configured through /etc/bm/bm.ini. The value is still present in the configuration file but its value has to be edited in the database (Admin console or bm-cli sysconf).
- BM-15928: Fixes an error that could cause duplicated entries in a container’s changelog.
- BM-15953: The default domain is no longer configured in /etc/bm/bm.ini. Changes to the “default domain” value is now registered without restarting.
- BM-15917: Fixes homepage coding that may cause display issues.
- WORTEKS-112: Fixes an issue with the HPS component blocking. During the verification of the CAS ticket, the parsing of XML documents has been improved to reduce processing time for CAS response analysis.
- BM-16148: Improves the management of the “hollow” database. In some scenarios, BlueMind keeps too many database captures and causes excessive disk usage in /var/spool/bm-hollowed.
- BM-16125: Improves mailbox renaming – adds prior verification in case the destination mailbox might be planned for deletion.
- DATAXP-69: Tells robots (google, bing, etc.) to avoid BlueMind’s indexing page.
- BM-15756: Fixes invalid permissions from /var/spool/postfix/deferred that caused repeated log errors (syslog).
Exchange Migration
- FEATBL-1092: TODO (mailshare migration)
Calendar:
- BM-15842: No longer sends notifications for past recurring events.
- Fixes an issue that caused excessive resource consumption.
- BM-15644: When a domain doesn’t have an associated file hosting server, attaching files to events isn’t possible.
- BM-15950: Fixes an ICS import error when an ICS contains ICS tags in the event description.
- BM-16127: Fixes a Google Calendar synchronization issue when only the definition of the recurrence is edited.
- BM-15947: Events with attachments no longer produce a message wrongly saying that the event has been changed.
Address books
- BM-15681: When a contact is created, the full contacts edition form now opens for completion of details.
LDAP/Active Directory imports
- BM-12386: Search results pagination management. This feature makes it possible to import more than 1,000 (OpenLDAP) accounts, groups or any other search without modifying the LDAP server’s limits.
- BM-15991: Adds the import of the Active Directory fields “division” and “employeeType”.
- BM-14742: The members of a group of groups are now taken into account when the “Split Domain” feature is used.
- BM-16215: When a user has been suspended, the LDAP import no longer attempts to suspend the user again.
IMAP
- BM-15603: Fixes an issue when a user created a folder in a special Cyrus sub-folder (Sent, Draft, etc.) – the user was no longer able to delete this folder. Repairing the users affected by this issue will automatically fix associated rights.
- BM-16017: On CentOS 7 (RHEL7), /var/lib/cyrus/, directories are automatically created. This change prevents a non-blocking error on new installs.
- BM-16214: Fixes a memory leak in the imap client of BlueMind’s imap component.
API
- BM-15866: Adds the possibility to cancel a task in progress.
- BM-15518: Adds the possibility to search emails by read status.
- BM-15984: Fixes an issue with mailshare file deletions.
- BM-15948: Fixes the “mark as read” features for shared mailboxes (IMailboxFolders.markAsRead).
- BM-15931: Adds a verification step before ACLs that have no “Subject” (container) are saved.
Exchange Active Sync
- BM-15482: Fixes a synchronization issue on iOS (Apple) when invitation emails contain too many attachments.
- BM-15755: Adds shared calendars, address books and mailboxes support.
- BM-16067: Phone number synchronization is now done in a separate execution thread in order to reduce latency perceptible by users.
- BM-7948: The synchronization of the “public folders” directory is no longer systematic but only when required.
Command Line Interface (bm-cli)
- BM-15764: Adds the possibility to remove a user’s external-id.
- Adds the possibility to pass json objects directly in sysconf mset command without having to go through a file. E.g.:
- bm-cli sysconf mset --format json <(echo ‘{“foo”: “bar”}’)
- Adds the job command, which monitors asynchronous tasks progress.
- Improves start-up performance.
- BM-15869: Fixes the bmctl restart command, which sometimes froze and prevented all services from restarting properly.
Software Defined Storage
- Adds the sds-proxy process in bm-pimp with a 1% available memory allowance.
- BM-15834: Fixes an error when moving an email from one directory to another.
- FEATBL-1042: Completely replaces the object indexing system used by cyrus-imapd by a BlueMind implementation.
- Adds a dashboard and related metrics to object storage (Software Defined Storage).
- Replaces the Amazon S3 access client by the netty-based asynchronous version.
- Adds concurrent email download support (improved performance).
- BM-16009: Fixes an issue in the Cyrus implementation that stopped reconstruct to be used when the S3 storage couldn’t be reached.
- BM-16008: When the SDS service isn’t available, cyrus must not accept incoming messages so that postfix doesn’t consider the send operation to have been completed.
- BM-15999: Fixes an issue on bm-sds-proxy service start-up when S3 isn’t available. bm-sds-proxy now tries to reconnect to S3 indefinitely.
TICK Monitoring
- Improves Mail Insight metrics. Adds active EAS session counting.
- Adds bm-sds-proxy memory monitoring.
- Adds YSNP metrics that measure authentication validation response time.
- Removes the “locator” component – which is no longer present in BlueMind 4.3.0 – from the dashboard.
- Adds a dashboard for viewing the status of internal caches used by BlueMind.
- Adds an object storage (SDS) status dashboard.
- BM-15209: Automatically adds the bm-plugin-admin-console-monitoring package when BlueMind is installed.
MAPI
- BM-15828: Fixes a message flagging issue.
- HUMSCO-55: The size of messages handled by MAPI can now exceed 10MB. The server’s settings are now used.
- BM-15939: Adds the possibility to move messages in bulk.
- BM-16001: Fixes an error when copying a message to a public folder.
- BM-14851: Fixes an issue during updates of contacts from domain address books.
- BM-15900: Outlook start-up performance improvement. BlueMind no longer goes through the full list of shared mailboxes.
- BM-14848: Adds S/MIME signed messages support in public folders.
- BM-16177: Fixes a synchronization error when an RTF message is too big and cannot be converted to html.
- BM-16170: Fixes a synchronization error when a user attempts to delete a previously deleted message.
- BM-16174: Fixes an error during the clean-up of attachments after synchronization on the BlueMind server.
- BM-16173: When the file hosting server isn’t available, fixes an error sent to the Outlook client.
- BM-16171: Fixes an issue when a message contains an empty HTML part.
- BM-16172: Adds the management of a copy of a non-existent message on the server.
- DATAXP-66: Fixes an issue that blocks Outlook synchronizations when loading meeting attachments.
- BM-16056: Adds the management of the RopCopyProperties call.
- BM-16212: When an MAPI operation isn’t implemented by BM-MAPI, an error code is now returned to Outlook without the whole process being dropped.
- ATEMIS-34: Fixes an error when an unknown folder is deleted.
- BM-16192: Stops RTF message bodies bigger than 2MiB after compression being sent.
Admin console
- BM-15855: Fixes the English version of the resource types page.
- BM-15770: Adds the possibility to configure the region used by S3 storage.
- FEATWEBML-623: Adds a configuration panel for the new Mail application preferences.
- BM-15880: When a domain is deleted, domain filter deletion errors are ignored.
- BM-15865: Improves password field display. Passwords can be unhidden by clicking an icon shown in the field (Identification only).
- BM-15348: Improves domain quota management. Entering a quota lower than one of the domain’s users is now impossible.
- BM-15260: The list of organisational units (OU) can now include more than 25 entries.
BlueMind 3.5 Update
- BM-16059: Adds the automatic creation of the /var/spool/bm-hsm/cyrus-archives directory when the bm-cyrus package is installed.
- BM-16052: Adds a database clean-up system. Invalid information from earlier BlueMind versions is now cleaned up automatically.
- BM-16053: Adds the bm-ips package to make updating easier.
Back-up
- WORTEKS-97: IMAP back-ups by rsync are now executed concurrently. This significantly improves back-up performance. This change was inspired by a Worteks modification.
- BM-14874: Fixes a temporary database deletion error.
- BM-15929: Fixes an account restoration error if the account already exists in BlueMind.
- Improves back-up size calculation speed by using source space disk rather than destination (This saves input/output consumption on an NFS server).
- Improves back-up clean-up speed by using rsync instead of rm.
File hosting
- BM-15965: The maximum file size, configured in the admin console, is now properly propagated in the nginx configuration.
Outlook/Thunderbird Connectors
- BM-15365: The Outlook connector no longer stops synchronization when the File menu is opened.
CLI (bm-cli)
- FEATBL-1099: Adds the filehosting commands that enable command line activation. E.g.:
- bm-cli filehosting info
- bm-cli filehosting activate --domain dev-bm4.test --server-uid bm-master --group user
Known issues
Version 4.3.0
-
BM-16222: An error may come up when creating a public folder from Outlook. As a workaround, use webmail to create public folders.
-
BM-16231: A missing index might cause the system to slow down as well as excessive input/output usage. As a workaround, create the index manually on the bj-data database:
PGPASSWORD=bj psql -h localhost bj-data bj -c 'create index concurrently on t_container_changelog (container_id, item_id, version);'