Supported Access Control Lists (ACLs)

List of supported access control lists (ACLs) of DIDComm Mediator.

Configure your DIDComm Mediator with different Access Control Lists (ACLs) for better control and privacy for users.

Mediator-level ACLs

ACL FlagDescription
explicit_denyMediator will allow any DID to connect and forward/deliver messages unless explicitly denied.
explicit_allowMediator will deny all DIDs except for what has been explicitly allowed.
local_direct_delivery_allowedIf set to true, you can either message the mediator or to a local DID directly. If false, the DIDComm message must be addressed to the mediator, and the mediator will handle the delivery.

To configure the mediator-level ACL, edit conf/mediator.toml and restart the mediator.

DID-level ACLs

DID-level ACLs define whether a DID can store, send, or receive messages. Mediator-level ACLs apply by default to all DIDs added to the mediator.

Send and Receive Messages

ACL flags provide granular control over whether a DID can send or receive messages.

ACL FlagDescription
ALLOW_ALLDefault ACL Allow all operations (sets ACL mode to explicit_deny per DID, DID can self manage their own ACLs).
DENY_ALLDeny all operations (sets ACL mode to explicit_allow per DID)
MODE_EXPLICIT_ALLOWPer DID Access Control List (ACL) will only allow what is explicitly allowed.
MODE_EXPLICIT_DENYPer DID Access Control List (ACL) will only allow everyone except for those explicitly denied.
LOCALWill store messages for a DID on the mediator.
SEND_MESSAGESDID Can receive messages from others.
RECEIVE_MESSAGESDID Can receive messages from others.
SEND_FORWARDEDDID can send forwarded messages.
RECEIVE_FORWARDEDDID can receive forwarded messages.
ANON_RECEIVEDID can receive anonymous messages.
CREATE_INVITESDID can create OOB invites.

Self-change Flags

These allow users to update ACLs for their own DID without administrator intervention. Useful in open network modes where users need control over their permissions.

This flag is useful if you want to provide a level of control for the user to update their ACL when needed - for example, in the Public Mediator - Open Network operating mode.

ACL FlagDescription
MODE_SELF_CHANGEAllows the DID owner to change the ACL Mode for their own DID Access Control List.
ALLOW_ALL_SELF_CHANGEAllows all *_SELF_CHANGE flags (explicitly set when ALLOW_ALL is set).
DENY_ALL_SELF_CHANGEDenies all *_SELF_CHANGE flags (explicitly set when DENY_ALL is set).
SEND_MESSAGES_CHANGEAllows the DID owner to change the send_messages ACL for their own DID.
RECEIVE_MESSAGES_CHANGEAllows the DID owner to change the receive_messages ACL for their own DID.
SEND_FORWARDED_CHANGEAllows the DID owner to change the send_forwarded ACL for their own DID.
RECEIVE_FORWARDED_CHANGEAllows the DID owner to change the receive_forwarded ACL for their own DID.
CREATE_INVITES_CHANGEAllows the DID owner to change the create_invites ACL for their own DID.
ANON_RECEIVE_CHANGEAllows the DID owner to change the anon_receive ACL for their own DID.
SELF_MANAGE_LISTDID can self manage their own ACL list (add/remove).
SELF_MANAGE_SEND_QUEUE_LIMITDID can set their send queue limits (between the queued_messages_soft and queued_messages_hard).
SELF_MANAGE_RECEIVE_QUEUE_LIMITDID can set their receive queue limits (between the queued_messages_soft and queued_messages_hard).

What’s Next

  Explore Meeting Place, an implementation of Affinidi Messaging

  Explore different mediator deployment options

  Test the mediator connection