sector27-gmbh / laravel-npm-health-checks
A Laravel Health check for npm audit advisories.
Package info
github.com/sector27-gmbh/laravel-npm-health-checks
pkg:composer/sector27-gmbh/laravel-npm-health-checks
Fund package maintenance!
Requires
- php: ^8.4
- illuminate/contracts: ^11.0||^12.0||^13.0
- illuminate/support: ^11.0||^12.0||^13.0
- spatie/laravel-health: ^1.22
- spatie/laravel-package-tools: ^1.16
- symfony/process: ^7.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^10.0.0||^9.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- rector/rector: ^2.4
- spatie/laravel-ray: ^1.35
README
This package adds a Laravel Health check for npm security advisories. It runs npm audit --json, stores the parsed audit output as check meta, and reports warnings or failures based on configurable severity thresholds.
Installation
You can install the package via composer:
composer require sector27-gmbh/laravel-npm-health-checks
You can publish the config file with:
php artisan vendor:publish --tag="laravel-npm-health-checks-config"
This is the contents of the published config file:
return [ 'paths' => [ base_path(), ], 'include_dev_dependencies' => false, 'warning_threshold' => 'moderate', 'failure_threshold' => 'high', 'npm_binary' => 'npm', 'timeout' => 60, ];
Usage
Register the check with Laravel Health:
use Sector27\LaravelNpmHealthChecks\NpmAuditCheck; use Spatie\Health\Facades\Health; Health::checks([ NpmAuditCheck::new(), ]);
By default, the check audits production dependencies in your application root. It returns ok without a notification message when no vulnerabilities meet the warning threshold.
You may configure the check fluently:
Health::checks([ NpmAuditCheck::new() ->atPaths([ base_path(), base_path('resources/frontend'), ]) ->includeDevDependencies() ->warnWhenSeverityIsAtLeast('moderate') ->failWhenSeverityIsAtLeast('high') ->timeout(120), ]);
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.