The map
Where you configure each stage
Stage by stage
IDE — shift-left
Security inside the editor, before code is committed. The BreachLens VS Code extension is a thin client — no scanners bundled — so what the developer sees is identical to the dashboard and the PR. The editor and the platform never disagree.- Inline squigglies on the vulnerable line, coloured by real severity
- Scan your working copy — an on-demand scan of uncommitted changes (code + secrets + IaC) before you push
- Lightbulb actions: open in BreachLens, preview auto-fix as a side-by-side diff, apply it
- Opt-in scan-on-save for mapped repos
Set up the IDE extension
Install, connect, and scan without leaving the editor.
Commit / PR — the static gate
When code lands, BreachLens runs SAST + secret detection and reports on the pull request:- PR / MR check runs — green/red status with a clickable deep-link
- Inline PR comments — per-finding annotations on the diff, with a one-click Commit suggestion anchored to the exact hunk
- Auto-fix PR — opens a separate PR with an AI-generated patch; merging it auto-resolves the original finding
CI — gate the build from any runner
Run a scan and turn the result into an exit code —0 passes, 1 fails the build — from GitHub Actions, GitLab CI, Jenkins, or any runner. The scan runs server-side; the runner only triggers it, so the job needs no scanners and no language runtime.
GitHub App vs pipeline file
The choice is per repo, never per policy: the rules live in one place (Settings → Policies) no matter which path a repo uses.
Use the GitHub App for blanket coverage of your GitHub repos — no file, and new repos are gated automatically. Use a pipeline file for GitLab / Jenkins, self-hosted or air-gapped runners, or when the gate must run inside your own pipeline. Mixed estates use both — they share the one org policy. The rest of this section covers the pipeline-file path.
Generate a pipeline file
Fastest path — generate a file. Open Settings → Integrations → CI/CD pipeline file and pick your platform, the scan shape, the severity gate, and whether you’re behind Cloudflare Access. The generator emits a ready-to-paste file plus the exact secrets to add. Nothing is saved, and no secret value is ever written into the file — it references them by name. If your org has a default policy (Settings → Policies), the severity-gate picker can tie the file to it two ways. Match bakes the equivalent fixed severity into the file. Use my org policy setsseverity-gate: policy — instead of counting findings locally, the runner asks BreachLens for the verdict on every run, so the pipeline always follows your current policy and can never disagree with the GitHub-App PR check. Change the policy centrally and every pipeline follows it — no file to regenerate.
For GitHub Actions, the panel goes a step further: pick a connected repository and it hands you one-click links to commit the pre-filled workflow, mint a scoped token, and open GitHub’s secret and branch-protection settings — with your deployment’s API URL detected for you. The token still goes into GitHub’s own encrypted secret store (a secret value never rides in a URL), so you paste it in the one place it belongs.
Prefer to copy from source? The canonical templates — one per platform — all share the same trigger → poll → SARIF → severity-gate contract:
- Code gate — SAST / SCA / Secrets / IaC on push + PR; blocks the merge.
- Deployed-app scan — DAST on a schedule; never blocks a PR.
Build — dependencies, supply chain, IaC
The build stage pulls in third-party code and ships an artifact. BreachLens secures both:- SCA — known-vulnerability + license analysis across common package ecosystems, with function-level reachability on supported languages so you patch what’s actually called first
- IaC — Terraform / Kubernetes / CloudFormation / Helm misconfiguration analysis
- Container image scanning — CVE detection on built images, with reachability tiering
- Signed SBOM — CycloneDX / SPDX bill of materials with verifiable signatures for procurement evidence
Test — dynamic testing and exploit proof
Once built, the running app is tested from the outside in — the noisiest stage of the pipeline, and where BreachLens’s strongest differentiator lives:- DAST — outside-in active scanning (XSS, injection, CSRF, XXE, auth/session flaws), with authenticated form-login and recorded-session modes
- Autonomous pentest — multi-tool exploit orchestration that goes beyond detection to exploitation
- Proof-of-Exploit — a
CONFIRMEDfinding ships wire-level Request/Response evidence, with a reproduciblecurlor, for browser-driven exploits, an exploit-replay video. A confirmed finding is never a “maybe.”
Deploy / Run — runtime and posture
Once live, BreachLens keeps watching — runtime sensors, continuous posture, and cross-tier attack paths — and closes the loop with auto-fix PRs, ticketing, and alerts. That’s its own topic:Continuous monitoring
Event-driven re-scans, scheduled posture, and 24/7 runtime detection — the always-on half of the pipeline.
What BreachLens deliberately does not do
Honest scoping matters in a security evaluation. Three capabilities from the classic toolset are not in BreachLens today — deliberate architectural boundaries, not oversights:
For the self-hosted, regulated lane BreachLens leads with — deployable in disconnected networks — the runtime-detection tier and external-scan model cover the practical need.
Next steps
Set up the IDE extension
Inline findings and scan your working copy before you push.
Connect your repositories
Install the App for PR checks and one-click auto-fix PRs.
Add a web-app target
DAST and autonomous pentest with reproducible Proof-of-Exploit.
Monitor continuously
Event-driven re-scans and 24/7 runtime detection after deploy.