siabit / laravel-auditing-elasticsearch by igoooor
forked from Iconscout/laravel-auditing-elasticsearch

A elasticsearch driver for the owen-it/laravel-auditing package. Allows storage of the audits in elasticsearch.
751
0
0
Package Data
Maintainer Username: igoooor
Maintainer Contact: arpan@iconscout.com (Arpan Rank)
Package Create Date: 2023-11-17
Package Last Update: 2023-11-17
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-12-11 15:27:11
Package Statistics
Total Downloads: 751
Monthly Downloads: 169
Daily Downloads: 7
Total Stars: 0
Total Watchers: 0
Total Forks: 0
Total Open Issues: 0

Auditing Elasticsearch Driver

Latest Unstable Version Total Downloads License

This driver provides the ability to save your model audits in elasticsearch.

Contents

Installation

This driver requires that you are using owen-it/laravel-auditing: ^7.0. Provided this is fulfilled, you can install the driver like so:

composer require iconscout/laravel-auditing-elasticsearch

Setup

You need to add the following config entries in config/audit.php if you need to change the default behaviour of the driver. The queue key of the config file should look like so:

    ...
    'queue' => env('AUDIT_QUEUE', true),
    ...

OR

    ...
    'queue' => env('AUDIT_QUEUE', [
        'queue' => 'default',
        'connection' => 'redis'
    ]),
    ...

The driver key of the config file should look like so:

    ...
    'driver' => Iconscout\Auditing\Drivers\ElasticSearch::class,
    ...

The drivers key of the config file should look like so:

    ...
    'drivers' => [
        'database' => [
            'table'      => 'audits',
            'connection' => null,
        ],
        'es' => [
            'client' => [
                'hosts' => [
                    env('AUDIT_HOST', 'localhost:9200')
                ]
            ],
            'index' => env('AUDIT_INDEX', 'laravel_auditing'),
            'type' => env('AUDIT_TYPE', 'audits')
        ],
    ],
    ...

Console commands

Available artisan commands are listed below:

Command | Arguments | Description --- | --- auditing:es-index | Index all of the model's records into the search index. auditing:es-delete | Delete all of the model's records from the index.

For detailed description and all available options run php artisan help [command] in the command line.

Usage

You can use the ElasticSearch driver in any Auditable model like so in order to store audit records in elasticsearch:

<?php
namespace App\Models;

use Iconscout\Auditing\Drivers\ElasticSearch;
use Illuminate\Database\Eloquent\Model;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;

class SomeModel extends Model implements AuditableContract
{
    use Auditable;

    /**
     * ElasticSearch Audit Driver
     *
     * @var Iconscout\Auditing\Drivers\ElasticSearch
     */
    protected $auditDriver = ElasticSearch::class;

    // ...
}

You can use the ElasticSearchAuditable trait in any Auditable model like so in order to retrieving Retrieving audit records records from elasticsearch:

<?php
namespace App\Models;

use Iconscout\Auditing\Drivers\ElasticSearch;
use Iconscout\Auditing\Traits\ElasticSearchAuditable;
use Illuminate\Database\Eloquent\Model;
use OwenIt\Auditing\Auditable;
use OwenIt\Auditing\Contracts\Auditable as AuditableContract;

class SomeModel extends Model implements AuditableContract
{
    use Auditable, ElasticSearchAuditable;

    /**
     * ElasticSearch Audit Driver
     *
     * @var Iconscout\Auditing\Drivers\ElasticSearch
     */
    protected $auditDriver = ElasticSearch::class;

    // ...
}
// Get first available Icon
$icon = Icon::first();

// Get all associated Audits
$all = $icon->esAudits;

// Get all associated Audits via parameters ($page & $perPage)
$all = $icon->esAudits($page = 1, $perPage = 10);

Donations

Help keeping the project development going, by contributing or donating a little. Thanks in advance.

Donate directly via Paypal

Donate

More information on using customer drivers with owen-it/laravel-auditing can be found on their homepage