The back office your team runs the business from.
Search anyone, fix anything, see who did what. The internal tool that usually gets duct-taped together, built properly, with permissions and an audit trail from the first screen.
Who can touch what, in one grid.
| action | Owner | Support | Analyst |
|---|---|---|---|
View customers customer.view | |||
Refund invoice invoice.refund | |||
Suspend account account.suspend | |||
Export data data.export | |||
Edit billing billing.edit | |||
Delete account account.delete |
Nothing an admin does is invisible.
Permissions and the log aren't two features to keep in sync. Every privileged action runs through one wrapper: it checks the role, does the work, and records it. Skip the wrapper and the action simply doesn't exist.
Dana O. refunded $49 on Globex · invoice #4471
2m ago
Sam C. suspended Umbrella
1h ago
System flagged for review past_due · over 30 days
3h ago
Priya N. exported customers.csv · 412 rows
yesterday
Marco R. changed plan on Initech · Starter to Scale
yesterday
1// every privileged action goes through one gate,2// so none of them can skip the check or the log3export async function withAudit(actor, action, target, run) {4 if (!can(actor.role, action)) throw new Forbidden(action);56 const result = await run();7 await audit.write({8 actor: actor.id, action, target, at: clock.now(),9 });10 return result;11}A back office your team can actually be trusted with.
Search, act, and resolve, with roles that gate every action and an audit trail that can't be skipped. No database client, no one-off scripts.