forge

Security

Your data. Your models. Nobody else's.

forge exists so companies can use their own data with open models without handing it to anyone. Here is exactly how we keep that promise — each claim below maps to a control we enforce, not a policy we assert.

Your data is isolated from every other customer.

Datasets live in a private storage bucket under an isolated per-organization path namespace — no object is publicly reachable, and reads happen only through a service-role chokepoint and short-lived signed URLs. Postgres runs with row-level security forced on every table; the service plane reaches your rows only through a single org-scoped chokepoint, and an automated two-org isolation test asserts that one org reads back zero rows of another across every access path.

Your data is encrypted at rest and in transit.

Datasets are stored AES-256 encrypted and served only through short-lived signed URLs. All traffic to the platform and to model providers is TLS.

Your data trains only your models — never anyone else's.

Training data leaves our infrastructure exactly once — to run your fine-tuning job on the training provider under a zero-data-retention agreement. We never pool customer data across workspaces, and the file you send the provider is used only for your job and expires under the provider's retention window.

We never log your prompts or completions.

The gateway records token counts, cost, latency, and status codes for billing and monitoring — the request and response bodies are never written to our logs. Verify it yourself on the usage dashboard: you'll see counts and spend, never content.

You own the model you paid to create.

A fine-tune is your weights. You can download them and run them anywhere; you are never locked into our serving. Delete a dataset and its stored copy is purged from our bucket; the training file the provider holds is used only for your job and expires under the provider's retention window.

Frontier passthrough is opt-in, not default.

Routing a request to a proprietary model (GPT, Claude, Gemini) — which would subject it to that provider's data policies — is disabled by default per workspace. An admin must explicitly enable it in settings.

Access is controlled and auditable.

API keys are shown once, stored only as a salted hash, and support per-key model allowlists, budgets, and instant revocation. Every privileged action is written to an append-only audit log with CSV export.

Have a security or procurement question? Your workspace admin can export the full audit log, and every control above is inspectable from inside the product.

Start with your own data