Security

Your code is read, never run

Brunel needs to understand your repository, not to control it. Here is exactly what it reads, what it keeps, and what it will never do.

Never

Four things Brunel never does

Run your code

Repositories are read as files. Nothing is installed, built or executed, ever.

Hold cloud credentials

Deployment runs in your GitHub Actions; one-click credentials are sealed in your browser.

Show or send secrets

Secret values found in a repository are redacted from what is stored and from what the AI sees.

Let the AI decide numbers

Prices, service names, SKUs and Terraform come from catalogs and templates.

Data flow

What happens to your repository

  1. 1DownloadThe repository is fetched read-only from GitHub into a temporary folder, with size limits and path checks.
  2. 2Read16 detectors read manifests, Dockerfiles, CI and configuration. Environment files give variable names, never values.
  3. 3SummarizeOnly detected facts and short, secret-free excerpts go to the AI provider, when AI is used at all.
  4. 4DeleteThe repository is deleted. Brunel keeps the facts, the architecture versions and the conversation.

Controls

How the platform is protected

Sessions
A random 256-bit secret in an encrypted cookie; the server keeps its hash, 30 days at most, revocable per device or everywhere.
Secrets at rest
GitHub tokens, AI keys, SSO client secrets and webhook secrets are sealed with AES-256-GCM, bound to their owner.
API keys
256-bit random tokens stored as SHA-256 only, read-only or read-and-write, with an optional expiry.
Web protections
Content Security Policy, HSTS, same-origin checks on every change, SameSite cookies, strict isolation headers.
Untrusted input
Repository content is wrapped as data: the AI has no tools, cannot follow instructions found in code, and its output is schema-validated.
Retention
Repositories are deleted right after analysis. Guest conversations idle for 30 days and expired sessions are purged daily.

GitHub access

Signing in asks for GitHub's repo scope, the only way to read private repositories with an OAuth app. Brunel only reads the repositories you paste, and writes only when you ask it to open a pull request.

For teams

Single sign-on, IP allowlists, session limits, a required GitHub organization and an audit log. Enterprise controls.

Privacy

Only strictly necessary cookies, no tracker, no advertising. Your data is exportable and deletable at any time. Privacy policy.

Found a security issue?

Tell us through the contact form. We read every report and fix confirmed issues first.

Security · Brunel