System-User
Konzept
Fuer programmatische Aenderungen (Hooks, Jobs, Migrations) gibt es einen eingebauten System-User. Dieser hat die Rolle "system" die kein echter User haben kann.
const SYSTEM_USER: PipelineUser = { id: 0, tenantId: 0, // wird pro Aufruf gesetzt roles: ["system"],};Anwendungsfall
Ein PostSave-Hook will Config aendern die der ausloesende User nicht aendern darf:
r.hook("postSave", "orders.order", async (result, ctx) => { const total = await calculateMonthlyTotal(ctx.db, result.data.tenantId); // User A hat den Write ausgeloest, darf aber billing.monthlyTotal nicht aendern await ctx.config.set("billing.monthlyTotal", total, { as: SYSTEM_USER });});Audit-Log
- Write von User A → User A steht im Audit-Log
- Config-Aenderung im Hook →
systemsteht im Audit-Log - Kein Bypass, kein Sonderweg —
"system"Rolle hat einfach Zugriff