wobqqq/nova-aegis-csp
Add Content Security Policy management to Laravel Nova with Aegis. Configure CSP headers, generate nonces, define per-resource policies, and monitor violations from a clean Nova dashboard—keeping your admin panel secure without leaving the familiar Nova interface.
CspService::header()) resolves the header value for a given scope, and an artisan command (TurnOffCsp) lets a team disable enforcement without ripping out code.scope concept implies policies can differ by context (e.g. stricter in production, relaxed to report-only or off in local/staging). That is a product decision, not just a technical one: it determines whether violations break real users or only generate reports. Use it to define a staged rollout — report-only → enforced — before committing to enforcement dates.Adopt when:
Look elsewhere or defer when:
scope model covers dynamic nonce generation before committing, since the release notes describe scope resolution, not nonce plumbing.Watch item: v1.2.0 is explicitly an internal refactor with no application-facing change. That is a healthy signal — the maintainer is cleaning architecture without churning the public surface — but it also means this release adds no new product capability. Do not treat it as progress against any roadmap commitment.
For executives: This is a small, low-risk dependency that lets us ship a standard browser security control (Content Security Policy) in days instead of a bespoke build. It is configurable per environment, so we can turn it on in report-only mode first and prove it does not break the product before enforcing. It includes an operational off-switch for incidents. Cost is one dependency and a configuration file; the alternative is custom middleware we would own and maintain indefinitely.
For engineering: The package gives us CSP middleware, a CspService that resolves the header for a given scope, and a TurnOffCsp command. The scope model is the interesting part — it decides which policy applies where, so it is where we should spend review time. v1.2.0 changes internal signatures only: CspService::header() now receives the resolved scope rather than the request, and the disable command delegates to TurnOffCsp. No action required from consuming applications. Recommended next step is a spike in staging using report-only mode to collect violation telemetry, then a go/no-go on enforcement based on that data.
Caveat to state plainly: we are approving this on a single internal-refactor release with limited public documentation reviewed. Before enforcement, someone must confirm nonce handling and confirm no header conflicts with our CDN or proxy layer.
How can I help you explore Laravel packages today?