Security Scanner
The Security view orchestrates third-party security scanners and presents their findings in a single, filterable table. It supports static analysis of source code, dependency audits for known vulnerabilities, and dynamic testing of running applications — all launched from one place, with results normalised into a common format.
Scanners
Seven scanners are supported, spanning three categories. Consuela
orchestrates each tool and collects its output — it does not bundle the
scanners themselves. Each must be installed separately and available on your
PATH before it can be used.
Scanner categories
SAST (Static Application Security Testing) analyses source code without executing it. It inspects files on disk for patterns that match known vulnerability classes — injection flaws, insecure cryptography, hard-coded secrets, and similar issues that are visible in the code itself.
SCA (Software Composition Analysis) checks project dependencies against databases of known vulnerabilities. It reads lock files, manifests, and container images to identify packages with published CVEs.
DAST (Dynamic Application Security Testing) tests a running application by sending requests to it and observing the responses. It discovers issues that only appear at runtime — misconfigured headers, exposed endpoints, injection points that accept unexpected input.
Running a scan
Select a scanner from the dropdown, point it at a target, and start the scan. SAST and SCA scanners take a directory path — typically the root of the project you want to inspect. DAST scanners take a URL pointing to a running instance of the application.
Scanner-specific options
Semgrep offers a set of config presets that control which rules are applied:
auto— recommended rules selected by Semgrep based on the project's languages and frameworks.p/default— Semgrep's default ruleset.p/owasp-top-ten— rules targeting the OWASP Top 10 vulnerability categories.p/r2c-security-audit— a broader security audit ruleset.p/secrets— detects hard-coded secrets, API keys, and credentials.- Language-specific presets such as
p/python,p/javascript, andp/typescript.
CodeQL requires selecting the language of the codebase being analysed and a query suite. Query suites range from a focused default set to extended suites that include more experimental checks. CodeQL builds a database from the source before running queries, so scans take longer than pattern-based tools.
Trivy and Grype both offer a toggle to
respect .gitignore rules when scanning a directory.
Enabling it skips files and directories that the project already excludes from
version control — typically node_modules, build
output, and vendored dependencies.
ZAP and Wapiti take a target URL. The URL should point to a running instance of the application under test. Both tools crawl from the given entry point and probe discovered endpoints for vulnerabilities.
Findings
Results from every scanner are normalised into a single findings table with these columns:
Each row expands to show the full detail view: the complete message text, a code snippet with the affected lines highlighted, and badges for any associated CWE identifiers or OWASP categories that the scanner reports.
Filters
The findings table supports two filters. The severity filter narrows results to one or more severity levels — selecting CRITICAL and HIGH, for example, hides everything below HIGH. The file path filter accepts a substring match against the target file column, making it straightforward to focus on findings within a specific directory or file.
Scan history
Every completed scan is recorded with its timestamp, scanner name, target, and a severity count summary showing how many findings fell into each level. Past scans are listed in reverse chronological order. Selecting a past scan loads its findings into the table, so you can compare results across runs without re-scanning.
The severity summary gives a quick read on whether a codebase is trending in the right direction between scans. A new critical finding after a dependency update, for instance, is immediately visible in the count without opening the full results.