Security
Roles, tokens, audit log and file permissions.
Who may do what
Two separate mechanisms that are easily confused.
access.toml governs who may operate the cloud, that is /mutecloud in game, the HTTP API
and the dashboard. Roles bundle rights, players get roles:
Shipped are admin with *, moderator with view and restart, and viewer with view
only. Own roles come from role create and are filled with role grant.
ranks.toml on the other hand governs player rights on the servers, so prefix, suffix and
Bukkit permissions, distributed through the bridge. If LuckPerms is in use, leaving it empty keeps
MuteCloud out of permission handling entirely.
Tokens
The token in mutecloud.toml under [api] grants full access. For every other consumer:
Every token receives only the rights it requires. token list shows when each was last
used.
After eight wrong tokens an address is locked out for a minute, on HTTP as well as on the WebSocket, and a message goes out. The dashboard has the same brake after five attempts, additionally across all addresses.
Audit log
Every command from outside is recorded in audit.log:
Covered are the in-game path, the API and the dashboard. Read it with audit or
audit 50, the right for that is *. The log rotates daily and is kept for ninety days,
configurable under [logs].
Files
mutecloud.toml and access.toml belong to the owner only, they hold tokens and password
hashes. The same goes for forwarding.secret in the proxy template. Dashboard passwords
are stored as Argon2id hashes.
Dashboard
Off by default. dashboard on enables it, dashboard password <new> sets the shared
password, user password <name> <new> gives a player their own login with their roles.
For public use set a domain and a mail address, then the cloud fetches a Let's Encrypt certificate: