Role-based access, built in
Admin, QA, and Viewer roles enforced via Supabase RLS. QAs can author and run; Viewers can read; Admins handle credentials and integrations. Invite via email, single-sign-on on the roadmap.
Operators running white-label exchange software in production need more than test scripts. They need isolation, lifecycle controls, and rails that refuse to break things. That's what we ship.
100%
Tenant data isolation
Row-level security at the database, scoped storage buckets per workspace, audit log per trigger.
3
Capture buckets, 3 retention windows
Screenshots, network bodies, and HAR each get their own private bucket and TTL.
0
Lines of bespoke code per tenant
One scenario, every white-label. Tenant-scoped credentials, env-scoped secrets.
Everything below is core to the platform, not an upsell. The enterprise plan adds SLA, dedicated support, and SSO.
Admin, QA, and Viewer roles enforced via Supabase RLS. QAs can author and run; Viewers can read; Admins handle credentials and integrations. Invite via email, single-sign-on on the roadmap.
Scenarios marked prod_safe: false refuse to run against production tenants. Destructive actions like api_initiate_withdraw are blocked unless both the WL flag prod_trading_test_enabled AND scenario.prod_safe are set. No accidents.
Every action in the runner is documented, schema-validated, and surfaced inline in the editor. Schema changes are coordinated across runner + panel + edge functions. No silent drift.
Run events stream over Supabase Realtime. The live console rebuilds in <50ms as each step lands. No log tailing, no SSH into runners.
Screenshots and request bodies upload only when something interesting happens: failures, key milestones, or explicit ui_screenshot. Storage expires on a schedule. Costs don't surprise you.
Twilio inbox webhook stores incoming SMS in sms_inbox. auth_wait_sms polls it for the OTP, with a regex you control. Authenticator-only? auth_solve_totp generates the 6-digit code from the stored secret. Either way: unattended.
Bring us a tenant. We'll bootstrap it, write the first scenario, and have a scheduled smoke check running before the call ends.