luketowers/oc-easyaudit-plugin
Adds easy, configurable audit logging to October CMS. Automatically track create, update and delete events on your models, browse detailed change histories, and see exactly who changed what and when—with minimal setup and no code changes.
Architecture fit. Unchanged by v4.3.1. Despite being distributed via Composer, this is not a Laravel package — it is a Winter CMS plugin (LukeTowers\EasyAudit) that registers a backend controller, navigation item, and a model trait/behavior through Winter's plugin service provider. It has no value in a standalone Laravel application without porting the UI layer and re-implementing the audit persistence against a Laravel-native package (e.g. owen-it/laravel-auditing). The architecture fit question therefore reduces to a platform question: is the target system Winter CMS (or an October CMS v1 derivative)? If yes, fit is good — it hooks into the Storm ORM event lifecycle and the backend RBAC/permission system the same way first-party plugins do. If no, this is a reference implementation at best, not a dependency.
Integration feasibility. Mechanically low-effort in the right host: composer require luketowers/oc-easyaudit-plugin, enable the plugin, apply the audit trait to selected models, and the backend exposes a log viewer. Effort concentrates in three places: (1) confirming the storage schema and what fidelity is captured (old/new attribute diffs, actor identity, IP/user-agent, request context, related-model changes); (2) deciding which models are in scope, since trait rollout is per-model and has write-path cost; (3) authorization — verifying the viewer respects backend user roles rather than granting all backend users read access to potentially sensitive diffs.
v4.3.1 adds a small but useful data point for (1): the plugin honours trackable attribute overrides registered as dynamic properties, meaning per-model control over which attributes are tracked can be declared at runtime rather than only in the trait's static configuration. For our purposes this is primarily a redaction lever — it gives a supported mechanism to exclude PII-bearing attributes per model without forking — but it also means the set of tracked fields is not fully discoverable by reading model class definitions alone. Any fidelity or PII audit must inspect dynamic property registration at boot, not just declared property defaults.
Technical risk.
NOASSERTION) is still the gating risk and was not addressed by this release. No recognized SPDX identifier means legal must review before production. Do not treat "public GitHub repo" as a grant. This alone can kill the integration.wn-easyaudit-plugin while the package/namespace is oc-easyaudit-plugin — evidence of an October→Winter migration. Documentation, screenshots, and examples may reference the older platform and Laravel/PHP versions.v4.3.0...v4.3.1 compare URL, which is evidence of a normal, traceable release process at a 4.x version line rather than an ad-hoc repo state. The earlier 2026-09-06 last-release date should now be read as evidence of active maintenance, but still verify the tag is signed/traceable and that the default branch and released tag agree before pinning.Key questions for the maintainer / due diligence.
Model::where(...)->update()), raw SQL, pivot/attach-detach, soft deletes, and restores — all of which bypass Eloquent model events?Stack fit. Green-light only for Winter CMS hosts. For Laravel-only estates, close the evaluation and instead adopt a native auditing package; the plugin's UI patterns are worth copying but the code is not portable.
Migration path.
Compatibility. v4.3.1 is a patch-level bugfix with no changelog indication of breaking changes, deprecations, schema changes, or config-format changes — it should be a drop-in for anyone already on v4.3.0, and it does not reset prior PoC work. Still pin to an exact tag or SHA in composer.json and commit the lockfile; validate against the production Winter minor version explicitly, since plugin backends often break silently on Winter backend-UI changes. Budget for PHP version drift — an October-era plugin may not have been exercised on current PHP 8.x releases. Note that the changelog does not state a minimum Winter/PHP version for the fix, so re-run the version-matrix check against v4.3.1 rather than inheriting v4.3.0's result.
Sequencing.
Keep the trait rollout incremental. Each model added is a permanent write-path and storage commitment; there is no easy rollback once months of history exist.
Maintenance. Assume you own the code. v4.3.1 shows the maintainer is active on their own plugin, which is mildly reassuring, but it does not reduce your obligations: plan for an internal fork with a named owner, a documented patch process, and a scheduled review each Winter upgrade cycle. Upstream will not carry your fixes, and with one maintainer there is no second reviewer for their changes — treat even patch releases as code to be read before adoption.
Support. Community-only, no SLA, low issue volume, and a single responsive party. Escalation for a production audit outage is internal engineering, not vendor support. Set that expectation with stakeholders before adoption.
Scaling.
(auditable_type, auditable_id, created_at) and pagination; without them the UI will time out on any table with meaningful history.Failure modes.
Ramp-up. For a developer already fluent in Winter CMS plugin conventions (plugin registration, Storm model traits, backend controllers, BackendAuth permissions, dynamic property registration on models), ramp-up is a day or two. For a Laravel-only team, expect one to two weeks just to become productive in Winter's ORM and backend patterns — which is a strong argument to skip this package entirely rather than absorb platform-specific knowledge for a 17-star, zero-dependent plugin.
How can I help you explore Laravel packages today?