Wissensbasis/Settings und Admin/Die Admin Toolbox: Force-complete, Impersonation, Stuck-flow Fixes
13Settings und Admin4 Min. Lesezeit

Die Admin Toolbox: Force-complete, Impersonation, Stuck-flow Fixes

Buttons mit Audit, Reasons und engem Blast Radius fuer stuck Escrows, Force-completers, stranded Signups und read-only Impersonation.

Die Admin Toolbox ist der kontrollierte Escape Path fuer Tenant-Probleme, die die normale UI nicht loesen kann: ein Tenant, eine Row, ein stuck Flow, mit Audit, verpflichtender Reason und kleinstmoeglichem Blast Radius.

Force-complete Endpoints

Bestimmte operative Flows haben eine force-complete escape-hatch in der Platform Admin UI: eine receiving session, die wegen stale lock nicht schließt, eine workflow stage, die vorankommen muss, obwohl ein Kriterium fehlt, ein settlement run, der auf halbem Weg aborted. Jede force-complete schreibt ihr eigenes Audit Event mit Grund, Actor und affected rows. Die Endpoints existieren nicht für allgemeinen Gebrauch; sie sind der “somebody needs to break the glass”-Pfad.

Drei Escape-Hatches für stuck Escrows

Escrows können auf drei spezifische Arten wedgen: deposit confirmed aber funds kamen nicht an (payment-side mismatch), goods received aber ship-guard hob nicht ab (ship-event-side mismatch), release ready aber settlement row konnte nicht geschrieben werden (settlement-side mismatch). Jede bekommt ihren eigenen Admin Button unter /admin/escrow mit Confirmation Prompt, der exakt erklärt, was geflippt wird — keine zusammengesetzten Actions hinter einem Klick.

Manual Blancco Sync Trigger

Per-tenant Blancco Sync läuft per Cron, aber wenn ein Tenant gerade die Integration konfiguriert hat oder gerade einen Bulk-Import hatte, der sofortige Aufmerksamkeit braucht, löst ein Admin Button den Sync on demand aus. Der Trigger respektiert dieselbe Rate-Limit und dasselbe Batching wie der Cron — derselbe Code Path, nur vor dem nächsten geplanten Run.

Email-verification + stranded-signup recovery

Wenn ein Tenant Admin sich registriert, aber nie die Verification Email erhält, zeigt /admin/users den Verification Status und bietet ein Re-send. Stranded Signups (gestartet, aber nie abgeschlossen) erscheinen in /admin/onboarding mit der Option, manuell zu clearen oder den Welcome Flow erneut zu senden.

Subscription-status override

Wenn der subscription_status eines Tenants vom gemeldeten Status des Billing Providers abweicht (selten, aber es passiert — Webhook verpasst, manuelle Kuendigung), bietet /admin/billing ein direktes Override Field mit verpflichtender Reason Note; der Override wird audit-logged und der Billing Provider beim nächsten Webhook reconciled.

Impersonation with write-block

Das größte Tool. /admin/impersonate lässt Platform Staff sich als Tenant User einloggen (read-only), um zu untersuchen, was der User sieht, ohne E-Mail-Pingpong. Middleware fängt mutating HTTP methods (POST, PUT, PATCH, DELETE) auf impersonated sessions ab und gibt 403 mit “impersonation is read-only” zurück. Session Tracking schreibt jede Seite, die der Impersonator besucht, in den Activity Log — ein Tenant, der fragt “hat jemand von der Plattform unsere Daten gesehen?”, bekommt also eine Zeile, kein Raten.

audit_events append-only auf Trigger-Ebene

Die audit_events Tabelle hat Database Triggers, die UPDATE und DELETE ablehnen. Selbst ein Admin mit erhöhtem Database Access kann die History nicht stillschweigend umschreiben. Neue Zeilen können eingefügt werden (eine Correction mit Reference auf das Original Event), aber die Original Row bleibt. Die Admin Toolbox kann reparieren, was kaputt ist; sie kann nicht aufräumen, was aufgezeichnet wurde.