finity-labs/fin-sentinel
Fin Sentinel is a Laravel package for application monitoring, auditing, and alerting. It helps you track important events, spot suspicious or failing behavior, and respond before users are affected, with a lightweight setup that fits naturally into existing Laravel applications.
tail the log" step from on-call and support runbooks. This directly affects the support-tiering roadmap: L1 support can triage without shell access, which is a headcount and escalation-latency decision, not just a tooling preference.sentinel/logs/{file} answered to no permission at all — any signed-in panel user who guessed a filename (laravel.log is enough) could read logs regardless of role. If you are in or approaching SOC 2 / ISO 27001 / HIPAA scope, this was an audit finding: log files routinely contain stack traces with query fragments, session identifiers, emails, and sometimes credentials. The fix converts log viewing into an explicit, grantable permission, which is what an auditor expects to see. Treat "can this package enforce per-role access to log contents?" as a gating question, and note it was only answered in v1.2.3.View:LogFileViewer granted alongside View:LogFileList, or affected users get a 403 where the log used to open. That is a per-environment permission-matrix task for whoever owns Filament Shield configuration — plan it as a rollout item, not a footnote.tests/PanelTestCase.php, the package's first) after a permission gap suggests the project is tightening its security testing rather than bolting features on. That is a modest positive for a dependency you intend to keep.Adopt when all of the following hold:
page_LogFileViewer Gate ability, or you accept a single plugin-level canAccess() closure. v1.2.3 supports all three, in that precedence order.View:LogFileViewer to the right roles at deploy time.Look elsewhere when:
To executives: This is a small Filament plugin that lets authorized staff read application logs from inside the admin panel instead of through server access. The release we are evaluating closes a real security hole: previously, any logged-in panel user could open a log file by guessing its name, with no permission check. Logs commonly contain customer data and internal details, so on a compliance roadmap this was a finding waiting to be written up. The fix makes log viewing an explicit permission, which is the behavior auditors and security reviewers expect. Cost is low — a dependency plus a permission grant per role — and the payoff is fewer people needing production shell access and a cleaner access-control story.
To engineering: Upgrade to v1.2.3. Pages\LogFileViewer now carries HasPageShieldSupport and resolves access in this order: Shield's View:LogFileViewer, then a page_LogFileViewer Gate ability if the host defines one, then the plugin's canAccess() closure. No shield:generate re-run is required — Shield already discovers the page from the panel — but every role that currently holds View:LogFileList must also be granted View:LogFileViewer, or those users will start getting 403s on a page that used to open. Sequence the permission grant with the deploy, not after it. The mount() path check is unchanged, so do not read this release as a hardening of path handling — it is an authorization fix only. The new tests/PanelTestCase.php (bound to tests/Feature/Pages) is test-only and establishes the package's first real-panel access tests, using fixture subclasses that override the trait seams so no Shield class loads in the test process. Worth mirroring that pattern in our own Filament page tests.
How can I help you explore Laravel packages today?