ejabberd 24.07

Introducing ejabberd 24.07: Bugfix Release This ejabberd 24.07 is mostly a bugfix release for the recent 24.06, and also includes a few improvements.

Jérôme Sautret
· 3 min read
Send by email

If you upgrade ejabberd from a previous release, please check the WebAdmin Config Changes.

A more detailed explanation of those topics and other features:

WebAdmin API permissions configuration

The ejabberd 24.06 release notes announced the Improved WebAdmin with commands usage, and mentioned some api_permissions configuration details, but it was not explicit enough about this fact: with the default ejabberd configuration, an admin was allowed to log in to WebAdmin from any machine, but was only allowed to run commands from the loopback IP address! The WebAdmin showed the page sections, but they were all empty. In addition, there was a bug that showed similar symptoms when entering the WebAdmin from one host and then logging in as an account in another host. Both problems and their solutions are described in #4249.

Please update your configuration accordingly, adding permission from web admin to execute all commands to accounts logged in with admin privilege:

api_permissions:
  "webadmin commands":
    from: ejabberd_web_admin
    who: admin
    what: "*"

Of course you can customize that access as much as you want: only from specific IP addresses, only to certain accounts, only for specific commands…

New option update_sql_schema_timeout

The new option update_sql_schema_timeout allows the schema update process to use longer timeouts. The default value is set to 5 minutes.

This also makes batch of schema updates to single table use transaction. This should help in not leaving table in inconsistent state if some update steps fail (unless you use MySQL where you can’t rollback changes to table schemas).

Acknowledgments

We would like to thank the contributions to the source code, documentation, and translation provided for this release by:

And also to all the people contributing in the ejabberd chatroom, issue tracker…

ChangeLog

This is a more detailed list of changes in this ejabberd release:

Core

  • ejabberd_options: Add trailing @ to @VERSION@ parsing
  • mod_http_api: Fix problem parsing tuples when using OTP 27 json library (#4242)
  • mod_http_api: Restore args conversion of {"k":"v"} to tuple lists
  • mod_matrix_gw: Add misc:json_encode_With_kv_lists and use it in matrix sign function
  • mod_muc: Output muc#roominfo_avatarhash in room disco info as per updated XEP-0486 (#4234)
  • mod_muc: Improve cross version handling of muc retractions
  • node_pep: Add missing feature item-ids to node_pep
  • mod_register: Send welcome message as chat too (#4246)
  • ejabberd_hooks: Support for ejabberd hook subscribers, useful for mod_prometheus
  • ejabberd.app: Don’t add iex to included_applications
  • make-installers: Fix path in scripts in regular user install (#4258)
  • Test: New tests for API commands

Documentation

  • mod_matrix_gw: Fix matrix_id_as_jid option documentation
  • mod_register: Add example configuration of welcome_message option
  • mix.exs: Add ejabberd example config files to the hex package
  • Update CODE_OF_CONDUCT.md

ext_mod

  • Fetch dependencies from hex.pm when mix is available
  • files_to_path is deprecated, use compile_to_path
  • Compile all Elixir files in a library with one function call
  • Improve error result when problem compiling elixir file
  • Handle case when contrib module has no *.ex and no *.erl
  • mix.exs: Include Elixir’s Logger in the OTP release, useful for mod_libcluster

Logs

  • Print message when starting ejabberd application fails
  • Use error_logger when printing startup failure message
  • Use proper format depending on the formatter (#4256)

SQL

  • Add option update_sql_schema_timeout to allow schema update use longer timeouts
  • Add ability to specify custom timeout for sql operations
  • Allow to configure number of restart in sql_transaction()
  • Make sql query in testsuite compatible with pg9.1
  • In mysql.sql, fix update instructions for the archive table, origin_id column (#4259)

WebAdmin

  • ejabberd.yml.example: Add api_permissions group for webadmin (#4249)
  • Don’t use host from url in webadmin, prefer host used for authentication
  • Fix number of accounts shown in the online-users page
  • Fix crash when viewing old shared roster groups (#4245)
  • Support groupid with spaces when making shared roster result (#4245)

Full Changelog

https://github.com/processone/ejabberd/compare/24.06…24.07

ejabberd 24.07 download & feedback

As usual, the release is tagged in the Git source code repository on GitHub.

The source package and installers are available in ejabberd Downloads page. To check the *.asc signature files, see How to verify ProcessOne downloads integrity.

For convenience, there are alternative download locations like the ejabberd DEB/RPM Packages Repository and the GitHub Release / Tags.

The ecs container image is available in docker.io/ejabberd/ecs and ghcr.io/processone/ecs. The alternative ejabberd container image is available in ghcr.io/processone/ejabberd.

If you consider that you’ve found a bug, please search or fill a bug report on GitHub Issues.