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 = true
should 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
rdbms
method enabled, you need to have the[auth.rdbms]
section in the configuration file, even if it is empty. Themethods
option is not required anymore and especially if you are using only one method, you can remove it. - The
auth.scram_iterations
option 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 = true
should 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_address
was renamed tohost
, - RabbitMQ: the
amqp_
option prefix was removed, - LDAP:
rootdn
was renamed toroot_dn
;encrypt
was removed (thetls
option should be used instead).
Section s2s
¶
- All options can be set globally or inside
host_config
. - The
host_config.s2s
section overrides the whole global section now. Previously only the specified options were overridden. - The
domain_certfile
option has been moved to thegeneral
section because it affectsc2s
connections 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_token
has a new configuration format - if you are using this module, amend thevalidity_period
option.mod_event_pusher
has an updated configuration format - thebackend
subsection is removed and thehttp
backend has a newhandlers
option. Adjust your configuration according tomod_event_pusher
documentation.mod_mam_meta
does not have therdbms_message_format
andsimple
options anymore. Usedb_jid_format
anddb_message_format
instead. (note: the module is calledmod_mam
in the most recent versions).mod_shared_roster_ldap
all options have theirldap_
prefix dropped.mod_vcard
LDAP 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.