> ## 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 17.06-beta
- URL: https://www.process-one.net/blog/ejabberd-17-06-beta/
- Published: 2017-06-14T22:00:00.000Z
- Updated: 2024-09-19T09:05:01.000Z
- Author: Jérôme Sautret

ejabberd 17.06-beta includes a lot of improvements over the previous 17.04 release. To name the most important ones: new caching system, Riak support for several modules and introduction of Certificate Manager.

Certificate Manager is a feature that has been requested by many organisations, allowing administrators to manage their certificate more easily. From now, starting ejabberd with an invalid certificate will dump a clear entry in ejabberd log file, explaining what’s wrong. Upcoming ACME support will further refine these improvements we’ve worked on early this year to give our users a great experience with certificate management.

The new cache system is also a new component that allows fine tuning of ejabberd performance for either small systems or large scale servers. To use data cache for a supported module, you need to set the module option `use_cache`. You also have the possibility to define a maximum number of cache entries and/or maximum life time of cached data, so you keep control on your memory use. Example:

```
modules:
  mod_roster:
    use_cache: true
    cache_size: 10000
    cache_life_time: 3600  # 1 hour

```

The cleanup tasks on all ejabberd API also continue, consider checking against few methods rename.

Some features and fixes are missing from the 17.06 milestone, and will be worked on the next couple of weeks.

## Changes

### API

- Deprecate `misc:encode_base64/1` and `misc:decode_base64/1`
- Rename `is_user_exists` function to `user_exists`
- Allow api access on both ipv4 and 6 loopback addresses

### Admin

- Refactor ejabberdctl
- Improve ejabberdctl parameters parsing

### Configuration

- Validate module options on start\_module/2
- Validate new options before module reloading
- Validate second-level options
- Introduce `iqdisc` global option
- stream\_management listen option deprecated, use mod\_stream\_mgmt
- Check presence of some files during option validation
- Speedup configuration options lookup
- Validate all certfiles on startup
- Only validate certfiles if `public_key:short_name_hash/1` is available
- Introduce Certficate Manager

### Commands

- Add clear\_cache admin command
- Parse correctly presence\_broadcast option in change\_room\_option command
- Describe command arguments and results in `mod_muc_admin`
- Improve export2sql explanation; remove obsolete and duplicated command
- Fix and document `push_roster_all` command

### Compilation

- Erlang 17.5 or higher is required
- Add `--enable-system-deps` configure option
- Add `--enable-stun` and `--enable-sip` configure options

### Core

- Speedup Mnesia tables initialization
- Improve Mnesia tables creation and transformation
- Improve `ejabberd_c2s:close()`
- ejabberd\_c2s: Don’t close session on stream resume
- Speedup loading of translation files
- Fix `ejabberd_router:is_my_route/1`

### Databases

- New `sql_connect_timeout` option
- New `sql_query_timeout` option
- Get rid of sql\_queries.erl
- Use round-robin algorithm when selecting worker from DB pool
- Add Riak as BOSH RAM backend
- Add Riak as mod\_proxy65 RAM backend
- Add Riak as mod\_carboncopy RAM backend
- Add Riak as router RAM backend
- Add Riak as session manager RAM backend
- Fix cleaning of Riak route table

### Cache

- Implement cache for mod\_announce
- Implement cache for mod\_private
- Implement cache for mod\_privacy/mod\_blocking
- Implement cache for mod\_last
- Implement cache for mod\_vcard and mod\_vcard\_xupdate
- Implement cache for roster
- Add cache options to the validator
- Use cache for authentication backends
- Use new cache API in mod\_shared\_roster\_ldap
- Use new cache API in ejabberd\_oauth
- Use new cache API in mod\_mam
- Use new cache API in mod\_caps
- Use cache in front of Redis/SQL RAM backends

### Modules

- mod\_http\_upload: Add support for HTTP File Upload 0.3.0
- mod\_mam: Added export function
- mod\_metrics: Don’t leak with UDP sockets
- mod\_metrics: New options ip and port
- mod\_muc: Allow a room admin to un/subscribe another JID
- mod\_offline: Don’t store messages via a single process
- mod\_offline: Make sure only jabber:x:event tag is present in offline event
- mod\_register: New option ‘access\_remove’ ACL
- mod\_stream\_mgmt: Preserve stanza count on timeout
- mod\_vcard\_ldap: Parse `ldap_uids` like in eldap\_utils

### Elixir

- Update elixir to v1.4.4

### Installer

- Upgrade OTP to 19.3

## Feedback

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

The source package and binary installers are available at [ejabberd XMPP & MQTT server download page](https://www.process-one.net/en/ejabberd/downloads/).

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