- Allow calling audited multiple times - @mohammednasser-32 734
- Relax gemspec to allow Rails 8.1 - @BranLiang 738
- Support for Rails 7.2 and Ruby 3.3, and testing cleanups - @mattbrictson #723
- Allow max_audits to be a proc or symbol - @gmhawash #718
- Support Rails 8 - @fernandomenolli #717
- Removed support for Rails 5.0 and 5.1.
- Replace RequestStore with ActiveSupport::CurrentAttributes - @punkisdead #702
- Bad release. Same code as 5.4.1. Use 5.6.0 for updated features.
- Ignore readonly columns in audit - @sriddbs #692
- Robustify Rails version checks - @blaet #689
- Ignore callbacks if not specifed on the model #679
- Revert replacing RequetStore with ActiveSupport::CurrentAttributes until it is fully tested.
- Replace RequestStore with ActiveSupport::CurrentAttributes - @the-spectator #673
- Don't require railtie when used outside of Rails - @nicduke38degrees #665
- Add Rails 7.1 support - @yuki24 #686
- Use RequestStore instead of Thread.current for thread-safe requests - @tiagocassio [#669](https://github.com/c ollectiveidea/audited/pull/669)
- Clean up Touch audits - @mcyoung, @akostadinov #668
- Touch audit bug fixes - @mcyoung #662
- Ensure touch support doesn't cause double audits - @mcyoung #660
- Testing Improvements - @vlad-psh #628
- Testing Improvements - @mcyoung #658
- Audit touch calls - @mcyoung #657
- Allow using with Padrino and other non-Rails projects - @nicduke38degrees #655
- Testing updates - @jdufresne #652 #653
Improved
- config.audit_class can take a string or constant - @rocket-turtle Fixes overzealous change in 5.1.0 where it only took a string. #648
- README link fix - @jeremiahlukus #646
- Typo fix in GitHub Actions - @jdufresne #644
Changed
- config.audit_class takes a string - @simmerz #609
- Filter encrypted attributes automatically - @vlad-psh #630
Improved
- README improvements - @jess, @mstroming #605 #640
- Ignore deadlocks in concurrent audit combinations - @Crammaman #621
- Fix timestamped_migrations deprecation warning - @shouichi #624
- Ensure audits are re-enabled after blocks - @dcorlett #632
- Replace raw string where clause with query methods - @macowie #642
- Test against more Ruby/Rails Versions - @enomotodev, @danielmorrison #610 #643
Added
- Relax ActiveRecord version constraint to support Rails 7 #597
Improved
Improved
- Don't load associated model when auditing is disabled - @nut4k1 #584
Improved
- Fixes an issue where array attributes were not deserialized properly - @cfeckardt, @yuki24 #448 #576
- Improve error message on audit_comment and allow for i18n override - @james #523
- Don't require a comment if only non-audited fields are changed - @james #522
- Readme updates - @gourshete #525
- Allow restoring previous enum behavior with flag - @travisofthenorth #526
- Follow Rails Autoloading conventions - @duncanjbrown #532
- Fix own_and_associated_audits for STI Models - @eric-hemasystems #533
- Rails 6.1 Improvements - @okuramasafumi, @marcrohloff #563 #544
- Use Thread local variables instead of Fibers - @arathunku #568
Changed
- Drop support for Rails 4 - @travisofthenorth #527
Added
Improved
- Avoid extra query on first audit version #513
Breaking changes
- removed block support for
Audit.reconstruct_attributes
#437 - removed
audited_columns
,non_audited_columns
,auditing_enabled=
instance methods, use class methods instead #424 - removed rails 4.1 and 4.0 support #431
Added
- Add
with_auditing
methods to enable temporarily #502 - Add
update_with_comment_only
option to control audit creation with only comments #327 - Support for Rails 6.0 and Ruby 2.6 #494
Changed
- None
Fixed
- Ensure enum changes are stored consistently #429
Breaking changes
- None
Added
- Add ability to globally disable auditing #426
- Add
own_and_associated_audits
method to auditable models #428 - Ability to nest
as_user
within itself #450 - Private methods can now be used for conditional auditing #454
Changed
- Add version to
auditable_index
#427 - Rename audited resource revision
version
attribute toaudit_version
and deprecateversion
attribute #443
Fixed
- None
Breaking changes
- None
Added
- None
Changed
- None
Fixed
- Allow use with Rails 5.2 final
Breaking changes
- None
Added
- Add
inverse_of: auditable
definition to audit relation #413 - Add functionality to conditionally audit models #414
- Allow limiting number of audits stored #405
Changed
- Reduced db calls in
#revisions
method #402 #403 - Update supported Ruby and Rails versions #404 #409 #415 #416
Fixed
Breaking changes
- None
Added
- Add functionality to undo specific audit #381
Changed
- Removed duplicate declaration of
non_audited_columns
method #365 - Updated
audited_changes
calculation to support Rails>=5.1 change syntax #377 - Improve index ordering for polymorphic indexes #385
- Update CI to test on newer versions of Ruby and Rails #386 #387 #388
- Simplify
audited_columns
calculation #391 - Simplify
audited_changes
calculation #389 - Normalize options passed to
audited
method #397
Fixed
- Fixed typo in rspec causing incorrect test failure #360
- Allow running specs using rake #390
- Passing an invalid version to
revision
returnsnil
instead of last version #384 - Fix duplicate deceleration warnings #399
Breaking changes
- None
Added
- Support for
user_id
column to be auuid
type #333
Fixed
- Fix retrieval of user from controller when populated in before callbacks #336
- Fix column type check in serializer for Oracle DB adapter #335
- Fix
non_audited_columns
to allow symbol names #351
Fixed
- Fix ActiveRecord gem dependency to permit 5.1 #332
Breaking changes
- None
Added
- Support for
audited_changes
to be ajson
orjsonb
column in PostgreSQL #216 - Allow
Audited::Audit
to be subclassed by configuringAudited.audit_class
#314 - Support for Ruby on Rails 5.1 #329
- Support for Ruby 2.4 #329
Changed
Fixed
- SQL error in Rails Conditional GET (304 caching) #295
- Fix missing non_audited_columns= configuration setter #320
- Fix migration generators to specify AR migration version #329
Breaking changes
- None
Added
- Support singular arguments for options:
on
andonly
Fixed
- Fix auditing instance attributes if "only" option specified
- Allow private / protected callback declarations
- Do not eagerly connect to database
- Correct auditing_enabled for STI models
- Properly set table name for mongomapper
- Fix bug when only: is a single field.
- update gemspec to use mongomapper 0.13
- sweeper need not run observer for mongomapper
- Make temporary disabling of auditing threadsafe
- Centralize
Audited.store
as thread safe variable store
Not yet documented.
Not yet documented.
Not yet documented.
Not yet documented.
Not yet documented.
Not yet documented.
- Add Audit scopes for creates, updates and destroys [chriswfx]
- Made ignored_attributes configurable [senny]
- Rails 3.x support
- Support for associated audits
- Support for remote IP address storage
- Plenty of bug fixes and refactoring
- [kennethkalmer, ineu, PatrickMa, jrozner, dwarburton, bsiggelkow, dgm]
- Store old and new values for updates, and store all attributes on destroy.
- Refactored revisioning methods to work as expected
- changed to make it work in development mode
- Add ability to record parent record of the record being audited [Kenneth Kalmer]
- refactored to make compatible with dirty tracking in edge rails and to stop storing both old and new values in a single audit
- Fix NoMethodError when trying to access the :previous revision on a model that doesn't have previous revisions [Alex Soto]
- added #changed_attributes to get access to the changes before a save [Chris Parker]
- Added #revision_at for retrieving a revision from a specific time [Jacob Atzen]
- Fix error when getting revision from audit with no changes [Geoffrey Wiseman]
- Remove dependency on acts_as_list
- Added support getting previous revisions
- Replaced use of singleton User.current_user with cache sweeper implementation for auditing the user that made the change
- added migration generator
- incorporated changes from Michael Schuerig to write_attribute that saves the new value after every change and not just the first, and performs proper type-casting before doing comparisons
- The "changes" are now saved as a serialized hash
- initial version