PHPackages                             odylabs/sentinel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. odylabs/sentinel

ActiveLibrary

odylabs/sentinel
================

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

20PHPCI failing

Since Jul 28Pushed todayCompare

[ Source](https://github.com/odylabs/sentinel)[ Packagist](https://packagist.org/packages/odylabs/sentinel)[ RSS](/packages/odylabs-sentinel/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Odylabs Sentinel
================

[](#odylabs-sentinel)

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](https://dev.odylabs.com) — with sensitive data masked automatically.

[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](LICENSE.md)

Features
--------

[](#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
------------

[](#requirements)

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

Installation
------------

[](#installation)

1. Register / log in at [dev.odylabs.com](https://dev.odylabs.com) and create a project. You'll get a **Project ID** and **Auth Key**.
2. Install the package:

```
composer require odylabs/sentinel
```

3. 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.)

4. Clear config cache and connect:

```
php artisan config:clear
php artisan sentinel:connect
```

5. 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
-----

[](#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
--------------

[](#delivery-modes)

Set `SENTINEL_DELIVERY_MODE` to control how reports are sent:

ModeBehavior`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 otherwiseSecurity
--------

[](#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
-------------

[](#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`](config/sentinel.php) for all available options.

Contributing
------------

[](#contributing)

See [CONTRIBUTING.md](CONTRIBUTING.md).

License
-------

[](#license)

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

###  Health Score

21

—

LowBetter than 17% of packages

Maintenance65

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/192999556?v=4)[Odylabs](/maintainers/odylabs)[@odylabs](https://github.com/odylabs)

---

Top Contributors

[![odylabs](https://avatars.githubusercontent.com/u/192999556?v=4)](https://github.com/odylabs "odylabs (3 commits)")

### Embed Badge

![Health badge](/badges/odylabs-sentinel/health.svg)

```
[![Health](https://phpackages.com/badges/odylabs-sentinel/health.svg)](https://phpackages.com/packages/odylabs-sentinel)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
