Download the PHP package glesys/butler-audit without Composer
On this page you can find all versions of the php package glesys/butler-audit. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package butler-audit
:construction: Not ready for production.
Butler Audit
Laravel package for sending audit events to a remote endpoint.
Example
Getting Started
Configure
Make sure you have a queue configured to speed up your application.
Log driver
When developing you can use the log driver to prevent http requests being sent.
Initiator resolver
A default "initiator resolver" is registered in the ServiceProvider.
Your application can have its own resolver to avoid setting initiator
manually for every audit call.
You can still use initiator()
and initiatorContext()
to override the values set by the resolver.
You can disable the default resolver by setting butler.audit.default_initiator_resolver
to false
.
Auditable
You can pass "Auditables" to the helper method.
Trait for Eloquent models
For convenience there is a IsAuditable
trait that can be used by eloquent models.
X-Correlation-ID
We use "X-Correlation-ID" header to "relate" audits.
A "X-Correlation-Trail" header is also used to figure out the order of events
without relying on the events occured_at
, see the example json below.
Http client macro
Use the "withCorrelation" macro to add the "X-Correlation-ID" header when sending requests with the Http client.
In the example below, all "audits" will have the same correlation-id.
The requests sent to your configured BUTLER_AUDIT_URL
will look something like:
Queued jobs
The trait WithCorrelation
can be used on queable jobs that needs the same correlation id as the request.
How it works
- A job using the
WithCorrelation
trait is dispatched to the queue. - Our
Dispatcher
will set acorrelationId
property on the job. - The job is handled by a worker.
- The middleware
SetCorrelation
will tellAuditor
to use the correlation id from the job.
Extending the dispatcher can be disabled by setting butler.audit.extend_bus_dispatcher
to false
.
Auditor Fake
Instead of faking the queue in your tests and e.g. Queue::assertPushed(function (AuditJob) {})
you can fake requests, see example below.
Testing
How To Contribute
Development happens at GitHub; any typical workflow using Pull Requests are welcome. In the same spirit, we use the GitHub issue tracker for all reports (regardless of the nature of the report, feature request, bugs, etc.).
All changes are supposed to be covered by unit tests, if testing is impossible or very unpractical that warrants a discussion in the comments section of the pull request.
Code standard
As the library is intended for use in Laravel applications we encourage code standard to follow upstream Laravel practices - in short that would mean PSR-2 and PSR-4.
All versions of butler-audit with dependencies
guzzlehttp/guzzle Version ^7.8.1
illuminate/bus Version ^11.0
illuminate/contracts Version ^11.0
illuminate/database Version ^11.0
illuminate/http Version ^11.0
illuminate/log Version ^11.0
illuminate/queue Version ^11.0
illuminate/support Version ^11.0