romalytar/yammi-audit-log-laravel
Audit log for Laravel that tracks full provenance of every change: actor, origin, and correlation ID across queues and services. Built for distributed, queue-heavy apps to trace who triggered a write and through what execution chain.
DX, completeness and observability.
Span-based causation tree.
Documentation release on top of v2.0.1.
No code or behavior changes since v2.0.0.
Patch release on top of v2.0.0.
No code or behavior changes since v2.0.0.
Application-level provenance and change history for queue-heavy, distributed Laravel apps. Every change is recorded with the real actor, the origin that survives the queue, and a correlation chain back to the one action that caused it — with a verifiable, tamper-evident history on top.
user_id: 5), captured at event time and surviving row deletion.audit-log:verify; pruning keeps a chain anchor so verification stays strict.audit-log:subject-report, NDJSON / HTML).withReason, covered by the hash chain).transfer-data command.AuditPolicy per model: ignore() noisy fields, capture when() a condition holds, sample() a fraction of high-churn models.event_version schema contract on every record (and in the API / SIEM payloads) so consumers can branch on the layout.AuditLog::query()->field('status')->from('pending')->to('paid')->get()) over the same filter path as the array API.audit-log:backfill-changed-keys covers existing rows (chunked, resumable).audit-log:ui enable): filters, value-transition search, statistics with heatmap, pagination, anomalies, trace, time machine — vendored assets, no CDN.No event sourcing or state replay, no backpressure engine, no in-package search engine, no distributed observability platform, no query profiler. Each would force the audit log to become a source of truth or a real-time system, breaking the invariant that makes it safe to install: capture is fail-closed, off your write path, additive, and never changes your data.
PHP 8.1 / 8.2 / 8.3, Laravel 9–13. CI: Pint, PHPStan level 8, the unit suite across the PHP matrix, and a 90%+ line-coverage gate.
First stable release.
How can I help you explore Laravel packages today?