> ## Content Index
> Fetch the complete content index at: https://www.process-one.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# ejabberd 24.07
- URL: https://www.process-one.net/blog/ejabberd-24-07/
- Published: 2024-07-18T14:04:00.000Z
- Updated: 2024-10-10T14:33:40.000Z
- Description: 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.
- Author: Jérôme Sautret

If you upgrade ejabberd from a previous release, please check the [WebAdmin Config Changes](https://www.process-one.net/blog/ejabberd-24-07/#webadmin-config).

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](https://www.process-one.net/blog/ejabberd-24-06/#webadmin-commands), and mentioned some [api\_permissions configuration details](https://www.process-one.net/blog/ejabberd-24-06/#webadmin-config), 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](https://github.com/processone/ejabberd/issues/4249?ref=process-one.net).

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

```yaml
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](https://docs.ejabberd.im/admin/configuration/toplevel/?ref=process-one.net#update%5Fsql%5Fschema%5Ftimeout) allows the [schema update process](https://www.process-one.net/blog/automatic-schema-update-in-ejabberd/) 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:

- [Holger Weiß](https://github.com/weiss?ref=process-one.net) for several bugfixes
- [Pouriya Jahanbakhsh](https://github.com/pouriya?ref=process-one.net) for hook subscribers support
- [Michael Slezak](https://hosted.weblate.org/user/Sketch6580/?ref=process-one.net) for Elixir logging fix
- [heyanyanchina123](https://github.com/heyanyanchina123?ref=process-one.net), fixed `mysql.sql` archive origin\_id
- [Sketch6580](https://hosted.weblate.org/user/Sketch6580/?ref=process-one.net), updated the Chinese translation
- [Ermete Melchiorre](https://github.com/sudcapitano?ref=process-one.net), updated the Italian translation
- [Wellington Uemura](https://github.com/wtuemura?ref=process-one.net), updated the Portuguese (Brazil)

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](https://github.com/processone/ejabberd/issues/4242?ref=process-one.net))
- `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](https://github.com/processone/ejabberd/issues/4234?ref=process-one.net))
- `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](https://github.com/processone/ejabberd/issues/4246?ref=process-one.net))
- `ejabberd_hooks`: Support for ejabberd hook subscribers, useful for [mod\_prometheus](https://github.com/processone/ejabberd-contrib/tree/master/mod%5Fprometheus?ref=process-one.net)
- `ejabberd.app`: Don’t add `iex` to included\_applications
- `make-installers`: Fix path in scripts in regular user install ([#4258](https://github.com/processone/ejabberd/issues/4258?ref=process-one.net))
- 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](https://github.com/processone/ejabberd-contrib/tree/master/mod%5Flibcluster?ref=process-one.net)

#### Logs

- Print message when starting ejabberd application fails
- Use error\_logger when printing startup failure message
- Use proper format depending on the formatter ([#4256](https://github.com/processone/ejabberd/issues/4256?ref=process-one.net))

#### 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](https://github.com/processone/ejabberd/issues/4259?ref=process-one.net))

#### WebAdmin

- `ejabberd.yml.example`: Add `api_permissions` group for webadmin ([#4249](https://github.com/processone/ejabberd/issues/4249?ref=process-one.net))
- 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](https://github.com/processone/ejabberd/issues/4245?ref=process-one.net))
- Support groupid with spaces when making shared roster result ([#4245](https://github.com/processone/ejabberd/issues/4245?ref=process-one.net))

### Full Changelog

[https://github.com/processone/ejabberd/compare/24.06…24.07](https://github.com/processone/ejabberd/compare/24.06...24.07?ref=process-one.net)

## ejabberd 24.07 download & feedback

As usual, the release is tagged in the Git source code repository on [GitHub](https://github.com/processone/ejabberd?ref=process-one.net).

The source package and installers are available in [ejabberd Downloads](https://www.process-one.net/en/ejabberd/downloads/) page. To check the `*.asc` signature files, see [How to verify ProcessOne downloads integrity](https://www.process-one.net/blog/verifying%5Fprocess%5Fone%5Fdownloads%5Fintegrity/).

For convenience, there are alternative download locations like the [ejabberd DEB/RPM Packages Repository](https://repo.process-one.net/?ref=process-one.net) and the [GitHub Release / Tags](https://github.com/processone/ejabberd/tags?ref=process-one.net).

The `ecs` container image is available in [docker.io/ejabberd/ecs](https://hub.docker.com/r/ejabberd/ecs/?ref=process-one.net) and [ghcr.io/processone/ecs](https://github.com/processone/docker-ejabberd/pkgs/container/ecs?ref=process-one.net). The alternative `ejabberd` container image is available in [ghcr.io/processone/ejabberd](https://github.com/processone/ejabberd/pkgs/container/ejabberd?ref=process-one.net).

If you consider that you’ve found a bug, please search or fill a bug report on [GitHub Issues](https://github.com/processone/ejabberd/issues?ref=process-one.net).