2. Configuration

Configuration of MIX component is extended version of PubSub component configuration. We will not describe here configuration of PubSub component as it already available in PubSub component documentation.

2.1. Setting ACL

With ACL you can control who can create publicly visible channels and also ad-hoc channels. ACL properties accept following values:

ALL

Anyone can create channel

LOCAL

Only local users can create channels (from all local domains on all local domains)

ADMIN

Only installation administrator can create channels

DOMAIN_OWNER

Only domain owner of the domain as the domain under which MIX component is running can create channels

DOMAIN_ADMIN

Only domain administrator of the domain as the domain under which MIX component is running can create channels

DOMAIN

Only users from the same domain as the domain under which MIX component is running can create channels

2.1.1. Setting ACL for creation of public channels

Property name: ``publicChannelCreationAcl``

Default value: ``DOMAIN_ADMIN``

By default we allow only local domain owners or admins to create publicly browsable channels.

Allowing domain users to create public channels.

mix () {
    logic () {
        publicChannelCreationAcl = 'DOMAIN'
    }
}

2.1.2. Setting ACL for creation of ad-hoc (private) channels

Property nmae: ``adhocChannelCreationAcl``

Default value: ``DOMAIN``

Allowing all local users to create public channels.

mix () {
    logic () {
        adhocChannelCreationAcl = 'LOCAL'
    }
}

2.2. Disabling support for MUC

MIX component by default exposes MUC compatibility layer for clients that doesn’t support MIX yet, so they would still be able to participate in the MIX channel conversation. It’s possible to disable it with the following option.

Disabling support for MUC.

mix () {
    roomPresenceModule (active: false) {}
}

2.3. Setting limit of cached channels

Property name: ``maxCacheSize``

Default value: ``2000``

MIX component is caching channels configuration and affiliation in memory while it is processing request for the particular channel. To make that more efficient it is using cache to keep the most often used channels configuration in memory instead of loading it every time.

You can increase this value by setting maxCacheSize property in the config scope of the MIX component:

Setting limit of cached channels.

mix () {
    config () {
        maxCacheSize = 3000
    }
}