- contact@verticalserve.com
A self-hosted QA portal that bootstraps regression suites from a plain-English brief, runs them on a schedule, and tells you what broke and why. Built on the InsightWorker engine — every primitive is a §15 YAML bundle you can read and extend.
Suited for any team that ships frequently to a real UI — internal portals, SaaS dashboards, customer-facing apps. Designed to be installed by the same people who deploy your other internal tools: docker-compose up, fill in .env, log in.
Three install modes, one product. Pick whichever fits your IT footprint.
For EKS, AKS, GKE, OpenShift. Customer-managed Postgres (or RDS). Standard Helm values. Horizontal scaling. Ingress via your existing controller. Most enterprise customers land here.
For smaller teams or proof-of-value. One VM, sub-30-minute install. Postgres + bench API + UI + MySQL + worker in one stack. Upgrade path to Kubernetes when you're ready.
For fully-isolated networks: defense, intelligence, regulated healthcare clinical environments. Offline-signed image bundle, no outbound calls, brings its own model endpoints (on-prem GPU box via custom OpenAI-compatible).
Three things you run, one thing they all talk to.
FastAPI + React, your Postgres or MySQL. Hosts the marketplace, builder, run history, admin console, worker registry. Talks to your S3 (for the app bundle catalog), your IdP (for SSO), and your worker fleet (over outbound HTTPS only — no inbound connections to workers).
A bucket in your AWS account holds every version of every published app, addressed by apps/<slug>/v<version>/. the bench reads from disk on a 60s cache. The InsightWorker CLI writes via iw app publish. Versions are immutable; rollback is one click.
Any machine running insightworker --worker --studio <url> --token <bearer> becomes a worker. They poll the bench for queued runs, pull the bundle from S3, execute on local compute with your secrets, stream events back. Outbound-only. Scale by adding more boxes.
Customer VPC ┌─────────────────────────────────────────────┐ │ ┌────────────────┐ ┌────────────────┐ │ │ │ Browser users │───►│ the bench (FAS) │ │ │ └────────────────┘ └────────┬───────┘ │ │ │ │ │ ▼ │ │ ┌────────────────┐ ┌────────────────┐ │ │ │ S3 bundles │ │ Postgres / MyDB│ │ │ │ apps/<slug>/ │ │ (runs, users, │ │ │ │ v<ver>/... │ │ audit log) │ │ │ └────────┬───────┘ └────────────────┘ │ │ │ pulls bundle │ │ ▼ │ │ ┌────────────────────────────────────┐ │ │ │ Worker fleet │ │ │ │ (your laptops / VMs / k8s pods) │ │ │ │ insightworker --worker │ │ │ └──────────┬──────────────┬──────────┘ │ │ │ │ │ │ ▼ ▼ │ │ ┌──────────────┐ ┌────────────────┐ │ │ │ Your models │ │ SharePoint, │ │ │ │ (Bedrock, │ │ JIRA, DBs, │ │ │ │ Azure, etc)│ │ Airflow… │ │ │ └──────────────┘ └────────────────┘ │ └─────────────────────────────────────────────┘ Outbound to: Okta / Azure AD (SSO) Your model providers (Bedrock, Azure OpenAI, etc) Your SIEM (audit log forwarding)
What the bench gives an enterprise out of the box.
Okta, Azure AD, Google Workspace via OIDC. Group sync. SCIM provisioning. JIT user creation. Per-org sub-tenancy with isolated app catalogs.
"Claims team can run the broker-intake app; Underwriting can run policy-comparison; only Risk can publish new apps." Roles, groups, and per-app grants — granular without becoming unmanageable.
Provider lockdown (e.g. only Bedrock in eu-central-1). Per-org token quotas. Cost dashboards. Capability matching prevents apps from landing on workers without the right credentials or skills.
Every run, every step, every tool call logged with: user, time, model, tokens, inputs (configurable retention + PII redaction), outputs, which worker ran it. SIEM webhook export (Splunk, Datadog, Elastic). Pre-built views for SOC 2, GDPR, HIPAA evidence.
Browse, tag, search, version-pin every app. In-browser app builder for non-CLI authors. Approval workflow before apps surface to end users. Rollback to any prior version with one click.
Live console of every worker: hostname, role, installed skills, capabilities (creds + GPU), last heartbeat, current status. Lazy reaper marks stale workers offline. Capability-based job routing.
What goes where, and what never leaves your network. the bench is built for tenants where this question is the first one their security team asks.
From security review to production marketplace in weeks, not quarters.
Single-VM install on a sandbox. Wire up Bedrock or your model. Author + publish your first app from the CLI. Run it in the browser.
Architecture diagram + SOC 2 evidence + DPA. Test SSO against your tenant. Verify outbound traffic patterns match your network policy.
Kubernetes via Helm. Migrate from sandbox bundle. Onboard the first 1-2 teams. Start logging runs to your SIEM.
Add worker boxes per credential domain (Salesforce, SharePoint, GPU workloads). Expand grants by team. Author the next 10 apps.
We'll walk you through the architecture, the security posture, and a 30-minute pilot install on a sandbox VM.
On-prem / VPC • Okta SSO • Full audit • Worker fleet • SOC 2-ready