Security
How the system actually handles your data
Everything below describes what the code does today, not what we intend. Where a protection is partial, it says so.
Your provider keys
Keys you send on a proxied request are never stored. They pass through the gateway to your provider untouched, in the same request you wrote.
Keys you save in Settings — used only to run candidate models on your behalf — are encrypted with AES-256-GCM under a master key held outside the database, so a database dump on its own decrypts nothing. A fresh nonce per key means two customers storing the same key do not produce matching rows. No read API returns key material; the console shows a last-four. You can remove one at any time.
Ingest keys
Stored as a SHA-256 hash. The key is shown once, at the moment it is issued, and cannot be recovered afterwards — losing it means issuing a new one. Revocation takes effect on the next request; there is no grace period.
Prompt and response content
Off by default. Nothing you send or receive is retained unless you set
x-vmx-capture-content: true on the traffic you want available for
replay and evaluation, and it is retained with a configurable TTL and an erasure
path. Cost and token counts do not require content.
Tenant isolation
Every stored row carries a tenant id, and every query is scoped through a single chokepoint that appends the tenant predicate — a static check proves no read or write path omits it. The tenant is resolved from the credential on the request and overrides anything the request body claims, so a caller can only ever act on its own account.
The gateway
Observe-only by default. It never changes the request your application wrote:
every x-vmx-* header is stripped before forwarding, and the provider
sees exactly what you sent. A failure in our own capture logic falls back to a
plain proxy — losing telemetry, never your request. Configuration changes are
applied only where you have explicitly authorised a deployment for a specific
call site, on a fixed 1% → 5% → 25% → 100% ramp with an immediate escape hatch.
Reporting something
Email monaalsanghvi1998@gmail.com. Please do not open a public issue. If you believe you have found a way to read another customer's data or spend their provider credit, say so in the subject line and we will treat it accordingly.