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
- 1DownloadThe repository is fetched read-only from GitHub into a temporary folder, with size limits and path checks.
- 2Read16 detectors read manifests, Dockerfiles, CI and configuration. Environment files give variable names, never values.
- 3SummarizeOnly detected facts and short, secret-free excerpts go to the AI provider, when AI is used at all.
- 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.