5.0.0 to 5.1.0
Configuration changes
The configuration format has slightly changed and you might need to amend mongooseim.toml.
Section listen
The options tls.verify_peer and tls.verify_mode are replaced with just tls.verify_mode. You need to amend the affected options for each listener:
verify_peer = false(the old default for C2S and HTTP listeners) should be replaced withverify_mode = "none".verify_peer = trueshould be replaced withverify_mode = "peer"or just removed, as this is the new default.
There is a new, simplified configuration format for mongoose_client_api. You need to change the listen section unless you have disabled the client API in your configuration file. Consult the option description and the example configuration for details.
Section acl
The implicit check for user's domain in patterns is now configurable and the default behaviour (previously undocumented) is more consistent - the check is always performed unless disabled with match = "all".
See the description of current_domain for more details.
Section auth
- Each authentication method needs a TOML section, e.g. if you have the
rdbmsmethod enabled, you need to have the[auth.rdbms]section in the configuration file, even if it is empty. Themethodsoption is not required anymore and especially if you are using only one method, you can remove it. - The
auth.scram_iterationsoption was moved toauth.password.scram_iterations.
See the auth configuration for details.
Section outgoing_pools
The option tls.verify_peer is replaced with tls.verify_mode. You need to change this option for each outgoing connection pool:
verify_peer = false(the old default for all pools except Riak) should be replaced withverify_mode = "none".verify_peer = trueshould be replaced withverify_mode = "peer"or just removed, as this is the new default.
A few options of the outgoing connection pools were changed for consistency:
- Cassandra servers:
ip_addresswas renamed tohost, - RabbitMQ: the
amqp_option prefix was removed, - LDAP:
rootdnwas renamed toroot_dn;encryptwas removed (thetlsoption should be used instead).
Section s2s
- All options can be set globally or inside
host_config. - The
host_config.s2ssection overrides the whole global section now. Previously only the specified options were overridden. - The
domain_certfileoption has been moved to thegeneralsection because it affectsc2sconnections as well.
Section host_config
The rules for overriding global options in the host_config section have been simplified. The auth section and the s2s.address and s2s.host_policy options now completely override the corresponding general settings instead of being merged with them.
Extension modules
mod_auth_tokenhas a new configuration format - if you are using this module, amend thevalidity_periodoption.mod_event_pusherhas an updated configuration format - thebackendsubsection is removed and thehttpbackend has a newhandlersoption. Adjust your configuration according tomod_event_pusherdocumentation.mod_mam_metadoes not have therdbms_message_formatandsimpleoptions anymore. Usedb_jid_formatanddb_message_formatinstead.mod_shared_roster_ldapall options have theirldap_prefix dropped.mod_vcardLDAP options are moved into an LDAP subsection.
Async workers
The async_writer flag of MAM is now a section on its own, that absorbs previous flags related to it: flush_interval, max_batch_size and pool_size now become subelements of the async_writer section, with one more parameter, enabled. Below an example:
1 2 3 4 | |
1 2 3 4 | |
Smart markers
There's an experimental and undocumented module called mod_smart_markers, that had a default table in the RDBMS schema, which you probably never used (or shouldn't have, as it was undocumented). If you rely on this table, the column from_jid has been split in from_luser and lserver, in order to support the remove_domain callback for the dynamic domains functionality. You might need to migrate it, or simply drop the previously defined table and recreate the new one.
Inbox
The archive functionality recently introduced has been extended to support many more boxes. IQ queries can remain as they were, but, a new flag called box is now introduced, and if provided, it takes preference over the old archive flag. The database requires a migration, as the archive is now a column storing the proper name of the box, see the migrations for Postgres, MySQL and MSSQL in the priv/migrations directory.
Removal of deprecated modules
mod_revproxy- removed from the code base as it was unsupported since 4.2.0.mod_aws_sns- its functionality is fully covered bymod_event_pusher.
Internal module configuration rework
If you are using your own extension modules (or services), you need to update the code. The most important change is that configuration options were stored in proplists before, and now they are stored in maps, so e.g. the start/2 function of your module should expect a map as the second argument.