Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Monitor Laravel Package

quiet-guard/laravel-monitor

Monitor your Laravel application's health and performance in one place. Track errors, slow queries, uptime, and key metrics, then get alerted before small issues become outages. Lightweight setup and a simple dashboard keep production visibility easy.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: The package integrates at the Laravel request lifecycle boundary (middleware/service provider) and now delegates redaction primitives to quiet-guard/core. v0.6.0 hardens the capture path: headers move from deny-list masking to an allow-list model, route parameters are masked by name/credential semantics, and redaction is applied before truncation rather than after. This is a security-positive architecture for a monitoring/observability package, but it introduces a lockstep dependency on core ^0.6.0 and a constructor signature change in PayloadBuilder.
  • Integration feasibility: Standard Composer install and config publish. The published config template now writes 'redact' => null, meaning the package owns the redaction class list and removing the package will not leave a fatal class reference in the app’s config. Existing published configs carrying ['email', 'iban', 'nir', 'card', 'phone'] are interpreted as the default and still mask credentials, so there is a backward-compatible path. Header values are now sent only for allow-listed names; everything else travels as [scrubbed] with its name. The six visitor IP headers are intentionally absent by default and require a legal basis to add, at which point they must be removed from scrub (forwarded included because it masks x-forwarded-for by substring).
  • Technical risk: The main risks are behavioral rather than install-time. Teams relying on non-allow-listed header values for trace correlation, tenant routing, or custom auth context will silently lose those values unless they extend monitor.request_headers. The PayloadBuilder sixth constructor argument is a breaking change for subclasses or manual instantiations. The $request->route() path “fails open on anything unexpected,” so route-parameter masking may be skipped in unusual routing states; the shape-based path rule remains as a safety net, but TPMs should treat this as a residual risk to validate. Shape-based credential redaction can also over-mask legitimate values or under-mask new credential formats until core updates ship. Because this is a pre-1.0 package, semver does not guarantee stability.
  • Key questions: What Laravel and PHP versions are supported by v0.6.0 and core ^0.6.0? Is the header allow list configurable per environment, and how are custom headers added safely? Does the soft-cut-then-mask-then-cut logic have regression tests for tokens straddling the 8192-character boundary? How does the package behave when the request context exceeds 65,535 bytes across different web servers/proxies? What is the support and release cadence for quiet-guard/core? Does the PayloadBuilder constructor change warrant a major-version bump or explicit upgrade notes? How are queued report failures/retries handled after pre-dispatch masking? What is the expected false-positive rate for ValueRedactor credential shapes in URLs and query strings?

Integration Approach

  • Stack fit: Fits Laravel applications using middleware, service providers, config publishing, and queue dispatch. The package captures request context, headers, route parameters, logs, and queued reports. It is not a generic PHP library; integration is Laravel-native. Confirm the app’s Laravel/PHP versions before adopting.
  • Migration path: Update quiet-guard/laravel-monitor to ^0.6.0 and allow Composer to resolve quiet-guard/core:^0.6.0. Re-publish or manually update the config: set 'redact' => null to follow the package’s own list; leave the legacy array only if you intentionally want the old default behavior. Audit monitor.request_headers: add any custom headers whose values must travel in clear; remove visitor IP headers from scrub only if you have a legal basis and explicitly allow-list them. Search the codebase for PayloadBuilder instantiations and subclasses; the new sixth argument defaults to null, which falls back to PayloadBuilder::HEADERS, but explicit constructors and overrides need review.
  • Compatibility: Backward compatibility exists for published redact arrays, but header behavior changes are observable. The scrub list still applies on top of the allow list, so a header can be allow-listed yet still masked if it matches scrub. This dual-control model is safer but easy to misconfigure. The package now relies on core constants (Scrubber::masks(), ValueRedactor::CREDENTIALS), so a partial Composer update or version skew can cause runtime failures.
  • Sequencing: (1) Pin both packages in Composer and review core’s changelog for redaction shapes. (2) Run a staging capture with representative traffic, including /email/verify/{id}/{hash}, /reset-password/{token}, large payloads, and queued jobs. (3) Update config: redact => null, review request_headers, review scrub, and reconcile any overlap. (4) Update manual PayloadBuilder usage and subclasses. (5) Deploy canary and compare captured headers/URLs against expectations. (6) Update runbooks and alerting for missing header values or over-redaction. (7) Schedule a security review sign-off before broad rollout.

Operational Impact

  • Maintenance: Two packages now move in lockstep: laravel-monitor and quiet-guard/core. Core changes to credential shapes directly affect what this package masks, so release monitoring must include core. The 'redact' => null template reduces config drift and avoids fatal references if the package is removed, but existing published configs should be normalized. Pre-1.0 status means breaking changes are plausible; pin versions and budget upgrade time for security releases.
  • Support: Security releases like v0.6.0 should be treated as mandatory upgrades because they close real leakage paths (unlisted headers, split tokens at truncation, unmasked route credentials). Support teams need clear guidance on the allow-list vs scrub-list interaction, how to add custom headers, and why visitor IP headers are absent by default. Expect questions when previously visible header values become [scrubbed].
  • Scaling: The allow-list reduces accidental leakage but does not necessarily reduce payload size much, since non-allow-listed headers still travel by name with [scrubbed]. Soft cutting and shape-based redaction add CPU per request and per queued report; benchmark ValueRedactor at expected volume. Replacing request contexts over 65,535 bytes with a server marker is good for memory safety but may remove forensic detail in edge cases. Pre-dispatch masking on the queue path adds serialization cost but prevents credentials from entering the queue store.
  • Failure modes: Missing header values break trace correlation if custom headers are not allow-listed. Over-redaction can hide legitimate emails, IDs, or tokens in URLs. Route-parameter masking fails open on unexpected $request->route() states, leaving shape-based masking as the fallback. Core/package version skew can cause fatal class/constant errors. Misconfigured scrub can keep masking an allow-listed IP header, or removing forwarded incorrectly can leave x-forwarded-for exposed. Large payloads may be replaced by a marker, reducing debuggability.
  • Ramp-up: Low for teams already familiar with Laravel package config and middleware. The main learning curve is the new security model: allow-list headers, scrub-list layering, legal-basis handling for IP headers, and route-parameter masking semantics. TPMs should schedule a short security/config training session, update on-call runbooks, and add staging checks for header presence and redaction correctness before production rollout.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics
robbiep/afterthedeadline
frankkessler/incontact-laravel-oauth2-rest
jlxh/laravel-userlog
davidmgilo/timetables
qylinfly/role-permission
reflect-digital/conduit
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr