Skip to content
TESSERA PROXY
Security

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.

Data flow

What crosses the line, and what doesn't.

  1. Collector to Control plane

    What goes: A redacted report of your environment: dependencies, known CVEs, exposed services.

    What doesn't: Your source code

  2. 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

  3. Analysis sandbox to Model provider

    What goes: Redacted code excerpts, each one listed in the AI read manifest.

    What doesn't: Secrets

  4. 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

  5. Proxy to Control plane

    What goes: Telemetry and health.

    What doesn't: TLS certificates

  6. 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

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.

Subprocessors

Who else processes data.

ProviderRoleReceives
Anthropic or Google (Gemini)Analysis model, set per deploymentRedacted code excerpts during analysis
typesafe.aiAI classifierRequest fields, as described above
Without sharing code

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 waitlist

Questions this page doesn't answer? Write to [email protected]