Dependency security
Quiet Guard watches the third-party packages your app depends on and raises a finding the moment one of them has a known security advisory. You reach it from a project's Vulnerabilities tab in the /app panel.
Available on every plan, including Free, dependency scanning is part of the vulnerability_scan feature shipped by default.
composer.lock snapshots
Your client reports the project's installed packages by posting the parsed composer.lock to /api/v1/dependencies:
Each package carries a name, a resolved version, and an is_dev flag. The server stores this as the project's current dependency snapshot, replacing the previous one. The reference Laravel client ships a monitor:dependencies command for this.
Packagist advisory matching
After each snapshot is stored, a background scan runs:
- It queries the Packagist security advisories database for your packages.
- It matches each advisory's affected version constraints against your installed version using
composer/semver. - Matching advisories become vulnerability findings on the project.
Fails loudly, never silently. If the advisory fetch errors, the scan aborts rather than treating "no data" as "no vulnerabilities". A network blip must never mass-resolve your findings.
Findings, auto-resolve and ignore
Each finding records the affected package, the advisory, the severity and the affected version range. Findings have a lifecycle the scanner maintains automatically:
- New advisories that match become findings, and fire a
vulnerability.detectedalert. - A finding is auto-resolved when a later snapshot no longer matches it: typically because you upgraded the package.
- Findings you have ignored stay ignored across rescans; the scanner will not keep re-raising noise you have already triaged.
Alerts
When a scan produces new findings, the project's notification channels subscribed to vulnerability.detected are notified, so a freshly disclosed CVE in one of your dependencies reaches the team without anyone refreshing a dashboard.
Outdated packages
Beyond security advisories, every snapshot is also checked for freshness: each package's installed version is compared to its latest stable release on Packagist. The project's Dependencies tab lists installed vs latest versions with an Outdated badge (dev-main / RC checkouts are never flagged, they are deliberate choices), and the project overview shows an Outdated packages counter. Freshness is best-effort: a Packagist hiccup never affects the security scan.
What's next
- Subscribe a channel to
vulnerability.detectedin Alerting. - Schedule
monitor:dependenciesin your app so snapshots stay fresh after every deploy.
You are reading the Quiet Guard v1.0 documentation.