Auditing Elasticsearch Driver
, (*1)
This driver provides the ability to save your model audits in elasticsearch., (*2)
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:, (*3)
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:, (*4)
...
'queue' => env('AUDIT_QUEUE', true),
...
OR, (*5)
...
'queue' => env('AUDIT_QUEUE', [
'queue' => 'default',
'connection' => 'redis'
]),
...
The driver
key of the config file should look like so:, (*6)
...
'driver' => Iconscout\Auditing\Drivers\ElasticSearch::class,
...
The drivers
key of the config file should look like so:, (*7)
...
'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:, (*8)
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., (*9)
Usage
You can use the ElasticSearch driver in any Auditable model like so in order to store audit records in elasticsearch:, (*10)
<?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:, (*11)
<?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., (*12)
Donate directly via Paypal, (*13)
, (*14)
More information on using customer drivers with owen-it/laravel-auditing can be found on their homepage, (*15)