feat(rcon): add audited command history
CI / validate (push) Successful in 6m38s
Release / release (push) Successful in 8m29s

This commit is contained in:
dmg
2026-08-13 21:26:24 -04:00
parent 168a7a2c36
commit ed3f3cd843
12 changed files with 338 additions and 21 deletions
@@ -227,13 +227,19 @@ export async function executeRconCommand(
return { status: "error", message: "RCON command auditing is not configured.", serverId };
}
const started = Date.now();
const correlationId = randomUUID();
await recordAdminSubjectEvent(admin, `rcon-server/${server.id}`, "games.minecraft.account-manager.rcon.command.requested", {
serverId: server.id,
name: server.name,
verb,
commandDigest,
});
try {
await recordAdminSubjectEvent(admin, `rcon-server/${server.id}`, "games.minecraft.account-manager.rcon.command.requested", {
serverId: server.id,
name: server.name,
command,
verb,
commandDigest,
}, { correlationId });
} catch {
return { status: "error", message: "Command not sent because its audit record could not be created.", serverId };
}
const result = await executeRcon(server, command);
await recordAdminSubjectEvent(admin, `rcon-server/${server.id}`, "games.minecraft.account-manager.rcon.command.completed", {
serverId: server.id,
@@ -243,7 +249,7 @@ export async function executeRconCommand(
success: result.ok,
reason: result.ok ? null : result.reason,
durationMs: Date.now() - started,
});
}, { correlationId });
if (!result.ok) {
const message = result.reason === "busy"
? "Another command is already running for this server."