How we handle your code
What Tessera reads, where it runs and who else sees it. The proxy runs on your server. The control plane is hosted by us.
Last updated
At a glance
No network
Code analysis runs in a one-off sandbox that can't reach the internet.
Redacted twice
Secrets are removed before anything leaves, and again before the model.
Every line logged
A manifest lists each file and line sent to the model provider.
Code optional
Import your own policy and skip code analysis entirely.
What crosses the line, and what doesn't.
Collector to Control plane
What goes: A redacted report of your environment: dependencies, known CVEs, exposed services.
What doesn't: Your source code
GitHub to Analysis sandbox
What goes: The commit of your linked repository, read in a container with no network.
What doesn't: Network access, a shell
Analysis sandbox to Model provider
What goes: Redacted code excerpts, each one listed in the AI read manifest.
What doesn't: Secrets
Proxy to AI classifier
What goes: Request fields of suspicious requests and a small sample of clean ones.
What doesn't: IPs, identifiers, headers, cookie fields
Proxy to Control plane
What goes: Telemetry and health.
What doesn't: TLS certificates
Control plane to Proxy
What goes: A signed policy, only when you pull it with
tessera fetch.What doesn't: Your traffic: the control plane is never in the request path
In detail
What the collector sends
The collector runs in your CI or on your server. It scans your environment for dependencies, known CVEs, exposed services and scanner findings, redacts the report and uploads it. It doesn't upload your source code.
Where your code is read
Code analysis fetches your linked GitHub repository into a one-off container. The AI model gets read-only tools with limits and never gets a shell.
- No network
- Read-only root filesystem
- Code on tmpfs
- Unprivileged user
- Isolated with gVisor
- Secrets redacted twice
What the model read
Every analysis keeps an AI read manifest: which files and lines went to the model provider, and how many values were redacted. Before the first model call you see a cost estimate and approve a budget, and a hard limit is checked after every response.
What the AI classifier sees
Rules settle a request first. Only suspicious requests and a small sample of clean ones go to the AI classifier, and identical inputs hit a 24-hour cache instead of a new call. It gets request fields, not IPs, identifiers, headers or cookie fields, but field values can still contain personal data.
Where your traffic goes
The proxy runs on your server, in front of your app. TLS certificates and request data stay with you, except the fields sent to the AI classifier. The proxy reports telemetry and health to the control plane, which never sits in the request path.
Who else processes data.
| Provider | Role | Receives |
|---|---|---|
| Anthropic or Google (Gemini) | Analysis model, set per deployment | Redacted code excerpts during analysis |
| typesafe.ai | AI classifier | Request fields, as described above |
Rather not share your code?
Write a policy yourself, or with an internal model, and import it. Tessera never needs your repository for that, and it's also the route for code that isn't on GitHub.
Join the waitlistQuestions this page doesn't answer? Write to [email protected]