farzai/laravel-http-recorder

A simple HTTP recorder for Laravel

1.0.1 2023-05-01 10:21 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This package allows you to log all HTTP requests to your Laravel application.

Installation

You can install the package via composer:

composer require farzai/laravel-http-recorder

Prepare the database

You need to publish the migration to create the http_log_requests table:

php artisan vendor:publish --tag="http-recorder-migrations"

After that, you need to run migrations:

php artisan migrate

Publishing the config file

Publishing the config file is optional:

php artisan vendor:publish --tag="http-recorder-config"

This is the contents of the published config file:

return [
    /*
     * Enable or disable the http recorder.
     */
    'enabled' => env('HTTP_RECORDER_ENABLED', true),

    /*
     * The driver used to store the http logs.
     * It should be a class that implements the `Farzai\HttpRecorder\Contracts\EntryRepositoryInterface`.
     *
     * Supported drivers: "database"
     */
    'driver' => env('HTTP_RECORDER_DRIVER', 'database'),

    /**
     * Process the request in the background.
     * (leave it to empty to use default queue)
     */
    'queue' => env('HTTP_RECORDER_QUEUE'),
    // 'queue' => [
    //     'connection' => env('HTTP_RECORDER_QUEUE_CONNECTION'),
    //     'queue' => env('HTTP_RECORDER_QUEUE_NAME'),
    // ]

    /*
     * Exclude routes from being logged.
     */
    'except' => [
        'urls' => [
            'telescope*',
            'horizon*',
            'nova*',
        ],

        'methods' => [
            'HEAD',
        ],
    ],

    /**
     * Drivers
     */
    'drivers' => [
        'database' => [
            'connection' => env('HTTP_RECORDER_CONNECTION'),
            'table' => env('HTTP_RECORDER_DB_TABLE', 'http_log_requests'),
        ],
    ],

    /**
     * Sensitive request headers and response.
     * 
     * These fields will be replaced with asterisks (*) in the request headers.
     */
    'sensitive' => [
        'headers' => [
            'authorization',
            'x-csrf-token',
            'x-xsrf-token',
            'set-cookie',
        ],
        'body' => [
            'password',
            'password_confirmation',
            'token',
            'access_token',
        ],
    ],

    /**
     * The maximum length of the request body and response body.
     *
     * If the length of the request body or response body exceeds the maximum length,
     * it will be truncated to the maximum length.
     */
    'size_limit' => 64
];

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

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