Add a staff audit feed for notable service actions
A [log] channel now receives a one-line announcement of each notable state change a service command makes — registrations, drops, vhosts, suspensions, akicks, access and founder changes, bot and oper host-config changes — naming the actor (by nick, plus account when it differs) and what changed. The feed reads the typed event log directly: dispatch marks the log before running a command and diffs it after, so each announcement is exactly that command's footprint, sourced from the services server so it reaches the channel without a pseudo-client having to be present. Private and cosmetic events are deliberately never surfaced: memo bodies, password/verifier material, greets, auto-join, personal and channel cosmetic settings. Omitting [log] disables the feed.
This commit is contained in:
parent
34892dbba7
commit
698d604954
5 changed files with 184 additions and 0 deletions
|
|
@ -105,6 +105,7 @@ async fn main() -> Result<()> {
|
|||
engine.lock().await.set_irc_out(irc_tx);
|
||||
engine.lock().await.set_opers(cfg.opers());
|
||||
engine.lock().await.set_sid(cfg.server.sid.clone());
|
||||
engine.lock().await.set_log_channel(cfg.log.as_ref().map(|l| l.channel.clone()));
|
||||
|
||||
if let Some(gossip) = cfg.gossip.clone() {
|
||||
tracing::info!(peers = cfg.peer.len(), "starting gossip");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue