Kennisbank/Settings & admin/De admin toolbox: impersonation, force release, vastgelopen flows
13Settings & admin4 min lezen

De admin toolbox: impersonation, force release, vastgelopen flows

Knoppen met een verplichte reden, een krappe blast radius en een auditrij — voor de tenantproblemen die de gewone UI niet oplost.

De Admin Toolbox is het gecontroleerde ontsnappingspad voor tenantproblemen die de gewone UI niet kan oplossen: één tenant, één rij, één vastgelopen flow, met een verplichte reden, een audit event en de kleinst mogelijke blast radius. Niets ervan is een snellere versie van normaal werk. Alles ervan is een break-glass-pad met een logboek naast het glas.

Impersonation met write-block

De grootste tool. Vanaf de detailpagina van een gebruiker op /admin/users/[slug] start platform staff een geïmpersonateerde sessie om de app te zien zoals die tenantgebruiker hem ziet — geen mailpingpong meer over welke knop grijs staat. De start vraagt een reden van minstens vijf tekens, de sessie duurt 30 minuten en is read-only: tijdens impersonation wordt elk mutatieverzoek geweigerd, server actions weigeren te schrijven, en de banner zegt dat ook. Een nieuwe sessie starten trekt de vorige automatisch in. Start en stop gaan allebei met de reden naar de activity log, dus een tenant die vraagt “heeft er iemand van het platform naar ons account gekeken?” krijgt een rij, geen gok. Trade-in-klanten hebben hun eigen pad vanaf /admin/customers/[id], met dezelfde reden, dezelfde klok en dezelfde write-block.

De enige force-complete

Er bestaat precies één force-complete, en die is voor vastgelopen collections: een collection die in een niet-terminale status blijft hangen, toont op zijn detailpagina een platform-only escape hatch die hem naar afgerond duwt en de override naar de audit log schrijft. Receiving sessions, workflow stages en settlement runs hebben zo’n knop niet, en dat is met opzet; die lossen op via hun normale flow. Een forceerknop die niemand nodig heeft, is een forceerknop die vroeg of laat iemand indrukt.

Escrow-adminvlakken

De gewone stortingsbevestiging en annulering op /admin/escrow/pending vereisen twee platform owners. De uitzonderingen zijn beschikbaar voor platform owners en platform staff: een nog pending storting van minstens zeven dagen oud annuleren met een reden van minstens tien tekens, of het stortingsvoorstel van een andere medewerker goedkeuren met een reden van minstens twintig tekens. /admin/escrow/disputes bevat de geschilbeoordeling. /admin/escrow/force-release is alleen voor platform owners: kies verkoper, koper of verdeling, geef een reden van minstens dertig tekens en herhaal het exacte escrownummer. De deelbedragen moeten optellen tot het dossierbedrag.

Elk van deze drie beheercorrecties slaat status, eventuele goedkeuring en boekingen, dossierevent en verplichte audit samen op. Een fout laat de eerdere toestand intact. Dezelfde medewerker die dezelfde opdracht herhaalt, maakt geen tweede correctie; bestaande boekingen worden niet overschreven. De actuele platformrechten worden opnieuw gecontroleerd en een actieve impersonatiesessie blokkeert de actie. De operationele reden blijft bij het dossier. Een geregistreerde vrijgave of terugbetaling voert geen bankoverschrijving uit; een gedwongen financiële uitkomst sluit een bestaand geschil niet automatisch inhoudelijk af.

Blancco-sync op afroep

Per-tenant Blancco-sync draait op een schema, maar een tenant die net de integratie aangekoppeld heeft, hoort niet op de volgende tik te wachten. De integratiekaart op /admin/organizations/[slug] toont de verbindingsstatus en de laatste sync, en een knop “Nu syncen” draait hetzelfde codepad vóór het schema.

Gestrande gebruikers en niet-geverifieerde e-mail

De detailpagina van een gebruiker is ook de reparatiebank. Ze toont de verificatiestatus van de e-mail en de accountstaat, en biedt de invite of verificatiemail opnieuw sturen, een wachtwoordreset, schorsen en heractiveren — allemaal zonder eerst het bewerkformulier te openen. Een gebruiker die zonder gezonde organisatiecontext eindigde, is gestrand; platform staff haalt die terug in een nieuwe organisatie door een naam en een slug in te vullen. Een account verwijderen is een wispad, geen rij-delete, en is nooit beschikbaar voor je eigen account.

Tenant storage wissen

De gevaarlijkste knop op /admin/storage is “Opslag wissen”, en die is owner-only; elke andere platformrol krijgt een weigering van de server en er wordt niets aangeraakt. De dialoog laadt eerst een preview van precies wat eraan gaat — losgekoppelde documentrecords, records met ontbrekende bestanden en verweesde objecten, met aantallen — vraagt daarna de exacte organisatienaam, en zet de rode knop pas aan wanneer er iets te wissen valt én de naam klopt. Documenten die aan een levend bedrijfsrecord hangen, worden nooit meegeteld en nooit verwijderd. De uitkomst wordt fail-closed gelogd met de aantallen; kan het log niet geschreven worden, dan gaat het wissen niet door. Er is geen undo, en daarom is er een preview.

audit_events is append-only

De tabel audit_events heeft databasetriggers die UPDATE en DELETE weigeren, en elke rij is met een tamper-evident hash aan de vorige geketend, zodat een gat of een herschrijving zichtbaar wordt. Nieuwe rijen mogen erbij; de originele blijft staan. De Admin Toolbox kan repareren wat stuk is. Hij kan niet opruimen wat geregistreerd werd.