- What does laravel-appkit/blameable do?
- Laravel AppKit Blameable adds userstamp or blameable behavior to Eloquent models, automatically recording which user created, updated, or deleted a record. It is intended for lightweight audit attribution inside Laravel applications rather than a full audit-log service. You apply it to selected models so blame columns are filled without repeating code in every controller or service.
- How do I install laravel-appkit/blameable in a Laravel app?
- Install it with Composer, then publish or configure any package settings if the documentation provides them. Add the required blame columns to the tables for models you want to track, and apply the package trait or interface to those models. Run your application test suite and pilot it on one low-risk model before rolling it out broadly.
- Which Laravel and PHP versions are supported by laravel-appkit/blameable?
- The v1.2.0 release notes highlight PHP 8.4 support, but they do not clearly list the full supported Laravel and PHP matrix. Review the package composer.json constraints and README before committing, especially if your app is on an older or very new Laravel version. Treat v1.2.0 as a controlled dependency upgrade until compatibility is confirmed.
- Does laravel-appkit/blameable require database schema changes?
- Yes, blameable behavior generally depends on columns such as created_by, updated_by, and deleted_by existing on the model's table. You should add those columns with reversible migrations where they are missing. Confirm the exact expected column names and any configuration options in the package documentation before writing migrations.
- How does laravel-appkit/blameable resolve the current user?
- It typically resolves the current user from Laravel's authenticated user context during HTTP requests. In queue workers, console commands, and scheduled jobs there may be no authenticated user, so attribution can be null unless you explicitly provide user context or configuration. Verify these contexts during your pilot because behavior can depend on how your application dispatches work.
- Does laravel-appkit/blameable support soft deletes and deleted_by tracking?
- The package is described as tracking creates, updates, and deletes, which suggests it can populate a deleted_by field when a model is deleted. For soft deletes, confirm whether the field is set on the soft-delete event and how restore behavior is handled. Test soft-delete and restore flows on a pilot model before relying on the attribution.
- Does laravel-appkit/blameable work with bulk updates?
- Bulk query-builder updates often bypass Eloquent model events, so you should not assume updated_by will be filled for those operations. Use model saves or explicitly set blame columns when performing bulk changes. Test any mass-update paths in your application if audit attribution matters for those records.
- Is laravel-appkit/blameable suitable for compliance-grade audit logs?
- It is a lightweight per-model attribution tool, not a centralized immutable audit-log system. If you need tamper-resistant retention, event sourcing, or compliance-grade audit reporting, use a dedicated audit pipeline instead. Blameable is a better fit for simple created-by and edited-by visibility in Laravel admin systems and APIs.
- Can I use laravel-appkit/blameable alongside existing observers or audit traits?
- You can, but first audit any existing userstamp, observer, or audit behavior to avoid duplicate tracking or conflicting writes. Apply the package to one model and verify that your current observers still behave correctly. Document which mechanism owns each blame column so future changes do not create inconsistent attribution.
- Is laravel-appkit/blameable actively maintained and safe for production?
- The v1.2.0 release appears to be mainly dependency maintenance with PHP 8.4 support, which suggests dependency hygiene but not a large feature release. Application-code risk looks low, but you should confirm test coverage, release cadence, and Laravel compatibility before production adoption. Pin the version, run dependency checks, and validate behavior in staging first.