odylabs/sentinel

Automatic production exception reporting for Laravel. Lightweight, secure, framework-native.

Maintainers

Package info

github.com/odylabs/sentinel

pkg:composer/odylabs/sentinel

Transparency log

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

dev-main 2026-07-28 18:31 UTC

This package is auto-updated.

Last update: 2026-07-28 18:31:21 UTC


README

Automatic production exception reporting for Laravel. Lightweight, secure, framework-native, and installable in under two minutes.

Sentinel watches your Laravel app for uncaught exceptions, queue job failures, and Artisan command failures, then ships a structured, signed report to your project on Odylabs Sentinel — with sensitive data masked automatically.

License: MIT

Features

  • One-command installation
  • Zero config beyond your project credentials
  • Automatic exception, queue-failure, and Artisan-command-failure reporting
  • Request, user, route, and SQL query context
  • Full stack traces (configurable depth)
  • Sensitive data masking (passwords, tokens, cookies, etc.)
  • HMAC-signed, authenticated report delivery
  • Automatic retries with backoff
  • Async delivery via your queue when available, safe sync fallback otherwise
  • Never interrupts your application — reporting failures are swallowed and logged locally
  • MIT licensed client package

Requirements

  • PHP 8.1+
  • Laravel 10, 11, 12, or 13

Installation

  1. Register / log in at dev.odylabs.com and create a project. You'll get a Project ID and Auth Key.
  2. Install the package:
composer require odylabs/sentinel
  1. Run install with your credentials — this writes them straight to .env:
php artisan sentinel:install --project-id=your-project-id --auth-key=your-auth-key

(Or run php artisan sentinel:install with no flags for manual copy-paste instructions instead.)

  1. Clear config cache and connect:
php artisan config:clear
php artisan sentinel:connect
  1. Send a test report:
php artisan sentinel:test

Errors will now appear in your project dashboard at https://dev.odylabs.com/projects/{project_id}.

Usage

Sentinel reports uncaught exceptions automatically — no code changes required. For manual reporting:

use Odylabs\Sentinel\Facades\Sentinel;

try {
    riskyOperation();
} catch (\Throwable $e) {
    Sentinel::report($e);
    // ...handle it however you normally would
}

Attach extra context to a report:

Sentinel::withMetadata(['tenant_id' => $tenant->id])->report($e);

Delivery modes

Set SENTINEL_DELIVERY_MODE to control how reports are sent:

Mode Behavior
sync (default) Always sends inline, in the same request — no queue worker needed
queue Always dispatches to the queue (requires a running worker, or reports pile up unsent)
auto Uses your queue if configured; falls back to sync otherwise

Security

  • Every installer reports to the same fixed Odylabs endpoint — there is no configurable webhook URL
  • Reports are attributed to your project via a Project ID + Auth Key, issued from your portal account, sent as a Bearer token over HTTPS
  • Configurable field-level masking for request bodies and headers

Configuration

Publish the config file to customize masking rules, ignored exceptions, capture toggles, and delivery settings:

php artisan vendor:publish --tag=sentinel-config

See config/sentinel.php for all available options.

Contributing

See CONTRIBUTING.md.

License

This client package is MIT licensed. See LICENSE.md. The Odylabs Sentinel portal and backend are proprietary.