Skip to main content
Before a deploy builds, the control plane can check the build context for committed credentials and the environment values being injected for credentials stored as plain (non-secret) variables. It is on in warn mode by default and never stores or shows the value it found.

What a finding contains

A finding holds the rule id, the file path and line (or the variable name), and a 16 character fingerprint. The fingerprint is a hash of the rule and the matched value, so it stays the same when the file moves and lets you allow-list one value without the value ever being stored. The value itself is never written to the database, the deploy log or the API.

Rules

These are pattern checks, not proof. A finding means “look at this”, and a clean scan does not mean the repository has no secrets.

Policy

A scan that stops at a size cap with no findings is recorded as partial and the deploy goes live with a note. Raise the caps below if that matters to you. Set the policy on the app’s deploy settings page, or with the CLI:

Allow-list

Allow a finding you have reviewed from the deploy that reported it, or by fingerprint:
A reason is required. The entry records who added it and when, and the API call lands in the audit log.

Scan from the CLI

A scan with active findings exits 1, so it can gate a CI job.

Limits

The scan only reads files under the build context, never follows symlinks and skips .git, node_modules, vendor, build output, lock files, images and binary files. It runs on the deploy job, not the request that triggered it, and stops at these caps:

API

What it does not do

It does not scan git history, only the checked-out tree. It does not scan image layers or values resolved at runtime from a vault. It does not rotate anything it finds, see secret rotation for that.
Last modified on October 15, 2026