AhmadWaleed/
laravel-blanket
g4t.io

HTTP Client Dashboard for Laravel

217 stars by Paul Redmond

A blanket which wraps your laravel http client, and provides dashboard to access logs, retry and debug your http requests.

README from AhmadWaleed/laravel-blanket Open on GitHub →

Banner

Dashboard to view your http client requests in laravel application

Packagist License Packagist Version GitHub repo size Packagist Downloads

Laravel Blanket is a package with wraps laravel http client requests and provide logs for request and response, also give option to retry any request from dashboard and more...

Desclaimer

This is highly opinionated fun project which provides very simple web interface and log monitoring. If you need advance monitoring tools consider trying Debugbar, Sentry and Bugsnag.

Live Demo

Checkout the demo here to find out more options and feature...

Screenshots

screen shot light screen shot dark

Requirements

  • PHP >= 8.0
  • Laravel >= 8.45

Installation

You can install the package via composer:

composer require ahmadwaleed/laravel-blanket

The package will automatically register a service provider.

After installing Blanket, publish its assets using the blanket:wrap Artisan command.

php artisan blanket:wrap

This package comes with a migration to store all outgoing http client requests. You can publish the migration file using:

php artisan vendor:publish --provider="Ahmadwaleed\Blanket\BlanketServiceProvider" --tag="blanket-migrations"

Run the migrations with:

php artisan migrate

Optionally you can publish the blanket configuration file:

php artisan vendor:publish --provider="Ahmadwaleed\Blanket\BlanketServiceProvider" --tag="blanket-config"

This is the contents of the published config file that will be published as config/blanket.php

return [
/*
    |--------------------------------------------------------------------------
    | Dashboard Enabled
    |--------------------------------------------------------------------------
    |
    | Here you can specify whether to show dashboard or not.
    |
    */

    'enabled' => env('BLANKET_ENABLED', true),

    /*
    |--------------------------------------------------------------------------
    | Hide Sensitive Data
    |--------------------------------------------------------------------------
    |
    | Here you can specify the fields which might contain sensitive data, those
    | fields will hidden when saving logs. You can also specify nested keys in
    | config. Example:
    | 'response' => [
    |   'client.id',
    |   'client.secret',
    | ],
    */
    'hide_sensitive_data' => [
        'headers' => [
            'Authorization',
            'php-auth-pw',
        ],

        'request' => [
            'password',
            'password_confirmation',
        ],

        'response' => []
    ],

    /*
    |--------------------------------------------------------------------------
    | Blanket Path
    |--------------------------------------------------------------------------
    |
    | This is the URI path where Blanket will be accessible from. Feel free
    | to change this path to anything you like.
    |
    */

    'path' => env('BLANKET_PATH', 'blanket'),

    /*
    |--------------------------------------------------------------------------
    | Blanket Route Middleware
    |--------------------------------------------------------------------------
    |
    | These middleware will be assigned to every Blanket route, giving you
    | the chance to add your own middleware to this list or change any of
    | the existing middleware. Or, you can simply stick with this list.
    |
    */

    'middlewares' => [
        // 'web',
        \Ahmadwaleed\Blanket\Http\Middlewares\Authorize::class,
    ],

    /*
    |--------------------------------------------------------------------------
    | Log Response limit
    |--------------------------------------------------------------------------
    |
    | This is maximum limit blanket is allowed to log response content,
    | if response content exceed this limit the response should be purged.
    | The default limit is 64 KB which is max limit, feel free to set lower limit.
    |
    */

    'log_response_limit' => env('BLANKET_RESPONSE_LIMIT', 64),

    /*
    |--------------------------------------------------------------------------
    | Logs Per Page
    |--------------------------------------------------------------------------
    |
    | How many logs should be fetched per page for dashboard, setting this option
    | to a big number may reduce dashboard performance.
    |
    */

    'logs_per_page' => env('BLANKET_LOGS_PER_PAGE', 100),
    
    /*
    |--------------------------------------------------------------------------
    | Prune Blanket Logs Duration
    |--------------------------------------------------------------------------
    |
    | Duration in which blanket logs will be deleted periodically
    | that are no longer needed. You should schedule the model:prune
    | Artisan command in your application's App\Console\Kernel class.
    | You are free to specify the appropriate interval here at which
    | this command should be run:
    | ```
    | $schedule->command('model:prune', [
    |   '--model' => [Ahmadwaleed\Blanket\Models\Log::class],
    | ])->daily();
    |
    */

    'prune_logs_duration' => env('PRUNE_LOGS_DURATION', now()->subMonth()),
];

Credits

License

The MIT License (MIT). Please see License File for more information.

More from the ecosystem

marcreichel/
laya-php
g4t.io
3 53

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Classify text in PHP without an LLM bill: typed decisions in 100+ languages, self-hosted. Laravel-ready SDK for Laya, a Jev AI alternative.

ai classification decision-engine
marcreichel/laya-php via Laravel News
Josh-Dovey/
postcodes-laravel
g4t.io
5 9

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Postcodes for Laravel adds typed GB postcode lookups, validation, geography data, distance searches, and test fakes through the GB Postcodes API.

Josh-Dovey/postcodes-laravel via Laravel News
RedberryProducts/
mailbox-for-laravel
g4t.io
4 115

Mailbox for Laravel: Preview and Test Rendered Email

Mailbox for Laravel captures outgoing mail in a local dashboard and lets you test rendered HTML, recipients, and attachments with fluent assertions.

RedberryProducts/mailbox-for-laravel via Laravel News